エクセルでのセル比較による情報表示方法について

このQ&Aのポイント
  • エクセルでシートを2つ使用し、sheet1のA列とsheet2のA列を比べ同じ単語が記載されていた場合に、sheet2の同行B列のセルの内容をsheet1のB列に表示させる方法について教えてください。
  • 具体的な例として、sheet1が商品一覧シート、sheet2が仕入れ先一覧シートとします。sheet1のA列(商品名)とsheet2のA列(仕入れ先名)を比較し、同じ単語があればsheet1のB列にsheet2の同行B列の内容を表示します。
  • 例えば、sheet1のA列5行目に「黄色いたんぽぽ」と記載があり、sheet2のA列8行目に「たんぽぽ仕入れ先」と記載がある場合、sheet1のB列5行目には「蒲公英株式会社」という内容が表示されます。
回答を見る
  • ベストアンサー

AとBに同じ文字があった場合Cを読み込む

質問です。 エクセルでシートを2つ使用し、 sheet1のA列とsheet2のA列を比べ同じ単語が記載されていた場合に、 sheet2の同行B列のセルの内容をsheet1のB列に表示させたい場合は sheet1のB列にどのような関数式を入力すればいいでしょうか。 例として、sheet1が商品一覧シート sheet2が仕入れ先一覧シートで sheet1 A列5行目には 黄色いたんぽぽ と記載があり([]も含む) sheet2 A列8行目には たんぽぽ仕入れ先 と記載のあるセルがあって、 sheet1 B列5行目に、sheet2 B列8行目に記載のある「蒲公英株式会社」を表示させたい 上記の場合ですと、たんぽぽ という単語だけを認識させたいのです。 ただし、単語に関してはある言葉(この場合はたんぽぽ)を指定せずに、sheetA列x行目(比較したい単語の記載のある行)とsheet2A列全体を比べて 同じ単語があれば上記のように表示させる という内容ができればと思っています。 セル内が一致した場合のものや単語を比較して○×を付けるという質問はあったのですが、セル内の一部が一致した場合というものが見つかりませんでした。 わかりづらく式も載せる事ができずすみませんが、詳しい方がいらっしゃいましたらご教授ください。

noname#203110
noname#203110

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

  • ベストアンサー
  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

面倒でも比較する単語の一覧を作成しましょう。 一文字ずつ文字を切り出し意味のない文字列で比較すると   「これから先生きのこるには」 と   「毒きのこを食べないように」 または   「校長先生の訓示」 が一致すると解釈されかねません。 それを避けるには単語を指定する必要がありますよね。 面倒でしょうが、人が目で見て判断するときと同じ過程を踏んで処理をする事を考えましょう。 質問の例では「たんぽぽ」という単語を質問者さんが知っているのですから、 パソコンにもその単語を教えてあげることが必要です。 比較する一覧を作ったら その一覧にある単語の何番目が含まれるかを検査し 2つのセルに共通する単語が含まれているか確認すれば良いでしょう。

noname#203110
質問者

お礼

やはり比較対象の一覧を作成しなければいけないのですね。 量が多いのでなるべく簡略化したかったのですが、今後の為に作成しようと思います。 ご回答ありがとうございました。

