- ベストアンサー
列の中の一番下のセルの内容を特定のセルに移したい
例えば、 A B C D E F 1 10 20 30 40 140 2 50 60 70 80 3 90 100 110 120 4 130 140 150 160 5 これらのようにセルが記録されているときには、 B4の内容をF1に表示させて、 5行目に 5 170 180 190 200 とデータが記録されているときには F1に「180」を表示させたいのです。 ちなみに数千行に渡るときにでも同様に一番下の行のデータを 特定のセルF1に表示させたいのですができるものでしょうか? F1の中のセルの関数もしくはマクロでもかまわないのですが、 ご教示いただければと思います。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
Sub Test() Dim i i = Cells(Rows.Count, 2).End(xlUp).Row Range("F1").Value = Range("B" & i).Value End Sub でしょうか?
その他の回答 (6)
- maron--5
- ベストアンサー率36% (321/877)
◆B列の最終行の数字をF1に表示であれば F1=LOOKUP(10^10,B:B)
お礼
VBAでも関数(数式)でも同様にやってみましたが、 色々方法があるものですね。 回答ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
配列数式で, B列を忠僕する場合 =INDIRECT("B"&MAX((B2:B20<>"")*(ROW(B2:B20)))) と入れて、SHIFT+CTRL+ENTER 1-20行で、データのある最下行データだ取れます。 =INDIRECT("B"&MAX((B2:B20<>"")*(ROW(B2:B20)))) でも同じです。 ーーー VBAで Sub test01() ActiveSheet.Range("F1") = Range("B2:B100").SpecialCells(xlCellTypeBlanks).Item(0) End Sub でも良いようです。
お礼
VBAでも関数(数式)でも同様にやってみましたが、 色々方法があるものですね。 回答ありがとうございました。 「配列数式」というのは初めて知りました。 今後も使わせていただきます。 ありがとうございました。
- zap35
- ベストアンサー率44% (1383/3079)
=INDEX(B1:B5000,SUMPRODUCT(MAX((B1:B5000<>"")*ROW(B1:B5000)))) でB列の最下行の値が求められます
お礼
VBAでも関数(数式)でも同様にやってみましたが、 色々方法があるものですね。 回答ありがとうございました。 「配列数式」というのは初めて知りました。 今後も使わせていただきます。 ありがとうございました。
- web2525
- ベストアンサー率42% (1219/2850)
質問例を見ると、下の行に行くほど数値が増えて言っているようですが、減ることもありますか? 常に増えているのであれば、 =MAX(B:B) だけで可能かと思います。 多分こんな簡単な事ではないでしょうが、一応参考として。
お礼
数値はセルごとに与えられる関数により求められる規則的な値です。 でも昇順にソートされているわけではありません。 色々方法があるみたいですね。 回答ありがとうございました。
- ham_kamo
- ベストアンサー率55% (659/1197)
表の中の値は全て数値なのでしょうか。 とりあえず文字列も含め、ブランクでない一番下のデータを表示させる式を作ってみました。 =OFFSET($B$1,MAX(ROW(B1:B10000)*(NOT(ISBLANK(B1:B10000))))-1,0) ★配列数式なのでCtrl+Shift+Enterで確定させてください。 昇順にソートされているのであれば、もう少し簡単になると思いますが。
お礼
表の中の値は関数で求められる数値です。 VBAでも関数(数式)でも同様にやってみましたが、 色々方法があるものですね。 回答ありがとうございました。 「配列数式」というのは初めて知りました。 今後も使わせていただきます。 ありがとうございました。
関数であれば, F1セルに, =LOOKUP(MAX(B:B),B:B) と書くと,F1 セルに B列の最終行のセルの値が返ります。 結局, LOOKUP 関数の 第一引数は MAX(B:B) でなくても, B列に存在する数値であれば,何でも良いのですが, 最大値に対応する数値は少なくとも1つは存在すると思うので, MAX(B:B) にしています。
お礼
関数(数式)でも同様にやってみましたが、 色々方法があるものですね。 回答ありがとうございました。
お礼
回答ありがとうございます。 多少アレンジさせてもらってVBAマクロで正常に動きました。 ありがとうございました。