• ベストアンサー

関数にて一番最後の数値を抽出

関数にて一番最後の数値を抽出するのに困っています。 列に店舗名、行に日付を設定し各日での売上額が入力されている表があります。 各店舗の最終行に一番最後に入力された売上額と日付を抽出したいのですが入 力数0のセルもある為に自学ではどうしても0を抽出してしまいます。 どうかご伝授のほど、宜しくお願い致します。       1日   2日   3日   4日   抽出日   抽出最終金額 A社    10    0     0    0     1日      10 B社    10    0    20    0     3日      20

質問者が選んだベストアンサー

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

抽出日は =INDEX($B$1:$E$1,SUMPRODUCT(((B2:E2>0)*COLUMN(B1:E1)=MAX((B2:E2>0)*COLUMN(B1:E1)))*COLUMN(B1:E1))) 金額は =INDEX(A2:E2,SUMPRODUCT(((B2:E2>0)*COLUMN(B1:E1)=MAX((B2:E2>0)*COLUMN(B1:E1)))*COLUMN(B1:E1))) こんな感じで出せる SUMPRODUCT(((B2:E2>0)*COLUMN(B1:E1)=MAX((B2:E2>0)*COLUMN(B1:E1)))*COLUMN(B1:E1)) ↑ 売上が0以上の最終販売日の位置を求める数式

512508
質問者

お礼

有難う御座いました。うまく抽出でき、感激です。 ちなみに『0』ではなく『-』の場合、置き換え るだけでうまく抽出出来ますか?

その他の回答 (2)

noname#204879
noname#204879
回答No.3

F2: {=MAX((B$1:E$1)*(B2:E2<>0))} G2: =INDEX(B2:E2,F2)

512508
質問者

お礼

シンプルかつ的確な回答、有難う御座いました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! すでに適切な回答は出ていますが、参考程度で・・・ ↓の画像でF2セルに =IF(COUNTIF(B2:E2,">0"),INDEX(A$1:E$1,,MAX(IF(A2:E2>0,COLUMN(A1:E1)))),"") これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は、上記数式をドラッグしてコピー → F2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能のまま) Shift+Ctrlキーを押しながらEnterキーで確定1 数式の前後に{ }マークが入り配列数式になります。 そしてG2セル(配列数式ではありません)は =IF(F2="","",INDEX(B2:E2,,MATCH(F2,B$1:E$1,0))) という数式を入れ、F2・G2セルを範囲指定 → G2セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ 余計なお世話かもしれませんが、質問では4日分だけのサンプルになっていますが 実際はもっと列数が多いのではないかと思います。 その場合、F2に入れた数式の列数を実状に合わせる必要があります。m(_ _)m

512508
質問者

お礼

丁寧なご説明、大変勉強になりました。

関連するQ&A