- ベストアンサー
関数にて一番最後の数値を抽出
関数にて一番最後の数値を抽出するのに困っています。 列に店舗名、行に日付を設定し各日での売上額が入力されている表があります。 各店舗の最終行に一番最後に入力された売上額と日付を抽出したいのですが入 力数0のセルもある為に自学ではどうしても0を抽出してしまいます。 どうかご伝授のほど、宜しくお願い致します。 1日 2日 3日 4日 抽出日 抽出最終金額 A社 10 0 0 0 1日 10 B社 10 0 20 0 3日 20
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
抽出日は =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以上の最終販売日の位置を求める数式
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに適切な回答は出ていますが、参考程度で・・・ ↓の画像で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
お礼
丁寧なご説明、大変勉強になりました。
お礼
有難う御座いました。うまく抽出でき、感激です。 ちなみに『0』ではなく『-』の場合、置き換え るだけでうまく抽出出来ますか?