更新 1:
私の質問が明確でないため、2番目の例を投稿します
行 2 の項目 04 には値 1 があるため、Get Item Name = Item 04 です。これはランダムであり、多数の列 (500) があります。
問題:
そのヘッダーの下のセルに値が入力されている場合、列ヘッダーを取得する方法が必要です。行 2 と列 1 に値がある場合、行 2 の他のセルには値がないことに注意してください (0 以外)。
問題を言葉で説明するのは難しいので、例を作成しました。
更新 1:
私の質問が明確でないため、2番目の例を投稿します
行 2 の項目 04 には値 1 があるため、Get Item Name = Item 04 です。これはランダムであり、多数の列 (500) があります。
問題:
そのヘッダーの下のセルに値が入力されている場合、列ヘッダーを取得する方法が必要です。行 2 と列 1 に値がある場合、行 2 の他のセルには値がないことに注意してください (0 以外)。
問題を言葉で説明するのは難しいので、例を作成しました。
上記のコメントに数式を投稿しましたが、見たことがないかもしれません。これだよ:
=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(TRUE,INDEX($B2:$D2<>"",0),0)))
これにより、入力されたセルの最初のインスタンスのヘッダーが取得されます-数値があり、ゼロを無視したい場合は、
=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(TRUE,INDEX($B2:$D2>0,0),0)))
どちらの方法でも、数式を必要なだけ広い範囲に拡張できます
..... 500列ある場合は、IFERRORを使用して少し短くすることができます
=IFERROR(INDEX($B$1:$D$1,MATCH(TRUE,INDEX($B2:$D2>0,0),0)),"")
数えられる列数(つまり3)を持つ比較的小さなテーブルである特定のテーブルの場合、これを試してください
=IF(COUNTA(G8)>0,"Column 1",IF(COUNTA(H8)>0,"Column 2",IF(COUNTA(I8)>0,"Column 3",""))).
私の質問は、テーブルに 20 列または 100 列が含まれている場合はどうなりますか?
「列ヘッダー」と言うとき、実際には「行ヘッダー」を意味すると思います。
最初のセル(テキストを含む"Column Header"
)がA1
これにあることを考慮すると、セルに導入する必要がある式は次のとおりですA2
。
=IF(B2>0, $B$1, IF(C2>0, $C$1, IF(D2>0, $D$1, "")))
この数式を必要な数の行にドラッグすると、(うまくいけば) 目的が達成されます。
3 つ以上の列を持つソリューションが必要であると仮定すると、この式は適切なヘッダーを返します。
データは行 2、列 B から始まり、行 1 には列ヘッダーが含まれていると仮定します。
B1 で次の式を使用し、それをコピーします。
=IF(COUNTA($B2:$D2)=0,"",INDEX($B$1:$D$1,MATCH(FALSE,INDEX(ISBLANK($B2:$D2),0),0)))
データが列 D を超えている場合は、数式でこれを変更するだけです。