会議のメンバーの組み合わせ(Microsoft Excel)
ボブのワークシートには、左側にメンバー名があり、上部に月があります。グリッドの各セルに、メンバーが参加した会議が行われる日付を入力します。ボブは、誰が誰と会ったことがないかを一目で知る方法を探しています。
この問題の解決策に取り組むには、いくつかの方法があります。テーブルのデザインが柔軟な場合は、テーブルのレイアウト方法を変更することで、物事を「簡素化」できます。列に月を配置する代わりに、各列を会議の日付にすることができます。
次に、各セルには、その特定の日に会議に参加した人を示す何らかのインジケーター(数字または文字)を含めることができます。誰が誰と会っていなかったかを把握するのは比較的簡単なプロセスです:
。チェックしたいキーメンバーを選択し、データテーブルの一番上に移動します。
。キーメンバーの行でデータテーブルを水平方向に並べ替えて、キーメンバーが参加したすべての会議が左端の列に表示されるようにします。
。最初の3つの会議日に、主要メンバーを除く全員を垂直方向に並べ替えます。これらの3つの会議で主要メンバーに会ったすべての人が、データテーブルの上部、主要メンバーのすぐ下にいます。
。データテーブルを下に移動し、主要メンバーにまだ会っていない全員を選択して、次の3つの会議日に並べ替えます。
。すべての会議の日付が並べ替えられるまで、手順3と4を繰り返します。
。データテーブルの一番下に残っているすべての人(手順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
このマクロは、いくつかのことを前提としています。まず、ボブの元のデータテーブルがシート1にあり、セルA1から始まると想定しています。次に、「誰が誰と会ったことがないか」というテーブルが、セルA1から始まるSheet2にあることを前提としています。これらの仮定が正しければ、マクロを実行すると、Sheet2で作成されたテーブルの左側に名前が表示され、上部に名前が表示されます。交差するセルには、何も含まれていない(人々が会ったことを意味する)か、大文字のX(会っていないことを意味する)が含まれます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2304)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link会議のメンバーの組み合わせ。