• ベストアンサー
  • 困ってます

Excel シート間のデータ抽出と置き換え

AとBのシートを比較して、 Aと同じ単語のあるセルがBにもあった場合には、 該当単語のある行から、特定セルの内容を、 Bのシートの該当行(同単語のある行)の特定場所にコピーする。 説明がヘタですみません。 例を挙げますと、 <Aのシート> A1:あ B1:Goo A2:い B2:Yahoo A3:う B3:Google <Bのシート> A1:あ B1:データなし A2:か B2:データなし A3:さ B3:データなし この様な場合、 AシートA1のデータ"あ"は、BシートのA1にもありますので、 その場合には、B1データの"Goo"を BシートのB1にコピーし <Bのシート> A1:あ B1:Goo A2:か B2:データなし A3:さ B3:データなし と、なるようすることを関数だけで行うことは可能なのでしょうか。 自分なりに色々調べてみたのですが、該当例を探すことができませんでした。 ご存知の方がいらっしゃいましたらご教授ください。 補足説明といたしまして、 データは全て文字です。 B1のシート内で検索データが重複することはありません。 検索語(検索対象語)の文字列にスペース(半角・全角共)含まれていた場合 そのスペースは検索対象から除外(無視)して認識する。 検索語は複数あります。 できれば、一括で行いたいのですが、それですとVBAでないと無理でしょうか。 宜しくお願いいたします。 教えてGooさんの枠を超えた質問であれば申し訳ありません。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1182
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.2
  • keithin
  • ベストアンサー率66% (5278/7939)

ごく一般には Sheet1のA,B列に元データがあるときに Sheet2のA列にデータを記入 その隣の B1セル: Excel2007以降を使っているなら =IFERROR(VLOOKUP(TRIM(A1),Sheet1!A:B,2,FALSE),"") そうでないなら =IF(A1="","",IF(COUNTIF(Sheet1!A:A,TRIM(A1)),VLOOKUP(TRIM(A1),Sheet1!A:B,2,FALSE),"")) のように記入して、以下コピーして埋めておいて結果を表示させます。 #補足 シート1には事前に「余計なスペースとかは除去した状態」でデータを整備しておきます。 それをこれからやらなきゃならないという意味での補足説明でしたら、シート1でctrl+Hで置換のダイアログを出して スペース を 何も記入しない にすべて置換して、スペースを除去しておきます。 #参考 いわずもがなですが、関数で「ほかのセルに結果を表示させる」といった事はエクセルにはできません。 関数を事前にセルに埋めて置く事もしたくないのでしたら、あきらめてマクロを使うほかありませんが、通常は上述のようにふつーに関数を使います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

keithin様 ベストなご回答ありがとうございました。 お蔭様で、自分の望む結果を取得することができました。 こんなに早く解決できると思っていませんでした。 大感謝です! 素晴しい回答者様に出会えた事を幸運に思います。

