- ベストアンサー
【EXCEL】列の最後のセルのデータだけ抽出したい
いつもお世話になっております。 A1 ○○ B1 ○○ C1 ○○ A2 ○○ A3 ○○ B3 ○○ ...といったかんじでセルにバラバラにデータが入っているとします。 列にデータが入っている最終の行だけ取り出したいのです。 上の例だとC1,A2,B3です。 マクロを使わなきゃ無理そうなのですが、アフォなのでわかりません。(T.T) プログラミングの経験がある方、賢い方、教えてくださいませ。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
以下の関数で如何でしょうか。期待値と相違していましたら無視して下さい。 (例)A列の最終行の文字or数値を取り出せます。 =INDEX(A:A,MAX(IF(COUNTIF(A:A,"*"),MATCH("",A:A,-1)),IF(COUNT(A:A),MATCH(MAX(A:A)+1,A:A,1)))) 因みに、列にデータが入っている最終の行ならば、A3,B3,C1では無いでしょうか。
その他の回答 (2)
- moon_piyo
- ベストアンサー率60% (88/146)
こんちは =INDEX(1:1,MAX(INDEX(COLUMN(1:1)*(NOT(ISBLANK(1:1))),))) とか
お礼
会社のPCに詳しい方に聞いたらマクロを使って関数を作ったらいいじゃんと言われました。 モジュールを作成して Public Function PICKUP(Rng As Range) As String Dim BKString As String Dim DAT As Variant BKString = "" DAT = "" For Each DAT In Rng If DAT <> "" Then BKString = DAT End If Next PICKUP = BKString End Function これでPICUPという関数ができるので=PICUP(A1:Z1)で出るそうです。 奥が深いですね。 皆様ありがとうございました。
補足
すごすぎます。 そんな難しい式、なぜわかるんだ~!!
- Sucelggug(@xyz37005)
- ベストアンサー率51% (369/715)
例: A1 ○○ B1 ○○ C1 ○○ D1 空白 E1 空白 A2 ○○ B2 空白 C2 空白 D2 空白 E2 空白 A3 ○○ B3 ○○ C3 空白 D3 空白 E3 空白 の状態で行1の最後のデータを取得 =INDEX($A$1:$E$3,CELL("row",A1:E1),COUNTA(A1:E1)) こんな感じでどうでしょ? 第1パラメーター:データが入ってる領域を絶対アドレスで指定 第2パラメーター:その行の行番号 第3パラメーター:その行の空白セルでないデータの数 注意:データが左から摘めてあり残りは空白セルの場合のみ
お礼
xyzさんのおっしゃるとおりの式でもできました。 どうもありがとうございます。
補足
いつも思うんですが、なんでそんなひらめきが出るんでしょう? 皆さん頭よすぎです。(私が悪いだけですが) いろいろなやり方があるんですね。
お礼
よくそんな長い式がわかりますね~ つくづく感心します。 Aを1に変えたらできました!
補足
すいません。説明が間違っていました。 行の最後の列のデータです。 でも、教えていただいた関数をさわったらいけそうですね。 がんばります。