プロが教えるわが家の防犯対策術!

初めまして、よろしくお願いします。
     A  B  C  
1    赤  青  黄  
2 
3   
4    1  3  2  
5    9  1  3  
・    ・  ・  ・  
・    ・  ・  ・   
112  4  6  1  
113  7  7  5  
114     9  1    
115        2  
116        0    

 という表があります。
 この表の最後尾はA113ですので、B113の7を、C113の5の値を抜き出す関数式を探しております。応用が利くように、最後尾行113のみではなく、113±αの値を抜き出す補足をいただければ大変助かります。よろしくお願いします。

A 回答 (4件)

A列最後尾=INDEX(A$2:A$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1),1)


B列最後尾=INDEX(B$2:B$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1),1)
C列最後尾=INDEX(C$2:C$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1),1)

A列最後尾±α=INDEX(A$2:A$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1)±α,1)
B列最後尾±α=INDEX(B$2:B$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1)±α,1)
C列最後尾±α=INDEX(C$2:C$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1)±α,1)
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。このやり方でうまくできました。ありがとうございます。

お礼日時:2011/03/13 22:31

No.3です!


前回は大きな勘違いをしていました。
A列の最終行の各列のデータを表示したい!ということですよね?

数式を
=INDEX(A$1:A$1000,MAX(IF($A$1:$A$1000<>"",ROW($A$1:$A$1000))))
(前回同様配列数式です)
に変更してください。

それとVBAも変わってきます。
画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので↓のコードをコピー&ペーストしてマクロ実行です。
(Alt+F8キー → マクロ → マクロ実行)

Sub test() 'この行から
Dim i, j As Long
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1")
Set ws2 = Worksheets("sheet2")
i = ws1.Cells(Rows.Count, 1).End(xlUp).Row
For j = 1 To ws1.UsedRange.Columns.Count
ws2.Cells(1, j) = ws1.Cells(i, j)
Next j
End Sub 'この行まで

こんな感じです。

何度も失礼しました。m(__)m
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。回答を訂正していただき、VBAまで載せていただき、大変勉強になりました。参考にさせていただきたいと思います。

お礼日時:2011/03/13 22:37

こんばんは!


一例です。
同Sheetに表示する場合の数式です。

表示したいセルに
=INDEX(A$1:A$1000,MAX(IF(A$1:A$1000<>"",ROW($A$1:$A$1000))))
(とりあえず1000行目までデータがあっても対応できるようにしています。)

これは配列数式になってしまいますので、Shift+Ctrlキーを押しながらEnterキーで確定!
それをデータ量だけ列方向にオートフィルでコピーではどうでしょうか?

他の方法としてはVBAになってしまいますが・・・
Sheet1の各列の最後尾のデータをSheet2の1行目に表示する方法です。

Sub test() 'この行から
Dim i, j As Long
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1")
Set ws2 = Worksheets("sheet2")
For j = 1 To ws1.UsedRange.Columns.Count
ws2.Cells(1, j) = ws1.Cells(Rows.Count, j).End(xlUp)
'Sheet2の2行目に表示する場合は↑の行の Ws.Cells(1,j) の部分を Ws.Cells(2,j) に変更!
Next j
End Sub 'この行まで

こんな感じではどうでしょうか?m(__)m
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。勉強させていただきたいと思います。

お礼日時:2011/03/13 22:32

=INDEX(B:B,MATCH(MAX($A:$A)+1,$A:$A,1))


=IF(COUNT($A:$A),INDEX(C:C,MATCH(MAX($A:$A)+1,$A:$A,1)),"")
などで。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。うまくできました、大変助かりました。

お礼日時:2011/03/13 22:30

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