関連するQ&A

  • エクセルシートの票データの置き換えについて、

    エクセルのシートに (A1)から(D50)まで一覧表があり、それぞれ200個のセルに文字が入力されています。 これを別のシートに縦一列に並び替えたいのですが、 A1=(A1) A2=(B1) A3=(C1) A4=(D1) A5=(A2) A6=(B2) A7=(C2) A8=(D2) A9=(A3) A10=(B3)  ・  ・  ・ A199=(C50) A200=(D50) 出来れば簡易言語で、それで無理ならマクロでも結構です。 よろしくお願いします。

  • excelでデータを別シートに引っ張ってきたい

    excelで値を検索し、返す時、返す値の横にあるデータを違うシートのセルの下に一緒に引っ張ってきたいときの関数(方法)を教えてください。 素人なので分かりにくいと思いますが、お知恵をお借りしたいと思います。 あるデータのシートの検索値を別シートに持ってきたいのですが、シート1をシート2のようにしたいのです。 /は空白 例)シート1 /A B C D E 1(1) □ ○ ▽ ◎ 2 (2) ▼ ■ ◇ ◎ シート2 / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 分かりにくいかもしれませんが、 シート1の(1)(A1)を検索すると、シート2(B1)に□(これはVLOOKで引っ張ってこれるのはわかります。) 次にシート1の(C1)○をシート2の(B2)へ持ってきたいのです。シート1(D1)(E1)はシート2の(C2)(D2)へ。 しかもシート1のC列は空白セルもあり、シート1のC列が空白の場合、下にずれることなくシート1の(D1)(E1)はシート2の(C1)(D1)へ。下記<図a>のようになるようにしたいのです。 そして、シート2のA列に検索値として入力する(1)や(2)の値は連番ではなく、(2)の次に(5)に飛んだりします。(2)の行のC列にデータがあっても、(5)のC列にデータはないこともあります。<図b> <図a> /A B C D 1 (1) □ ▽ ◎ 2 (2) ▼ ◇ ◎ <図b> / A B C D 1 (1) □ 2 /○ ▽ ◎ 3 (2) ▼ 4 /■ ◇ ◎ 5 (5) □ ▽ ◎ 6 (7) ▼ ◇ ◎ vlookとかCLUMN関数とか考えてはみたのですが、どうもうまくいきません。 毎回作成するデータなのですが、毎回コピペで作成しています。 とても面倒なので(1)を検索したらデータが一瞬で検索できるようにしたいと試みてはみたものの、私の知識では不可能でした。 関数では無理なのでしょうか。。。 関数はあまり詳しくないので分かりやすい方法があれば、教えていただければ助かります。 関数に詳しい方、よろしくおねがいいいたします。 関数にはこだわっていません。違う方法があればそれも含めておねがいいたします。

  • エクセル複数条件一致の数式

    質問失礼します。 下記のエクセルデータから、E列のセルに、条件にあわせて5か6、もしくは空白を表示させる数式を作りたいと考えています。 条件として セルE2に5を表示さる場合 D2がa4の時、A列から、同じa4を検索し、この場合は、行10と行11が該当します。 その該当する行から、 セルD2の文字列a4がある行のA列のセル、この場合は、セルA2のa1 と文字列が一致するセルB11の11行目が選択され、その行にあるC列の数字を、E2セルに表示させたいです。 E列に入れる数式は作ることが可能でしょうか? 色々試してみましたが、どうしてもうまくできませんでした。 よろしくお願いします。   A  B  C   D    E 1        2 a1  a2   5    a4   5 3 a1  a3       a3   6 4 a1  a1       5 a2  a3   5    a1   5 6 a2  a1       7 a3  a1   6    a2   5 8 a3  a1       a4   6 9 a3  a4   5    a2   5 10 a4  a3   6    a3   5 11 a4  a1   5    a2

その他の回答 (1)

  • 回答No.1

vlookup関数ですね。 BシートのB列(B1~B3)に以下のように書きます。 =VLOOKUP(A1,A!A:B,2,FALSE) ←B1セルに書く内容 =VLOOKUP(A2,A!A:B,2,FALSE) ←B2セルに書く内容 =VLOOKUP(A3,A!A:B,2,FALSE) ←B3セルに書く内容 ただ、これでは一致しない場合に「#N/A」と出てしまうので ちょっと長いですが、以下のようにすると回避できます。 =IF(ISERROR(VLOOKUP(A1,A!A:B,2,FALSE)),"",(VLOOKUP(A1,A!A:B,2,FALSE))) =IF(ISERROR(VLOOKUP(A2,A!A:B,2,FALSE)),"",(VLOOKUP(A2,A!A:B,2,FALSE))) =IF(ISERROR(VLOOKUP(A3,A!A:B,2,FALSE)),"",(VLOOKUP(A3,A!A:B,2,FALSE)))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早速のご回答ありがとうございました。 私の説明が悪かったと思いますが、 シート2のB列にデータが取得できませんでした。 然しながら、私の為に時間を割いていただことにお礼申し上げます。

