0

列にデータがある場合、列ヘッダーを返す数式が必要です。しかし、2 番目、3 番目、4 番目のヘッダーにもデータを返す必要があります

列 A 行 2 には、 =IF(M8<>"",$M$1,IF(N8<>"",$N$1,IF(O8<>"",$O$1,IF(P8<>) "",$P$1,IF(Q8<>"",$Q$1,IF(R8<>"",$R$1,IF(S8<>"",$S$1,IF(T8<>"") ,$T$1,""))))))))

これは、行 2 列 M から T のデータの最初のインスタンスの行 1 ヘッダーを返します。ただし、B2 では、列にデータを含む 2 番目のヘッダーが必要です。

配列の左側にある黄色 (1 番目、2 番目、3 番目、4 番目) の結果が必要です

1 列目 2 列目 3 列目 4 列目 M 列 N 列 O 列 P 列 Q 列 R 列 S 列 T 列
列 M 列 O 列 R データ data2 Data3        
列 N 列 O 列 Q 列 T データ Data2 data3 data4

一致/インデックスを使用しますが、2番目または3番目の一致にインクリメントできません ありがとう

4

2 に答える 2

1

CTRL+SHIFT+ENTERで確認してコピーしたA2でこの「配列数式」を使用できます

=IFERROR(INDEX($M$1:$T$1,SMALL(IF($M8:$T8<>"",COLUMN($M8:$T8)-COLUMN($M8)+1),COLUMNS($A2:A2))),"")

データがなくなると空白になります

CTRL+SHIFT+ENTER で確定するには、A2 に数式を入力し、F2 キーを押して数式を選択し、CTRL キーと SHIFT キーを押しながら ENTER を押します。{ や } のような中括弧が数式バーの数式の周りに表示されます - コピーする前にこれを行ってください

于 2012-09-18T18:42:30.657 に答える
0

これを一度だけ行う必要がある場合は、この方法が機能するはずです。自動化する必要がある場合は、いくつかの変更が必要になります。

  1. ListAllCols (または何でも)という名前の新しい列を作成します。この式を使用します。

    =IF(E2<>"",","&E$1,"")
    & IF(F2<>"",","&F$1,"")
    & IF(G2<>"",","&G$1 ,"")
    & IF(H2<>"",","&H$1,"")

    あなたの例を使用すると、最初の行は「列M、列O、列R」を返すはずです

  2. この列を選択し、[値のコピーと貼り付け] を選択して方程式を削除します。

  3. Excel 2007 のText to Columns機能 ([データ] -> [Data Tools] -> [Text to Columns]) を使用して、区切り記号としてコンマを指定して、これを 3 つの個別の列に分割します。

于 2012-09-18T18:45:04.663 に答える