• ベストアンサー

【EXCEL】列の最後のセルのデータだけ抽出したい

いつもお世話になっております。 A1 ○○ B1 ○○ C1 ○○ A2 ○○ A3 ○○ B3 ○○ ...といったかんじでセルにバラバラにデータが入っているとします。 列にデータが入っている最終の行だけ取り出したいのです。 上の例だとC1,A2,B3です。 マクロを使わなきゃ無理そうなのですが、アフォなのでわかりません。(T.T) プログラミングの経験がある方、賢い方、教えてくださいませ。

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

以下の関数で如何でしょうか。期待値と相違していましたら無視して下さい。 (例)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では無いでしょうか。

sineminna
質問者

お礼

よくそんな長い式がわかりますね~ つくづく感心します。 Aを1に変えたらできました!

sineminna
質問者

補足

すいません。説明が間違っていました。 行の最後の列のデータです。 でも、教えていただいた関数をさわったらいけそうですね。 がんばります。

その他の回答 (2)

  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.3

こんちは =INDEX(1:1,MAX(INDEX(COLUMN(1:1)*(NOT(ISBLANK(1:1))),))) とか

sineminna
質問者

お礼

会社の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)で出るそうです。 奥が深いですね。 皆様ありがとうございました。

sineminna
質問者

補足

すごすぎます。 そんな難しい式、なぜわかるんだ~!!

  • xyz37005
  • ベストアンサー率51% (362/706)
回答No.2

例: 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パラメーター:その行の空白セルでないデータの数 注意:データが左から摘めてあり残りは空白セルの場合のみ

sineminna
質問者

お礼

xyzさんのおっしゃるとおりの式でもできました。 どうもありがとうございます。

sineminna
質問者

補足

いつも思うんですが、なんでそんなひらめきが出るんでしょう? 皆さん頭よすぎです。(私が悪いだけですが) いろいろなやり方があるんですね。