関連するQ&A

  • 行データを増やす方法

    例えば、 A1, A2, A3 .....に 1,2,3,4,5,6 等(実際は小数点を含む実数)の実数が入っています。 これを B1, B2, B3 ....に 1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,3,3, のように特定の数(今回は10個)だけ、行のデータを増やしたいです。 B1-B10にA1が入り、B11-20にA2が入る感じです。 どのような方法があるか教えて頂ければ幸いです。

  • EXCELで別シートから値の一致しないデータを抽出する方法

    Sheet1のA列に A1 123 A2 456 A3 789 のデータが入力されており、Sheet2のB列に B1 666 B2 123 B3 888 B4 999 B5 456 B6 888 のデータが入力されている場合に、 下の表のように、Sheet1のA4以降のセルにSheet2のB列から ・Sheet1のA1~A3に一致しないデータ ・Sheet2のB列で重複しないデータ ・降順 の3点の条件で抽出する方法を関数で教えてください。 よろしくお願いします。 Sheet1 A1 123 A2 456 A3 789 A4 999 <-ここからSheer2のデータでA1~A3以外の値でSheet2の重複をさけて降順で表示させたい A5 888 A6 666

  • Excel 他シートのデータを抽出

    お世話になっております。 さっそく質問失礼いたします。 全売上が記載されたシートのデータを抽出し、営業担当者名で割り振られた各シートに該当するデータを抽出する方法を教えてください。 具体的には下記のようなものを作成したく思います。 シート1(月度売上表) 日付 担当 商品 台数 1日 田中  A1  1台 1日 山田  B1  2台 1日 佐藤  B1  5台 2日 田中  B1  3台 2日 佐藤  A1  2台 2日 佐藤  B1  4台 シート2(田中) 日付 担当 商品 台数 1日 田中  A1  1台 2日 田中  B1  3台 シート3(佐藤) 日付 担当 商品 台数 1日 佐藤  B1  5台 2日 佐藤  A1  2台 2日 佐藤  B1  4台 以下続く 以上のような表を一覧として作成したいと思っております。 シート1に内容が記載されたら自動的にリンクされるようにしたいので、ご質問いたしました。 よろしくおねがいいたします。

  • エクセル等でのデータ抽出

     こんばんは、愚生は、エクセルデータベースの全くの初心者でございます。以下の質問をさせていただきたく、ブログをたてたせてもらいました。 以下のようなA列に日付;B列に地名;C列に数値が載せたtableがございます。(行数は総計約5000程度まで続きます) A1: 2009/10/3, B1: 東京; C1: 12000 A2: 2009/10/3, B2: 大阪; C2: 10000 A3: 2009/10/3, B3: 名古屋; C3: 7000 A4: 2009/10/3, B4: 京都; C4: 3000 A5: 2009/10/3, B5: 金沢; C5: 500 A6: 2009/10/3, B6: 神戸; C6: 4000 A7: 2009/10/5, B7: 大阪; C7: 7000 A8: 2009/10/5, B8: 東京; C8: 8000 A9: 2009/10/5, B9: 京都; C9: 5000 A10: 2009/10/5, B10: 横浜 C10; 4000  A11: 2009/10/6, B11: 東京; C11: 9000 A12: 2009/10/6, B12: 大阪; C12: 7000 A13: 2009/10/6, B13: 名古屋; C13; 8000 A14: 2009/10/6, B14: 京都; C14: 4000 A15: 2009/10/6, B10: 横浜; C15: 5000 2009/10/3には計6個のデータがあります 2009/10/3には計4個のデータがあります 2009/10/6には計5個のデータがあります →   「各日にちごとに、C列の値が大きい順にベスト3ずつを選び、表示させたい訳でございます。」 A1: 2009/10/3, B1: 東京; C1: 12000 A2: 2009/10/3, B2: 大阪; C2: 10000 A3: 2009/10/3, B3: 名古屋; C3: 7000 」 A4: 2009/10/5, B6: 東京; C6: 8000 A5: 2009/10/5, B7: 大阪; C7: 7000 A6: 2009/10/5, B8: 京都; C8: 5000 」 A7: 2009/10/6, B9: 東京; C9: 9000 A8: 2009/10/6, B10: 名古屋 C10; 8000 A9: 2009/10/6, B11: 大阪; C11: 7000 」  もし、mysql (SQL server)等のデータベストソフトが必要な場合も、対処させていただきます。  それでは、よろしくお願い申し上げます。

  • 条件に一致する行データを別シートに抽出する

    日付別の各データが入力された総括のシートがあり「0」とします。 別に13個の項目別シートを固定の様式で作ってあります。「1~13」とします。 シート「0」のB2~B30までセル上に入力するデータが1~13の整数として入力する訳ですが、その入力されたデータセルの中で該当する数字を条件として抽出し目的のシートの決められた座標から順に行を開けずに表示したいのです。 例えばシート「0」のB列に6という数字が入力されていたら同じ行A、C、Dのデータを全てシート「6」のA、B、Cに表示させたいのです。 同じように他の数字も該当するシートに該当する数字の全てを表示したいのです できるだけ判り易く教えてくださいお願いします。

  • エクセルで同じシート内でデーター検索方法

    エクセルで同じシート内でデーター検索方法 A1のセルからA1、A2、A3・・・と縦にに100以上のデータがあります。 B1にも同様にデーターがあります。 ある文字列の組み合わせが重複しているもののみを検索したいです。 検索結果として一番望ましいのは、別のセルに抽出ですが、対象となったセルに色づけでも良いです。 文字で表すのは難しいので、添付画像のようにしたいです。 説明下手でわかり難いかもしれませんがすみません。 Excel2000です WinXP HomeedtionSP3

  • エクセルのデータ整理方法について

    マクロではなく、関数等でのやり方を教えて下さい。 今、以下のようなフォーマットで大量のデータがあります。 A1:名前   B2:クラス A2:○○君  B2:1組 A3:△△君  B3:2組 A4:■■さん B4:1組 A5:□□君  B5:3組 これを A1:1組   B1:2組   C1:3組 A2:○○君  B1:△△君  C2:□□君 A3:■■さん のように、クラス別で並べ替えたいと思っています。A2とA3の間に空白のセルができないように整理をしたいのですが、よい方法を教えて下さい。

  • エクセルでシート名を自動入力したい。

    いつもお世話になります。 エクセルのシート名の入力について質問です。 「A1」に「あああ」と入力したらシート1の 名前が「あああ」となるようにしたい。 さらに「B1」に「いいい」と入力したらシート2の 名前が「いいい」となるようにしたい。 この質問が↓近いのですが、A1のみ? http://oshiete1.goo.ne.jp/qa2025849.html A1、B1、C1・・・・もしくは、A1、A2、A3・・・と 行で続いても列で続いてもいいのですが・・・ 更にもう一つ質問がございます。 別のシートに連番を割り振ることは、可能でしょうか? 例えばシート1~シート20まで有るとします。 シート1のセルA5に「101」と数字を入力し シート2のセルA5には「102」、シート3のセルA5には「103」と 連番を一挙にコピーできますでしょうか? どうぞ宜しくお願い致します。

  • エクセルで複数シートの同位置にあるデータを別のシートに書き込む方法

    いつもお世話になります。 エクセルファイルの中に約100シートあるのですが、新しいシートを用意して、100シートの中にある特定の位置のデータをそこに書き連ねていくことは出来ますでしょうか。ちなみにシートの名前は数値ではなく、地名を書き入れているので法則性はありません。 具体的な形としては、シート”大阪”、”堺”、”和泉”・・・とあって、各セルのA1、B2、C3のセルのデータが欲しかったとすれば、 地名,数値1,数値2,数値3 大阪,A1,B2,C3 堺,A1,B2,C3 和泉,A1,B2,C3 ・・・ という表を作りたいのです。 どうか宜しくお願い致します。

  • book1シート1のデータを別bookシートに移す

    a1シート1のデータ1,2(データ1.5列G行&#65374;18列G行,&#65374;9000個、データ2.25列G行&#65374;38列G行,&#65374;9000個)を b1シート1,c1シート1に移行したいのですが、 a1シート1のデータは、9000個と9000個とします。 b1シート1,c1シート1は、16000個前後をできれば最大にしたいと考えています。 このとき移行したいb1シート1(5列G行&#65374;18列G行,&#65374;16000個)は最終行からでてしまいます。 でてしまう分をc1シート1(5列G行&#65374;18列G行,&#65374;2000個)に書き移したいと思っています。 分かりやすくと思い9000個と書きましたが、データにより数は、異なっています。 このとき、データ1とデータ2の連結は、空白行なしです。 b1シート,c1シートは、a1シートとは、別bookです。 こんなときのマクロを教えていただければと思い質問しました。 マクロ記録でしましたが、うまくできませんでした。 コードを教えていただけませんか。 よろしくお願いします。 m2010です。