Bob은 왼쪽 아래에 멤버 이름이 있고 맨 위에 연중 월이있는 워크 시트가 있습니다. 그리드의 각 셀에 구성원이 참석 한 회의 날짜를 입력합니다. 밥은 누가 누구를 만나지 않았는지 한눈에 알 수있는 방법을 찾고 있습니다.

이 문제에 대한 해결책에 접근 할 수있는 몇 가지 방법이 있습니다. 테이블 디자인이 유연하다면 테이블 레이아웃 방식을 변경하여 작업을 “단순화”할 수 있습니다. 열에 달을 표시하는 대신 각 열을 회의 날짜로 지정할 수 있습니다.

그런 다음 각 셀에는 특정 날짜에 회의에 참석 한 사람을 나타내는 일종의 표시기 (숫자 또는 문자)가 포함될 수 있습니다. 누가 누구를 만나지 않았는지 알아내는 것은 비교적 쉬운 과정 일 것입니다.

  1. 확인하려는 주요 구성원을 선택하고 데이터 테이블의 맨 위로 이동합니다.

  2. 주요 구성원 행에서 데이터 테이블을 가로로 정렬하여 주요 구성원이 참석 한 모든 회의가 가장 왼쪽 열에 있도록합니다.

  3. 주요 구성원을 제외한 모든 사람을 처음 세 회의 날짜에 세로로 정렬합니다. 이 세 회의에서 주요 구성원을 만난 모든 사람은 이제 데이터 테이블의 상단, 주요 구성원 바로 아래에 있습니다.

  4. 데이터 테이블 아래로 이동하여 아직 주요 구성원을 만나지 않은 모든 사람을 선택하고 다음 세 회의 날짜를 정렬합니다.

  5. 모든 회의 날짜가 정렬 될 때까지 3 단계와 4 단계를 반복합니다.

  6. 데이터 테이블의 맨 아래에 남아있는 모든 사람 (3 단계 및 4 단계에서 선택되지 않은 것)은 키 멤버를 충족하지 않습니다.

테이블 형식을 변경할 수없는 경우 매크로 솔루션이 필요합니다. 매크로에서 사용할 수있는 많은 접근 방식이 있지만 다음이 아마도 가장 직접적인 방법 일 것입니다.

Sub PeopleNotMet()

Dim rTable As Range     Dim rOutput As Range     Dim iCols As Integer     Dim iCol As Integer     Dim iRows As Integer     Dim iRow As Integer     Dim iCompRow As Integer     Dim sNotMet As String     Dim sMet As String

Set rTable = Worksheets("Sheet1").Range("A1").CurrentRegion     Set rOutput = Worksheets("Sheet2").Range("a1")

sNotMet = "X"

sMet = ""



Application.ScreenUpdating = False     With rTable         iRows = .Rows.Count         iCols = .Columns.Count                  .Columns(1).Copy         With rOutput             .PasteSpecial             .PasteSpecial Transpose:=True             Application.CutCopyMode = False             Range(.Offset(1, 1), .Offset(iRows - 1, _               iRows - 1)).Value = sNotMet             Range(.Offset(1, 1), .Offset(iRows - 1, _               iRows - 1)).HorizontalAlignment = xlCenter         End With     End With     With rTable.Cells(1)

For iRow = 1 To iRows - 1             For iCol = 1 To iCols - 1                 For iCompRow = 1 To iRows - 1                     If Not (IsEmpty(.Offset(iRow, iCol))) Then                         If Not (IsEmpty(.Offset(iCompRow, iCol))) Then                             If .Offset(iRow, iCol).Value = _                               .Offset(iCompRow, iCol).Value Then _                               rOutput.Offset(iRow, iCompRow).Value = sMet                         End If                     End If                 Next             Next         Next     End With

Set rTable = Nothing     Set rOutput = Nothing     Application.ScreenUpdating = True End Sub

이 매크로는 몇 가지를 가정합니다. 먼저 Bob의 원래 데이터 테이블이 A1 셀에서 시작하는 Sheet1에 있다고 가정합니다. 둘째, “누가 누구와 만났는지”테이블이 A1 셀에서 시작하는 Sheet2에 있어야한다고 가정합니다. 이러한 가정이 맞으면 매크로를 실행할 때 Sheet2에 생성 된 테이블의 왼쪽 아래에 이름이 표시되고 상단에 이름이 표시됩니다. 교차하는 셀은 아무것도 포함하지 않거나 (사람들이 만났음을 의미) 대문자 X (만나지 않았 음을 의미)를 포함합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2304)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Combinations_for_Members_in_Meetings [회의 구성원을위한 조합].