関連するQ&A

  • AのセルとB行を比較して、一致したらCの内容を別セルに表示

    複雑で申し訳ありません。 AのセルとB行を比較して、一致したらCを表示したいのです。 まずAセルとB行の比較ですが、できれば、前から3~4文字程度一致 したらOKとしたいのです。 一致した場合、B行とは横並びのC行から文字を取り出し、別のセルに表示。 つまりAとB行を比較してB3が一致した場合、C3の内容を表示…… このような関数、もしくはマクロを構築できるでしょうか? 非常に困っております。お手数ですがお知恵をお貸し下さい。 よろしくお願いします。

  • 条件付き書式 A1,B1,C1の何れかのセルに「B」があったらA1,B1,C1セルを塗りつぶす。

    Excel2007です。 条件付き書式について教えてください。 画像をご覧ください A1,B1,C1の何れかのセルに「B」があったらA1,B1,C1セルすべてを塗りつぶしたいのですが 「次の数式を満たす場合に値に書式設定」に =OR(A1="B",B1="B",C1="B") と入力し、書式を塗りつぶしにすると 画像のように行1は、A1:B1、行2はA1、行4は、A1:A3と 「B」のある列までしか塗りつぶされません。 行4のように「B」のある行の3列をすべて塗りつぶすには どういう式を設定したらいいのか教えてください。

  • A列とB列の合計を行ごとにC列に表示させたい

    お早うございます。エクセルのセルの計算で教えてほしいのですが、A列とB列の合計を行ごとにC列に表示させたいのです。例えばA1のセルに“1", B1のセルに“2"と入れます。それで、C1のセルに“=A1+B1"と入力します。そうするとC1のセルは“3”と表示されますよね。そこで同じように違った数字の合計を100行ほどそれぞれC列に表示させたいのです。セルごとではなく縦全部列ごとでもかまいません。宜しくお願いします。

  • excelVBA でA+B列をファイル書き出し

    excel2003の VBA で、開いているシートのA列(項目行)とB列(データ)を抜粋してB列の1行目のセルに入力されているデータをファイル名として新しいEXCELファイル(B列の1行目のセルに入力されているデータ.xls)として書き出したいのです。また、B列以降も、A列+C列で1ファイル、A列+D列で1ファイル・・・のように列にデータが記載されているまでファイルとして書き出したいのです。 このような書き出しVBAを教えて下さい。宜しくお願いします。

  • 文字列の中に特定の文字を含む場合に値を…

    こんにちは。 Excelの関数の使い方で、以下のようなことをしたいのですが、教えていただけますでしょうか。 Sheet1には、長い文字列が表示されている(仮に、A1)→任意 Sheet2には、↑の長い文字列に含まれそうな短い文字列が記載(A)されていて、且つそのとなりには動作が記載されている(B)→双方固定 この状態で、"Sheet2の文字列がSheet1の長い文字列に含まれる場合"にはSheet2のB列の動作が表示されるようにしたい。 例: Sheet1のA1:aaaabbbbccccddddeeeeffffggggdoghhhiiiijjjjkkkk Sheet2のA1:dog Sheet2のA2:cat Sheet2のB1:ワン Sheet2のB2:ニャー の状態で、関数を介して、任意のセルに、"ワン"と自動で表示させたい。 Sheet1のA1にcatという文字列が含まれていれば、"ニャー"と表示させたい。 分かりにくくて申し訳ないですが、よろしくお願い致します。

  • A列にあってB列にはない単語をC列に残したいです。

    エクセルで、「A列とB列にそれぞれ単語がたくさん入力されています。A列にはあるが、B列にはない単語を抽出して、C列に残す」ということをやりたいのですが、どなたか関数を教えていただけないでしょうか? すみませんが、エクセルの関数を教えていただけないでしょうか。 単語のリストが2つあります。 A列に、片方のリストを入れ、B列にもう片方のリストを入力してあります。 ■やりたいこと 1: 2つのリストには重複している単語があるため、重複している単語は削除して、A列だけに存在する単語をC列に入れたいと思っています。 ■やりたいこと 2: 最終的には、C列には、空のセルを作らず、上のほうの行に詰めた形に整えたいと思っております。 以上の2つについて、どちらかだけでもやり方を教えていただければ、大変助かります。 どうぞよろしくお願いします。

  • 日付と時刻を比較して一致した行を抜き出す。

    【Sheet1】             【Sheet2】     A        B        A         B 1 2008/1/2   00:00      1 2008/1/1   22:00 2 2008/1/2   01:00      2 2008/1/1   23:00 3 2008/1/2   02:00      3 2008/1/2   00:00 4 2008/1/2   02:00      4 2008/1/2   01:00 【Sheet1】のA行セルと【Sheet2】のA行セルの文字列を比較し、 一致しない場合は【Sheet2】のセルを一つずらしA3【一致】するセルと比較するまで ループを続ける。 ※ 上記例の場合だと日付一致は【Sheet1】A1 ⇔ 【Sheet2】A3 一致した時点で一致した【Sheet1】のAセルの隣B列と比較して、 【Sheet1】の日付、時刻が一致した列を検出する。 ※ 最終的に条件が一致して抜き出すのは 結果 : 【Sheet1】のA1行 そんなマクロを作っているのですが、 何かもっと簡潔に作れるやり方ってありますでしょうか? ヒントだけでもいいのでご教授していただけたら幸いです・・。 わかりにくくてすいません; ----------------------------------------------------------------------------------------------------- Dim Com As Integer Dim Com2 As Integer Dim Storage As String Dim i As Long ' Month関数を使う Do Until Month(Cells(i, 1).Value) = 11 For Com = 1 To 100 'Com = 日付 ' 【Sheet1】の指定されたAセルが【Sheet2】の指定されたAセルが一致しているかどうか If CDate(Worksheets(Sheet1).Range("A" & Com)) = CDate(Worksheets(Sheet2).Range("A" & Com)) Then ' 一致すれば【Sheet1】のAセルの文字列をStorage変数に格納 Storage = ActiveCell.Value Else ' Falseの場合、1行改行する ActiveCell.Offset(1, 0).Select End If Next Loop ----------------------------------------------------------------------------------------------------

  • 複数セルから特定の文字を検索して、その対象セルを抽出したい

    エクセルで関数、VBAを使用して、下記のようなDATA抽出を行ないたいのですが、どなたか、ご指導いただけないでしょうか。 たとえば、2種のシートが、各々、 <シート1>   列A   列B 行1 A1 ABCD-123 行2 B23 EFGH-456 行3 C456 あいうえお <シート2> 列A 列B 列C  列D  列E 行1 A1 A2 A3 行2 B23 C5 A4 行3 A5 B2 C456 ・・・・・・・となっている場合、 <シート2> の列D  行1 へ "A1"と入力(記載)がある場合、列Eに   ”ABCD-123”と表示(抽出)を行ないたい。 セルには、文字、数字、記号が入ります。 よろしくお願い致します。

  • Excel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

    Excel2000です。 Sheet1のA列・B列・C列・・・にデータが入っています。 Sheet2のA列・B列・C列・・・にデータが入っています。 Sheet1のA列とSheet2のA列は、似たようなデータが入っています。 Sheet1のB列とSheet2のB列も、同様です。 C列以降のデータは、シート間で全然関係ありません。 Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、 を知るには、どうすればよいですか。 C列以降の列のデータは、比較する際に使いません。 つまり、 Sheet1のA = Sheet2のA かつ Sheet1のB = Sheet2のB であるような行を知りたいのですが、 どうすればよいのでしょうか。

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

    複数の条件に一致したセルの内容によって、別のセルに別の文字を自動で表示したいのですが可能でしょうか? 詳細はこのような形で、 【シート1】       A     B       C 1      0001     3/1    有 2      0002     3/1    無 3      0001     3/2    不明 【シート2】       A     B       C 1             3/1      3/2 2      0001       ○      △ 3      0002       ×     "空欄" ・シート2のB2からC3を自動で表示できるようにしたい。 ・シート1のA列とシート2のA列が一致、更にシート1のB列とシート2の1行が一致。 ・シート1のC列が「有」の場合「○」、「無」の場合「×」、「不明」の場合、「△」、「空欄」の場合、「"空欄"」と表示。 知りうる限りの関数を合わせてみましたが、できませんでした。 どなたかいい方法を教えて頂ければと思います。 環境はXPpro、エクセル2000です。 宜しくお願いします。

専門家に質問してみよう