2013-11-08 16:43:38 +0000 2013-11-08 16:43:38 +0000
7
7

行の最初の非ゼロ値を取得し、列のヘッダーを返すExcelの式

私は、行内の列範囲を見て、最初の非ゼロ値が発生したその行の列ヘッダーを左から右に移動して返すことができる式を見つけようとしています。

以下は私のデータのスクリーンショットです。 9 = 10/31/2011 10 = 11/30/2011 11 = 11/30/2011 12 = 12/31/2011

私がH列に表示したい結果は、各行ごとに以下のようになります:

私はいくつかの配列式を弄ったり、関数を検索したりしましたが、まだ成功していません。他のエクセルウィザードが何かアイデアを持っているのではないかと期待しています。

回答 (4)

12
12
12
2013-11-08 17:31:38 +0000

確かに、この

=INDEX(J$8:N$8,MATCH(TRUE,INDEX(J9:N9<>0,),0))を試してみてください。

3
3
3
2013-11-08 17:58:40 +0000

私は上記の答えを受け入れましたが、誰かの助けになるかもしれないので、私が見つけた別の方法を示したいと思いました。

=OFFSET($I$8,0,MATCH(0,J10:N10,1)+1)

と書くこともできます。

=INDEX(J$8:N$8,MATCH(0,J9:N9,1)+1)
0
0
0
2015-06-16 09:42:51 +0000

もし、要件がJ8 .N8の値をH列に配置するだけならば、コピーと転置(オプションの貼り付け)で解決できるはずです。N8の値をH列に配置するだけなら、コピーと転置(貼り付けオプション)で解決します。

-1
-1
-1
2015-04-21 13:03:42 +0000

式は最大の列(数字)の中で0以外のものを返してしまうので、上記のようなことがうまくいきませんでした。私は=MATCH(SMALL(J10:N10,1),J10:N10,0)を使用しました。smallはゼロの値を無視しています。