- ベストアンサー
複数の列の最後の数値を返す
一列 (たとえばA列のみ)の最後の数値を返すという ご質問は多々見られますが 複数列 A列 D列 F列の中から 一番最後に出た数値を返すやり方が解りません。 D列 15行が最後の時もあれば F列2行の時もあるという感じです。 ちなみにSheet1のをSheet2に返したいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1 H1 =hlookup(10^100,offset(a1,max(index((a1:a3000<>0)*row(a1:a3000),),index((d1:d3000<>0)*row(d1:d3000),),index((f1:f3000<>0)*row(f1:f3000),))-1,0,1,6),1,1) Sheet1 から Sheet2 への参照にしたいのであれば、「Sheet1 に」上式を記入した後で、そのセルを「切り取って」、Sheet2 に貼り付けてください。Excel が勝手に「Sheet1!」を付加します。 なお最終行に複数の数値が記入されている場合は、そのうち最終列の値を表示します。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ↓の画像で右側がSheet2で左側がSheet1とします。 Sheet2の1行目に検索したい列番号を入力しておきます。 (今回はA・D・F列というコトですので、その三つだけを入力しています) Sheet2のA2セルに =MAX(IF(INDIRECT("Sheet1!"&A1&1&":"&A1&1000)<>"",ROW(A1:A1000))) これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグでコピー → Sheet2のA2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能のまま) Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このA2セルをC2セルまでオートフィルでコピー! (検索列数が多い場合は1行目の列番号を入力している列までコピー!) 最後に結果のA5セル(配列数式ではありません)に =IF(COUNTIF(2:2,">0"),INDIRECT("Sheet1!"&INDEX(1:1,,MATCH(MAX(2:2),2:2,0))&MAX(2:2)),"該当データなし") という数式を入れています。 最終データ行が同じ列が複数ある場合は最初の列(左側の列)のデータが表示されます。 ※ 配列数式はPCにかなりの負担を掛けますので、Sheet1の1000行目までの数式としています。 実際は3000行程度であれば問題ないと思います。m(_ _)m
補足
けっこう複雑なのでじっくりやってみます。 返事が遅くなるかもしれませんがご容赦ください 皆様ありがとうございます。
- aokii
- ベストアンサー率23% (5210/22062)
数値以外のデータが有ったり、行の間に数値以外のデータやブランクがあると正しく表示されませんが、 =MAX(INDIRECT("R"&MAX(COUNT(A:A),COUNT(D:D),COUNT(F:F))&"C"&"1",FALSE),INDIRECT("R"&MAX(COUNT(A:A),COUNT(D:D),COUNT(F:F))&"C"&"4",FALSE),INDIRECT("R"&MAX(COUNT(A:A),COUNT(D:D),COUNT(F:F))&"C"&"6",FALSE))
補足
こりゃすごい! 早速挑戦してみます。 もう一点、A列 5行目から30行まで範囲を指定する場合 (A5:A30) 同様に(D5:D30)と置き換えるのでしょうか。 また素人ながらこれだとSheet1の値をSheet2に返すようになってないのでは? それでもSheet1!で参照すればいいことですよね。
お礼
うまくいきました。 ありがとうございました。 コピーでなくて「切り取り」「貼り付け」 でSheet!とは 目からうろこ状態です。 いいこと一つ覚えました。
補足
ありがとうございます。 チョー複雑ですね。 早速チャレンジしてみます。