• ベストアンサー

Excelで2列の数値から合致する値とそれに付随するテキストの行を同行に移動する方法

こんにちは。Excel2000を使用しております。 以前似たような質問をしたのですが、その応用で質問です。 A列     B列     C列 100     100     AAA 101     102     BBB 102     104     CCC 103     105     DDD 104     105 上記のような場合、B、C列の数値を、A列内の合致する数値と同列に持って行きたいのです。つまり、 A列     B列     C列 100     100     AAA 101     102     102     BBB 103    104     104     CCC 105     105     DDD のようにしたいのですが、どのようにすれば良いのでしょうか? 以前の質問で、A列とB列だけであれば、 =IF(ISERROR(MATCH(A1,$B$1:$B$4,0))=FALSE,A1,"") の巻数で可能であるのは理解しています。 そこに、さらにC列の一緒に移動させることは出来ますでしょうか? 宜しくお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

データ先頭行の任意の列に以下の式を貼り付けて、下方向とその右側の列にコピーしてください =IF(ISNA(MATCH($A1,$B$1:$B$500,0)),"",INDEX(B$1:B$500,MATCH($A1,$B$1:$B$500,0))) データは500行まであるものとしています。行数が多いなら500の部分を修正してください(3カ所あります)

oyaoya2006
質問者

お礼

ご回答有り難うございます。 上記の方法で、解決できました! 有り難うございましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

マクロで書くとこんな感じでしょうか。 Sheet1のタブを右クリックして「コードの表示」でVBAの画面を出し、以下のマクロを貼り付けて実行してみてください。 Sub 行を揃える()   Dim A_cell As Range, B_cell As Range   Set B_cell = Range("B65535").End(xlUp)   If B_cell Is Nothing Then     Exit Sub   End If    Do     Set A_cell = Range("A:A").Find(B_cell.Value)     If Not A_cell Is Nothing Then       A_cell.Offset(0, 1) = B_cell.Value       A_cell.Offset(0, 2) = B_cell.Offset(0, 1).Value       B_cell.ClearContents       B_cell.Offset(0, 1).ClearContents     End If     If B_cell.Row = 1 Then       Exit Do     End If     Set B_cell = B_cell.Offset(-1, 0)   Loop End Sub

oyaoya2006
質問者

お礼

ご回答有り難うございました。 マクロ自体が理解できておらず、申し訳ありません。 しかし、上記の方法で解決出来ました。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 ・シート1に元リスト ・シート2のA列にはシート1のA列がコピー シート2のB1セルに次の数式を設定して、縦横にコピーして下さい。 =IF(COUNTIF(sheet2!$B:$B,$A1)=0,"",VLOOKUP(A1,sheet2!$B:$C,COLUMN()-1,0))

oyaoya2006
質問者

補足

