- ベストアンサー
エクセル関数式。A列最後尾行の他列の値を抜き出す
- エクセル関数式を使用して、A列の最後尾行の他列の値を抜き出す方法を教えてください。
- 表の最後尾行はA113なので、B113の値を抜き出す方法と、C113の値を抜き出す方法を知りたいです。
- さらに、最後尾行A113だけでなく、A113±αの行の値を抜き出す方法も教えてください。
- みんなの回答 (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)
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
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
お礼
回答ありがとうございます。回答を訂正していただき、VBAまで載せていただき、大変勉強になりました。参考にさせていただきたいと思います。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 同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
お礼
回答ありがとうございます。勉強させていただきたいと思います。
- keithin
- ベストアンサー率66% (5278/7941)
=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)),"") などで。
お礼
回答ありがとうございます。うまくできました、大変助かりました。
お礼
回答ありがとうございます。このやり方でうまくできました。ありがとうございます。