参照を持つ2つの列からそれぞれ最後の5つのゼロ以外の値と名前を取得するExcel数式

参照を持つ2つの列からそれぞれ最後の5つのゼロ以外の値と名前を取得するExcel数式

以下のように、Excel の 4 つの列にデータの範囲があります。列 A、B はテキスト形式、列 C、D は参照リンクを使用して生成されています。C(F) と D(F) には、C と D の数式バーの値が表示されています。セル A10、A11、B10、B11 は空なので、C10、C11、D10、D11 には「0」が表示されます。

列 E と F に示されている順序で最後の 5 つのゼロ以外の値を取得しようとしていますが、列 A または B から直接ではなく、列 C と D のみに基づいています。

     A       B      C(F)    D(F)      C       D      E      F    
 1 Name     Val     Name    Val     Name     Val   Name     Val
 2 abc01    101     =A2     =B2     abc01    101   abc04    104
 3 abc02    102     =A3     =B3     abc02    102   abc05    105
 4 abc03    103     =A4     =B4     abc03    103   abc06    106
 5 abc04    104     =A5     =B5     abc04    104   abc07    107
 6 abc05    105     =A6     =B6     abc05    105   abc08    108
 7 abc06    106     =A7     =B7     abc06    106
 8 abc07    107     =A8     =B8     abc07    107
 9 abc08    108     =A9     =B9     abc08    108
10                  =A10    =B10      0       0
11                  =A11    =B11      0       0

列 A と列 B にデータ行を追加すると、列 E と列 F は以下のように反映されます。

     A       B      C(F)    D(F)      C       D      E      F    
 1 Name     Val     Name    Val     Name     Val   Name     Val
 2 abc01    101     =A2     =B2     abc01    101   abc05    105
 3 abc02    102     =A3     =B3     abc02    102   abc06    106
 4 abc03    103     =A4     =B4     abc03    103   abc07    107
 5 abc04    104     =A5     =B5     abc04    104   abc08    108
 6 abc05    105     =A6     =B6     abc05    105   abc09    109
 7 abc06    106     =A7     =B7     abc06    106
 8 abc07    107     =A8     =B8     abc07    107
 9 abc08    108     =A9     =B9     abc08    108
10 abc09    109     =A10    =B10    abc09    109
11                  =A11    =B11      0       0

答え1

ゼロ以外の値がすべて最初のゼロの前に現れる場合は、ゼロを検索してから逆方向にインデックスすることができます。

  • =INDEX(C:C, MATCH(0,C:C,0)-5, 1)の中へE2
  • =INDEX(C:C, MATCH(0,C:C,0)-4, 1)の中へE3
  • =INDEX(C:C, MATCH(0,C:C,0)-3, 1)の中へE4
  • =INDEX(C:C, MATCH(0,C:C,0)-2, 1)の中へE5
  • =INDEX(C:C, MATCH(0,C:C,0)-1, 1)の中へE6

次にそれらを選択し、右にドラッグ/フィルして にしますF2:F6。 冒頭で述べたように、これは列 Cで 0 を検索し、前の 5 行から値を取得します。

関連情報