セルに値が含まれている場合は「列ヘッダー」

セルに値が含まれている場合は「列ヘッダー」

助けを求めています

 A       B       C       D       E        F
1               Food    Petrol   Rent   Wages
2       **Food** 12
3       **Petrol**        35
4       **Rent**                  120
5       **Wages**                       300

セル C2:F5 以降に値をコピーする数式がありますが、列の適切なセルに値がある場合に列ヘッダー「Food/Petrol/Rent」を B 列にコピーする数式を思いつくのが困難です。

したがって、C2 に値がある場合、B2 = C1 となり、F5 に値がある場合、B5 = "賃金" となります。

現在、38列と約1000行あり、すべてを手動で行うのは複雑になる可能性があります。

前もって感謝します

答え1

これを行うにはいくつかの方法があります。38 列があると説明されているので、何らかの形式の検索が最も簡単な方法です。これは INDEX と MATCH を使用して実行できます。

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

B2の式:

=INDEX($C$1:$F$1,MATCH(0,ISBLANK(C2:F2),0))

画像内の数式を囲む中括弧に注意してください。これは配列数式なので、単に ではなく、Ctrl+ Shift+を使用して入力する必要があります。そしてもちろん、データに合わせて範囲を調整する必要があります。 EnterEnter

使い方:

MATCH は最初の空白でないエントリを検索します。この場合、ISBLANK は を返しますFalse。これは OpenOffice では と表示されます0(Trueは と表示されます1)。MATCH は一致が見つかった範囲内の列の位置を返します。0最後のパラメータは完全一致を検索します。

INDEX は、MATCH によって見つかった対応する列位置の最初の行の値を返します。

数式を入力したら、それをコピーして列 B に貼り付けることができます。

アップデート:

コメントで、実際のスプレッドシートには数字のない空のセルがないと指摘されています。むしろ、空白のセルを表示する数式が含まれています。この場合、ISBLANK はそれを空白として認識しません。数値をテストし、最初の True 条件を探すだけでこれを処理できます。したがって、B2 の数式は次のようになります。

=INDEX($C$1:$F$1,MATCH(1,ISNUMBER(C2:F2),0))

繰り返しますが、これは配列数式なので、単に ではなく、Ctrl+ Shift+を使用して入力する必要があります。この例では、「空の」セルが実際には空白ではない場合に、この数式が機能することを確認しました。 EnterEnter

関連情報