Microsoft Excel で複数の列間の一致を検索する

Microsoft Excel で複数の列間の一致を検索する

複数の列間の一致を見つけようとしており、一致した場合は、一致したすべての行を強調表示したいと考えています。

列は次のようになります --

  1. AAA
  2. BBBB
  3. CCC

サンプル列/行

AAA      BBB      CCC

INS50    FG23     YU44
INS51    FG23     YU44
INS55    FG23     YU45
INS55    FG23     YU46
INS54    FG27     YU49
INS54    FG28     YU49
-----    FG28     YU89
INS59    ----     YU49

最後の3行を考えると

INS54はFG28およびYU49と関係がある

FG28はYU49およびYU89と関係がある

ここで、一致する行を作成します。

INS54 FG28 YU49 FG27
FG28  YU89 YU49

それがどうして可能なのか全く分かりません。

どのようなご助力でも大歓迎です。よろしくお願いします。

答え1

あなたが何を尋ねているのかを正確に理解するのは難しいですが、あなたが行きたい場所に近づくことができるかもしれない結果がここにあります。

質問には 2 つの部分があるようです。1 つ目は AAA 列の項目の関係をリストし、2 つ目は BBB 列の項目の関係をリストすることです。したがって、以下の結果表には 2 つのセクションがあります。

ここに画像の説明を入力してください

E2 のこの数式は、列 A の個別の値をリストするために使用されました。

=IFERROR(INDEX($A$2:$A$9,MATCH(0,INDEX(COUNTIF($E$1:E1,$A$2:$A$9),0,0),0)),"")

同様に、E8 のこの数式は列 B の個別の値をリストします。

=IFERROR(INDEX($B$2:$B$9,MATCH(0,INDEX(COUNTIF($E$7:E7,$B$2:$B$9),0,0),0)),"")

質問の最初の部分では、列 A の個別の値に対応する列 B と列 C の値のリストが必要であるようです。F2 のこの配列数式はそれを実行します。

=IFERROR(INDEX($B$2:$C$9,SMALL(IF($A$2:$A$9=$E2,ROW($A$2:$A$9)-1,""),MOD(COLUMN(),2)+1),TRUNC(COLUMN()/2)-2),"")

単に ではなく、Ctrl+と一緒に入力する必要があります。入力後、下方向および右方向に入力すると、結果テーブルの上部に結果が生成されます。重複する値がいくつかリストされていることに注意してください。Shift EnterEnter

質問の 2 番目の部分では、列 B の個別の値に対応する列 C の値のリストが必要であるようです。F8 のこの配列数式は、1 つの列からのみ選択する必要があるため、よりシンプルです。

=IFERROR(INDEX($C$2:$C$9,SMALL(IF($B$2:$B$9=$E8,ROW($A$2:$A$9)-1,""),COLUMN()-5)),"")

ここでの前提は、最初の部分には最大 2 つの関連値があり、2 番目の部分には 4 つの関連値があるということです。これは必要に応じて調整できます。

これをさらに進めたい場合は、列 E に個別の値をリストしたものと同様の数式を使用して、これらの結果内の重複を削除できます。

関連情報