2017-10-12 7 views
0

Excel関数を使用して、行の最後のゼロ以外の値の列名を取得する方法。Excelの最後のゼロ以外の値の列名

例:

A:E - 値 Xと列 - 関数の結果

A B C D E x 

0 0 1 0 0 C 
1 0 2 1 2 E 
0 1 1 0 1 E 
1 1 1 1 1 E 
0 0 0 0 0 
+0

なぜ?あなたは別の式でそれを使って何か他のものを返しますか? –

+0

@ScottCranerはい。実際の例では、各列は時刻(第1期間、第2期間...)に関連しています。開始日と最後の発生日(終了日)の差を計算したいと思います。 – Kulis

+1

あなたは完全な問題を表示する必要があります、あなたは2つではなく1つのステップで行うことが簡単です。 –

答えて

1

CTRL +と入力しますShiftキー + を入力します。

=IFERROR(MID(ADDRESS(ROW(),MAX(IF(A2:E2,COLUMN(A2:E2)))),2,SEARCH("$",ADDRESS(ROW(),MAX(IF(A2:E2,COLUMN(A2:E2)))),2)-2),"") 

enter image description here

2

この作品:

=IFERROR(CHAR(AGGREGATE(14,6,COLUMN(A1:E1)/(A1:E1<>0),1)+64),"") 

enter image description here

+1

列番号を列文字に変換するためのきれいな方法。 –

+1

@ Garyのスチューデントですが、それはA-Zのためにしか機能しません。 –

+0

@ScottCraner私は全カラム範囲で必要とは言及しませんでした。 – Kulis

1

これらは、アレイ式でありますを使用して入力する必要があります+ ENTERSHIFTを:

これはZZまでの作品:

=IFERROR(SUBSTITUTE(MID(CELL("address",OFFSET(A1,0,MAX(IF(A1:AA1<>0,COLUMN(A1:AA1),0))-1)),2,2),"$",""),"")

これは、すべての列のために働く:

=IFERROR(MID(CELL("address",OFFSET(A1,0,MAX(IF(A1:AAA1<>0,COLUMN(A1:AAA1),0))-1)),2,FIND("$",MID(CELL("address",OFFSET(A1,0,MAX(IF(A1:AAA1<>0,COLUMN(A1:AAA1),0))-1)),2,99))-1),"")

更新:受け入れ答えは、より効率的です。これは数値を前提としていますが、数値以外の値も扱えるように簡単に更新できます。しかし、それがさらに最適化することができます

=IFERROR(MID(SUBSTITUTE(ADDRESS(1,MAX(IF(A2:XED2,COLUMN(A2:XED2)))),"$1",""),2,3),"")

関連する問題