関連するQ&A

  • あるセルの文字列(または数値)を、他のセルのデータの一部として流用した

    あるセルの文字列(または数値)を、他のセルのデータの一部として流用したい場合について。 例えば、 セルA1に 0001 セルA2に K-0001 セルA3に T-0001 セルA4に W-0001 また、 セルB1に 0035 セルB2に K-0035 セルB3に T-0035 セルB4に W-0035 …C、D、E、、、と100項目ほど続く、という場合。 このようにデータを入力していきたい場合、 例えば、A列で、 A1の0001という数字を、A2~A4の中で、「データの一部として代入」したい時、 どういう風に自動化できますでしょうか? (例)K-0001 の中において、0001という数字は、データの一部として使われている。 ちょっとまとめてみますと、 1行目:●●●● 2行目:K-●●●● 3行目:T-●●●● 4行目:W-●●●● ●●●● は、同列の1行目の数値を、そのまま割り当てる というような記述ができたらなと思っているわけです。 つまり、1行目に●●●●を打ち込むだけで、その列の2行目以降について、適宜、自動的に必要な数値なり文字列が入力されるようにしたいわけです。 このようなことは、できませんでしょうか? マクロでも何でも結構です。 どなたか、お詳しい方、教えて下さい。 必ずお返事致します。

  • [EXCEL2000]複数の列からデータを取り出して1列にまとめたい!

    (1)一行にA列、B列、C列があります。 (2)各行のどれか1つの列には、必ずデータが入っています。 (3)データの入っているセルからデータを取り出し、D列の同じ行のセルに移します。(コピーでもかまいません) (4)結果、D列には、A列~C列のデータが1列にまとまる! 具体的には↓のようになりますが、どのような関数を使えばよいですか?教えてください。 (具体例) A列 B列 C列 D列 12         12        50  50      32     32

  • 連日となっているセルを抽出するには?

    翌日の日付を抽出する方法があれば、教えていただけますでしょうか。 A列に、数字3ケタが並んでいます。 この数字が同一の行=(A1~C3)のデータの中から C列とB列の日付が翌日になっている行を探し出したいです。 下記の場合は、 C1(13/12/31)とB2(2014/1/1)が連日、翌日となっている。 C2(2014/12/31)とB3(2015/1/1)が連日、翌日となっている。 上記の場合、連日となっている「4つのセル」を全て絞り出したいです。    A  B   C 1  123  2013/1/1 2013/12/31 2  123  2014/1/1 2014/12/31 3  123  2015/1/1 2015/12/31 ―----------------- 4  456  2013/1/1 2013/12/31 5  456  2013/1/1 2013/12/31 A列の 数字は2700種類程あり、エクセルデータは1万行程度となります。 マクロや関数など、ヒントだけでも知りたいので、 分かる方教えていただけると嬉しいです。

  • 1)A列 A4からA55まで、数字のデータが入ってるセルと、入ってない

    1)A列 A4からA55まで、数字のデータが入ってるセルと、入ってないセルがあります。 2)B列もA列同様、B4からB55まで、数字のデータが入ってるセルと、入ってないセルがあります。(データの入ってる行は、A列で入っていれば、B列の同じ行に入っています) 3)A列とB列のデータの入っている行を順番に4から55行まで、掛け算をして(例えば、A5*B5)、その4から55行まで合計を、H2に入っている、ほかの合計の数値で、割り算をする計算式をK2のセルに、一つにまとめて入れ、計算結果を表示したいのです。 検索で参考例を探したのですが、見当たらなかったので宜しくお願いいたします。

  • Excel2013 同一列の抽出

    Excelの使い方について、教えていただいたく思います。 Win7 Excel2103を使用しています。 とあるデーターの同一行にて、A列、B列の値が同一のものだけを抽出する方法を探しております。 当方、あまりExcelに詳しく無い為、よろしくお願い申し上げます。 【例】       A列      B列 1行目   123     234 2行目   567     123 3行目   123     123 4行目   234     123 5行目   234     234 6行目   234     567 ・ ・ ・ 3行目、5行目がA列、B列が同一の為、抽出できないでしょうか? 該当行の色分け、不要行の削除等、方法は問いません。 宜しくお願い申し上げます。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • (Excel2003)すぐ左の最後の行までコピーするマクロを教えてください

    マクロ初心者です。 表記の件に就き、何卒ご教授の程、宜しくお願いします。 ・エクセルで以下のような表があるとします。 __A__B__C__D→ 1_数量_単価_金額 2_4,000_100_=B3*C3 3_5,000_200_ 4_3,000_120_ 5_5,000_160_ ↓ ・そしてこのAとB列が毎回下に増えるとして、C2セルの数式を  B列の最後の行までコピーするマクロを教えて下さい。 (実際は、C2セルにVLOOK関数が入っており、最終行は何千行まであります) 何卒ご教授の程、宜しくお願い申し上げます。 

  • 列のデータに変化があるとマクロを実行

    A列 - B列 - C列 - D列 1 - 123 - 234 - 678 2 - 456 - 567 - 890 3 - 333 - 444 - 555 4 - 765 - 876 - 321 5 - ? - ? - ? 6 - ? - ? - ? の様なデータがあり行のデータ日々増すとき C列最終行のデータD1に出したいのですが? C列のデータに変化があるとマクロを実行して 常にC列最終行のデータD1に出したいのです どなたか良きアドバイスをお願い致します。

  • Excelで1列のデータを5列に振り分けする

    Excel2003でA列に1行にあるデータ(半角英数字)を 次のシートに、1行ずつコピーして、それを5列に振り分けするというマクロを作りたいです。 (ただし、コピーは2つずつの時もあります。) 元データ ●A列 B列 C列  1  2  3  4  5  ・  ・ 加工後 ●A列 B列 C列 D列 E列   1   1   2   2   3   3   4   4   5   5   上記のような感じです。ただデータは数字のみでなくて、英数字です。 Excelのマクロは全くの初心者で大変困っています。 どうぞよろしくお願いたします。

  • Excel2000での列集計

    過去の質問では見つからず、初めて質問させていただきます 【質問】 Code1 Code2 Name 1 2 3 4 5 6 7~               月    ~   日 月    ~   日 a1   111  あ    A A            A a1   111  あ                 B B a1   111  あ      C C C      C a2   222  い                   A A a2   222  い    B B a2   222  い      C C          C C a2   222  い                   D a3   333  う    A A a3   333  う                 B   ・   ・ 上の1年分のデータ表を下記のような週毎に月曜日のみ残した表にその週にあるデータ(文字列)を月の列に集め、空白の行は上に詰めて表示させ、詰めたことによって全ての月曜日の列(1年分)にデータの無い行は削除したい Code1 Code2 Name  1  8 ~                月 月 a1   111  あ     A A a1   111  あ     C B a1   111  あ       C a2   222  い     B A a2   222  い     C C a2   222  い       D a3   333  う     A B   同人の行の中ではひとつの行には同じデータしかない "あ"の3行はA行B行C行になっています "い"の4行中には、またABCそれぞれの行があり加えてD行もある "う"の行はAとBのみなので行が少ない 関数でも試したのですが無理で、マクロでしかできないのではと思っています。 マクロは良く分からないのでお分かりになる方教えて下さい。お願いします。

専門家に質問してみよう