同じ列で 2 つの異なる値を検索します。一致した場合は、同じ列の 2 つの値のヘッダーを結果として表示します。
色付きの線はすべて標準レイアウトであり、変更されません。
行 3、4、8、9 は手動で編集する行です。緑の行は基準です。つまり、どの列にとValue A-1
が含まれているかを見つける必要があります。Value A
Value 1
ご覧のとおり、Value A
複数の列に見つかりますが、「値 1」と組み合わせられるのは 1 つだけです。これらは、「ブロック 1」-「ヘッダー 1」にあります。つまり、「ブロック 1」と「ヘッダー 1」の情報は、緑の線「値 A-1」の下に表示されます。これらの 2 つの値 (Block 1
および、Header 1
下の図で示したセルに表示される値) が必要です。緑の行の下のすべては自動的に入力される必要がありますが、期待される結果を表示するためにいくつかの値を入力しただけです。
同じ列に 2 つの値がある場合はヘッダーを表示します。
答え1
一致するペアが 1 つだけ存在し、レイアウトが上記のような場合、次の数式を使用できます。
A14: =IF(OR((FirstValue=$A$3:$E$3)*(LastValue=$A$4:$E$4)),"Block 1", IF(OR((FirstValue=$A$8:$E$8)*(LastValue=$A$9:$E$9)),"Block 2",""))
A15: =IFERROR(LOOKUP(2,1/(((FirstValue=$A$3:$E$3)*(LastValue=$A$4:$E$4)+(FirstValue=$A$8:$E$8)*(LastValue=$A$9:$E$9))),$A$2:$E$2),"")
A14 の数式は配列型の数式なので、ctrl+shiftを押しながらを押して入力する必要があります。Excel は数式の周囲に中enter括弧 ( を配置します。{...}
選択A14:A15
して右に記入E14:E15
FirstValue と LastValue は、次のように作成される名前付き数式です。
列Aのセルを選択し、数式 ► 名前の定義
FirstValue *Refers to* =LEFT(Sheet2!A$13,FIND("-",Sheet2!A$13)-1)
LastValue *Refers to* ="Value " & MID(Sheet2!A$13,FIND("-",Sheet2!A$13)+1,99)
(名前付き数式を使用する必要はありません。私が提供した数式で上記を置き換えることもできますが、ここでは名前付き数式の方が便利なようです)。
ブロック 1 とブロック 2 に重複した一致がある場合、結果は予期しないものになります。ただし、数式は変更できます (ただし、VBA ルーチンの方が簡単です)
FirstValue
LastValue
ブロックに保存されているのと同じ形式になるように再加工された、行 13 の個々の値を返します。
関数のヘルプを参照して、関数LOOKUP
がどのように機能するかを理解してください。また、タブEvaluate
のボタンを使用してFormulas
、数式がどのように機能するかを調べてください。