都道府県穴埋めゲーム

例えば、
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の中のセルの関数もしくはマクロでもかまわないのですが、
ご教示いただければと思います。

A 回答 (7件)

Sub Test()


Dim i
i = Cells(Rows.Count, 2).End(xlUp).Row
Range("F1").Value = Range("B" & i).Value
End Sub

でしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
多少アレンジさせてもらってVBAマクロで正常に動きました。
ありがとうございました。

お礼日時:2007/01/05 08:08

◆B列の最終行の数字をF1に表示であれば


F1=LOOKUP(10^10,B:B)
    • good
    • 0
この回答へのお礼

VBAでも関数(数式)でも同様にやってみましたが、
色々方法があるものですね。
回答ありがとうございました。

お礼日時:2007/01/05 08:17

配列数式で,


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
でも良いようです。
    • good
    • 0
この回答へのお礼

VBAでも関数(数式)でも同様にやってみましたが、
色々方法があるものですね。
回答ありがとうございました。
「配列数式」というのは初めて知りました。
今後も使わせていただきます。
ありがとうございました。

お礼日時:2007/01/05 08:16

=INDEX(B1:B5000,SUMPRODUCT(MAX((B1:B5000<>"")*ROW(B1:B5000))))



でB列の最下行の値が求められます
    • good
    • 0
この回答へのお礼

VBAでも関数(数式)でも同様にやってみましたが、
色々方法があるものですね。
回答ありがとうございました。
「配列数式」というのは初めて知りました。
今後も使わせていただきます。
ありがとうございました。

お礼日時:2007/01/05 08:15

質問例を見ると、下の行に行くほど数値が増えて言っているようですが、減ることもありますか?



常に増えているのであれば、
=MAX(B:B)
だけで可能かと思います。

多分こんな簡単な事ではないでしょうが、一応参考として。
    • good
    • 0
この回答へのお礼

数値はセルごとに与えられる関数により求められる規則的な値です。
でも昇順にソートされているわけではありません。
色々方法があるみたいですね。
回答ありがとうございました。

お礼日時:2007/01/05 08:15

表の中の値は全て数値なのでしょうか。


とりあえず文字列も含め、ブランクでない一番下のデータを表示させる式を作ってみました。

=OFFSET($B$1,MAX(ROW(B1:B10000)*(NOT(ISBLANK(B1:B10000))))-1,0)
★配列数式なのでCtrl+Shift+Enterで確定させてください。

昇順にソートされているのであれば、もう少し簡単になると思いますが。
    • good
    • 0
この回答へのお礼

表の中の値は関数で求められる数値です。
VBAでも関数(数式)でも同様にやってみましたが、
色々方法があるものですね。
回答ありがとうございました。
「配列数式」というのは初めて知りました。
今後も使わせていただきます。
ありがとうございました。

お礼日時:2007/01/05 08:12

関数であれば,


F1セルに,

=LOOKUP(MAX(B:B),B:B)

と書くと,F1 セルに B列の最終行のセルの値が返ります。
結局,
LOOKUP 関数の 第一引数は MAX(B:B) でなくても,
B列に存在する数値であれば,何でも良いのですが,
最大値に対応する数値は少なくとも1つは存在すると思うので,
MAX(B:B) にしています。
    • good
    • 0
この回答へのお礼

関数(数式)でも同様にやってみましたが、
色々方法があるものですね。
回答ありがとうございました。

お礼日時:2007/01/05 08:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!