• ベストアンサー

複数の列の最後の数値を返す

一列 (たとえばA列のみ)の最後の数値を返すという ご質問は多々見られますが 複数列 A列   D列   F列の中から 一番最後に出た数値を返すやり方が解りません。 D列 15行が最後の時もあれば F列2行の時もあるという感じです。 ちなみにSheet1のをSheet2に返したいです。

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

  • ベストアンサー
回答No.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!」を付加します。 なお最終行に複数の数値が記入されている場合は、そのうち最終列の値を表示します。

kuutaro4027
質問者

お礼

うまくいきました。 ありがとうございました。 コピーでなくて「切り取り」「貼り付け」 でSheet!とは 目からうろこ状態です。 いいこと一つ覚えました。

kuutaro4027
質問者

補足

ありがとうございます。 チョー複雑ですね。 早速チャレンジしてみます。

その他の回答 (2)

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

こんばんは! 一例です。 ↓の画像で右側が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

kuutaro4027
質問者

補足

けっこう複雑なのでじっくりやってみます。 返事が遅くなるかもしれませんがご容赦ください 皆様ありがとうございます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

数値以外のデータが有ったり、行の間に数値以外のデータやブランクがあると正しく表示されませんが、 =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))

kuutaro4027
質問者

補足

こりゃすごい! 早速挑戦してみます。 もう一点、A列 5行目から30行まで範囲を指定する場合 (A5:A30)   同様に(D5:D30)と置き換えるのでしょうか。 また素人ながらこれだとSheet1の値をSheet2に返すようになってないのでは? それでもSheet1!で参照すればいいことですよね。

関連するQ&A