ご回答ありがとうございます。 試してみたのですが、 「数式が計算できません。」とエラーが出ました。 そして 「循環参照の基になるセルを確認する」という ヘルプ項目が表示されてしまいました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで2列の数値から合致する値を同行に移動する方法

    こんにちは。Excel2000を使用しております。 A列     B列 100     100 101     102 102     104 103     105 104     105 上記のような場合、B列の数値を、A列内の合致する数値と同列に持って行きたいのです。つまり、 A列     B列 100     100 101     102     102 103    104     104  105     105 のようにしたいのですが、どのようにすれば良いのでしょうか? 宜しくお願いいたします。

  • エクセルマクロ 特定の文字列を含む行を削除

    エクセルマクロ 特定の文字列を含む行を削除 エクセルのマクロについて教えてください。 下の中から列を限定せず、すべての行でAAA、CCCのいずれかがある場合、 その行ごと、すべて削除したいのです。 時に削除したい特定の文字列が数十種類になるため、 マクロ起動時に削除したい特定の文字を記述したファイルを読み込み、それから 削除できるようにしたいのです。場合によってはそのファイルを編集し、 削除したい文字列を変更したいのです。 ご教示いただだけないでしょうか A列 B列 C列 1 AAA BBB CCC 2 BBB CCC FFF 3 DDD BBB FFF 4 AAA CCC DDD 5 GGG RRR UUU 行中にAAA、BBBがある場合、削除したい ↓ A列 B列 C列 5 GGG RRR UUU マクロを実行し、上記の結果にしたい。

  • EXCELで行の先頭データが同じ行の削除方法について

    EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか?  AAA   AAA  AAA  AAA  AAA  BBB  BBB  BBB  CCC  DDD  DDD  DDD  DDD 上ようのなデータで重複している部分を削除し、  AAA  BBB  CCC  DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?  

  • CSVに外部テキストファイルを列として追加する方法

    こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。

  • セルの値を含む文字列を検索する方法

    エクセル2010を使っている者です。 セルの値を一部として含むかどうかを調べることはできますか? countifだとA列のセルとB列のセルの値が一致してないとならないし、findだと*aaa@tokyo.co.jp* のようにセルとして指定することができないし。。 例えば以下のような表でB列においてA列のそれぞれのセルについて値が含まれているか を調べたいと思っております。 よろしくお願いします。 A列              B列 aaa@tokyo.co.jp      aaa@tokyo.co.jp; bbb@tokyo.co.jo; ccc@tokyo.co.jp         bbb@tokyo.co.jp      ddd@tokyo.co.jo; eee@tokyo.co.jp; fff@tokyo.co.jp ccc@tokyo.co.jp      ggg@tokyo.co.jp; hhh@tokyo.co.jp; iii@tokyo.co.jp ・・・             ・・・・・・・

  • 複数行あるExcelのある列の情報を統合したい

    以下のことを、Excel2010のVBAで実施したいのですが、どなたかご教示いただけないでしょうか。 これまで、VBAを自身で作成したことがなく、お手上げ状態につき、どうかよろしくお願いします。 実施したいことは、下記または添付画像のように、 「品名」(A列)、「品番」(B列)および他の列項目(###)のデータが完全一致の場合、ひとつの行に統合して、「エラー番号」(列D)のデータを列Dの中で、セミコロン区切りで結合させる、 です。 ・統合元となった行は、「エラー番号」の統合後に削除する。 ・「品名」AAAの「エラー番号」NO333のように統合後の「エラー番号」にダブリが残っても構いません。 ・件数の上限はありません(Excel2010の上限1048576まで対象行があると想定) ・他の項目(###)は複数あるのですが、「エラー番号」の列がD列という前提でお願いします。 【VB実行前】 列A 列B 列C 列D 品名 品番 ### エラー番号 AAA A123 ### NO111;NO333 BBB B123 ### CCC C123 ### NO111 AAA A123 ### NO222;NO333 CCC C123 ### NO555 AAA A12345 ### NO222 CCC C12345 ### NO111 AAA A123 ### NO999 【VB実行後】 列A 列B 列C 列D 品名 品番 ### エラー番号 AAA A123 ### NO111;NO333;NO222;NO333;NO999 BBB B123 ### CCC C123 ### NO111,NO555 AAA A12345 ### NO222 CCC C12345 ### NO111

  • Sheet2にある情報をSheet1のA1に1列で

    マクロを作りたいのですが、以下のようなものをどうすればできるかで詰まっています。 Sheet2にある情報をSheet1のA1に1列(A列B列C列の順)で並ぶようにしたいです。 Sheet2の内容は変わることがあるので、データがどの行まで入っているかはマクロを走らせるときにチェックしないとわからないかと思います。 [Sheet1] 111 222 333 aa bb aaa bbb ccc ddd eee -------------------------- [Sheet2] A B C 1 111 aa aaa 2 222 bb bbb 3 333 ccc 4 ddd 5 eee 素人な質問かもしれないですが、調べてもわからなかったので、教えていただけると幸いです。

  • エクセルの行の中で値が重複しているものを抽出したいのですが。

    基本的なことなのかもしれませんが、とても困ってまして、 教えていただけると幸いです。 以下のような表がある場合に、 3行目と4行目のように複数列で重複している行を 抽出したいのですが、どうすればよいでしょうか。 ※配列は変わらないので、横の行が全く同じもの だけを識別する必要がありまして。 A列 | B列 | C列 ---------------------- aaa |あああ |アアア ---------------------- bbb |いいい |イイイ ---------------------- ccc |ううう |ウウウ ---------------------- ccc |ううう |ウウウ ---------------------- ddd |えええ エエエ ---------------------- eee |おおお オオオ 教えていただけると助かります。 何卒、よろしくお願いいたします。

  • 条件にあてはまる場合、行挿入+値を移動させるマクロ

    Excel2003、WindowsXPを使用しています。 説明が分かり難いところがあるかもしれませんが、よろしくお願いいたします。 1.C列に値が入っていた場合、下に行を挿入。 2.挿入した行のB列に、C列に入っていた値を移動。 3.D列に値が入っていた場合、さらにその下に行を挿入。 4.挿入した行のB列に、D列に入っていた値を移動。 5.E列に値が入っていた場合、さらにその下に行を挿入。 6.挿入した行のB列に、E列に入っていた値を移動。 というように、C-E列に値が入っていた場合、下に行を挿入し、 挿入行にその値を移動させるマクロを教えてください。 (実行前)    A列     B列  C列  D列  E列   F列 ああああ  AAA  BBB  CCC  DDD  12222 うううう    EEE                   544 くくく     FFF  GGG  VVV        8 すす     TTT   BBB            4300 (実行後)  A列     B列   C列 ああああ  AAA   12222 ああああ  BBB   12222 ああああ  CCC   12222 ああああ  DDD   12222 うううう    EEE    544 くくく     FFF    8 くくく     GGG   8 くくく     VVV    8 すす     TTT    4300 すす     BBB   4300 上記実行後のように、マクロで出来たら…と思っています。 どうぞよろしくお願いいたします。

専門家に質問してみよう