Excelで他シートと文字比較後のリスト表示方法

このQ&Aのポイント
  • Excelで他のシートと文字の比較後、一致したコース名のリストを表示する方法を教えてください。
  • 具体的には、Sheet1の「分類」とSheet2の「分類」が等しい場合、Sheet1の「コース名」にSheet2で一致したコース名のリストを表示したいです。
  • エクセルの関数だけで解決する方法があれば教えてください。もしくは、マクロを使って解決する方法でも構いません。
回答を見る
  • ベストアンサー

Excel>他シートと文字比較後のリスト表示方法?

始めて投稿します。 エクセルで以下のことを実施したいのですがどうしても できずに詰まっています。 知恵をいただけないでしょうか。 ------------------------------------------------ ※イメージ画像を添付しています。 「Sheet1の分類」の値と、「Sheet2の分類」の値が等しかった場合、 Sheet1の「コース名」箇所に、Sheet2で一致した分類の隣セルにある コース名のリストを表示したいのです。 その方法を教えていただけないでしょうか。 【Sheet1】    A    B      1 分類  コース名    2 1.A          ←BセルにSheet2と一致したコース名のリストを表示させたい 3 1.A 4 2.B 5  : 【Sheet2】     A     B     C 1 コード   分類    コース名 2  A     1.A     あ 3  B     1.A     い 4  C     1.A     う 5  D     2.B     か 6  E     2.B     き 7  :      :      : 出来たら、エクセルの関数だけでどうにかなるといいなと思っていますが、 マクロを使って解決するならばそれでも構わないと思っています。 アドバイスをいただけないでしょうか。 以上、よろしくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

少し面倒な操作になりますね。 シート2での表をそのまま使うことはできませんので作業に必要な表をシート2の中に作ります。 以下はシート2での操作になります。 D2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,ROUNDDOWN(MAX(D$1:D1),-2)+100,MAX(D$1:D1)+1)) E1セルには次の式を入力して右横方向にオートフィルドラッグします。 =IF(COLUMN(A1)>INT(MAX($D:$D)/100),"",INDEX($B:$B,MATCH(COLUMN(A1)*100,$D:$D,0))) E3セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(E$1="",ISERROR(INDEX($C:$C,MATCH(INDEX($D:$D,MATCH(E$1,$B:$B,0))+ROW(A1)-1,$D:$D,0)))),"",INDEX($C:$C,MATCH(INDEX($D:$D,MATCH(E$1,$B:$B,0))+ROW(A1)-1,$D:$D,0))) 次にE1セルから例えばE10までのセルを選択します。 「数式」タブの「名前の定義」をクリックします。 表示な画面で「名前」の窓には_1.AとE1セルと同じ文字の頭に _ を入れた文字を入力します。画面下の「参照範囲」には=Sheet2!$E$1:$E$13と表示されていますが、それを=Sheet2!$E$2:$E$10に改めてOKします。 同様の操作をF,G,H・・・列について行いそれぞれの列について1行目のセルの名称を名前として登録します。 これでシート2での作業は終了します。 次にシート1に戻ってB2セルから下方を範囲として選択します。 「データ」タブの「データの入力規則」をクリックします。 入力値の種類を「リスト」にしてから元の値の窓には次の式を入力してOKします。 =INDIRECT("_"&A2) これでB2セルから下方のセルではA列のデータに即したプルダウンリストが表示されるようになります。 操作は面倒ですが頑張ってください。

3108756
質問者

お礼

朝早くからありがとうございました。 処理の仕方もよくわかり、やりたいことができました!

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート2には同じ分類でもコース名がいくつかありますね。 どのように対応したらよいのでしょうか?

3108756
質問者

補足

ありがとうございます。 シート1とシート2で同じ分類であれば、 シート2のコース名をシート1のBセルにリストとして 表示させたいです。 例えば、 シート1で、分類が「1.A」だった場合、シート1のコース名セルには、 シート2の「あ」「い」「う」というリストで表示させて選べるように したいのです。 よろしくお願いいたします。

関連するQ&A

  • エクセルで他のシートを動的に参照するには

    エクセルに関する質問です。 他のシートのセルを参照する場合、たとえば、 =Sheet1!D5 というように入力すると思います。 質問は、このシート名とセル名に、他のセルの値を使用したいのですが、方法はあるのでしょうか? できれば、VBAを使わずに。。。 質問が分かりづらいと思いますので、具体的に説明すると、A1にシート名("Sheet1")が、B1にセル名("D5")が入っている場合に、C1にその値(=Sheet1!D5)が表示されるようにしたいのですが、方法はあるでしょうか?

  • EXCELでシート名を他のシートにあるリストから取得するには?

    sheet(1)には、名称のリスト(A(a)・B(b)・C(c)・・・)があり、sheet(2)には、アンケート用紙があります。 このsheet(2)をsheet(1)にある名称リストの分だけ、コピーし、コピーされたsheet(3)以降のシート名称をsheet(1)にある名称から順に取得して(コピーされたシート名称をA・B・C・・・と名付け)、さらに、 名付けられたシート上のある、一つのセルの値をsheet(1)のリスト(a・b・c・・・)を参照するものとしたいのですが、マクロをくめないでいます。 VAB初心者には難しいでしょうか。以下のように組んでみましたが・・・ Sub Macro1() Dim i As Long For i = 2 To 20 Sheet(2).Copy After:=Sheet(i) Range("F:L").Select ActiveCellR1C1 = "=Sheet(1)!R[i]C[-4]" Sheets(1).Range(Cells(i,"B").Value.Select Selection.Copy Sheets(i).Range("F1:L1").Paste Sheets(i).Name = Sheet(1).Cells(i, "A") Next i End Sub

  • エクセルで他のシートの値が反映されず、式が表示されてしまいます。

    エクセルで他のシートの値が反映されず、式が表示されてしまいます。 例えば、「Sheet2」の「C3」セルに「=sheet1!A1」と入力しておき、通常ならSheet1のA1セルに値を入力した場合、Sheet2のC3セルの値もA1セルと同じ値が表示されると思いますが、Sheet2のC3セルの表示が「=sheet1!A1」のままです。 何か設定を変更しなければならないのでしょうか? 因みに、同じファイルの他のシートは問題なく他のシートで入力した値を反映してます。値がうまく表示されないシートは別のファイルからコピーしてきたシートです。

  • リストの比較をしたい(エクセル)

    Aという企業リストがエクセルで作成されているとします。今回新たにBという企業リスト(エクセル)をゲットしました。でもダブリが結構ありそうです。2つのリストを「企業名」の比較によりチェックしたいのですが、そのダブリをチェックするよい方法はないでしょうか。 ちなみにAは1000件くらい、Bは10000件くらいあるのでとても人間の目では作業できるものではありません。 またやっかいなのは、同じ企業でもAリストとBリストでは書き方が違うので「完全一致」の条件ではひっかからないのです(例えばAでは「○○○設計」、Bでは「○○○建築設計事務所」などどいったふうです。ほんの一例ですが…) 一応マクロはそこそこ作れるのですが、どういうアルゴリズムで処理すればよいのかよい案が浮かびません。どなたかヒントを下さい。お願いします。

  • Excelで、シート2の値をシート1のリストに表示することは可能でしょうか?

    Excelで(シート1の)セルに入力する値をリストで表示したいのですが、そのリストに載せる候補を別シート(シート2など)から呼び出すことはできるのでしょうか? 具体的には別シートに商品名が記された表を作って、その表には随時商品名を追加できるようにしてあります。 商品が追加された際には、リストの候補にもその新しい商品名が追加されるといったようなつくりにしたいのですが、それをプログラムで作ることは可能でしょうか? もしくは商品を入力するセルに商品名を入力した際に、別シートにある表にその商品名が掲載されていない場合、その入力をはじくといったプログラムを作ることは可能なのでしょうか? 質問の仕方に至らない点があるかとも思いますが、わかる方がいらっしゃれば是非お願いします。

  • エクセルのリストを他シートで使いたい

    下記、悩んでいます。 どなたか、ご回答お願いします。 シート1で入力されたB列の中に弊社が入っており、 弊社直下順位が対象となるリストをシート2で選択項目としたいのです。 ・シート1 (入力シート、形式変更出来ません) A2~A30セル 「順位」 B2~B30セル 「社名」 B2セルは固定で、他社は不定ですし、順位は常に変動します。 例)弊社順位が2位で、3位が5社だった場合。 A2=2 B2=「弊社」 A4.A7.A14.A15.A28=3 A4=「A社」 A7=「B社」 A14=「C社」 A15=「D社」 A28=「E社」 この様に入力されている状態で3位のリストを作りたいのですが・・・ まったくもって分かりません。 ご教授、お願い致します。

  • プルダウンリストをシートにおこす マクロ??

    お世話になります。 セルB4にプルダウンで"氏名"をリスト選択するようにしています。 そのプルダウンのリスト ひとりひとり(Aさん・Bさん・Cさん・・・)を シートA、シートB、シートC・・・とコピーするマクロを組みたいのですがどのようにすればよういでしょうか。 宜しくお願い致します。

  • 二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセル

    二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセルの値を 別のシートに設定するには、どうしたらいいでしょうか? [シート1] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? 02|A2 yyy 03|B1 ??? 04|C1 sss [シート2] --|A---B---C---D---E --+---+---+---+---+--- 01|A1 aaa 02|A3 bbb 03|B0 xxx 04|B1 ccc 05|C1 sss シート1 [Aのセル]とシート2の[Aのセル] を比較し、同じ値だった場合に、 シート2の [B] の値を シート1の[C]に設定するための関数はどのようにしたら良いでしょうか? 最終的に、シート1が --|A---B---C---D---E --+---+---+---+---+--- 01|A1 ??? aaa 02|A2 yyy 03|B1 ??? ccc 04|C1 sss sss となります。 Excelの関数あマクロは、どうしても分からなく質問させてもらいました。 申し訳ありませんが、ご教授宜しくお願い致します。

  • エクセルでの関数を使った条件抽出方法について

    エクセル初心者です。 エクセルでの関数を使った条件抽出方法についてどなたかご教授願います。 よろしくお願いします。 Sheet1の特定のセルに対して、Sheet2中にある条件に一致するセルの値を 表示させる方法がわかりません。 <具体的内容> 次のような2つのシートがあります。 Sheet1       -------------------------     A     B     C  1                2  2  費目1 3  費目2 4  費目3 ------------------------- Sheet2 -------------------------     A     B     C     D 1  2          1     2     3 3  費目2   100   200   300 4  費目1    30    10    20 5  費目3   150   350   250 ------------------------- Sheet1のC1のセルと同じ数値をSheet2の2:2行から探して、 一致する数値に該当する列の3~4行目の値を、 Sheet1のA2:A3の費目とSheet2のA3:A5の費目とが 一致するようにして、Sheet1のB2:B3に表示したいです。 このときSheet1のB2~B3にはどのような関数式を入れたらよいですか? 上の場合だと、Sheet1のB2=10、B3=200、B4=350となってほしいです。 HLOOKUP、COLUMNなど組み合わせてみたのですが、 全くうまくいきません。簡単ではないのでしょうか? どなたか教えてください、よろしくお願いします。

  • Excelでセル文字列に応じて他シートからコピペ

    Excelで、 シート1には「ある値の羅列」 シート2には「特定の値についての詳細説明が複数セルにわたって記載されている」 という構成になっているとき、 シート1のセル内の部分的な値と一致する、シート2の特定のセル (詳細説明の中で必要なセルのみ)をシート1の値の横のセルから右方向に コピーアンドペーストしたいと考えています。 具体的には シート1の、A列のセル内に以下のように「:」で区切った情報の羅列が数千行分 入力されています。     A                  B 1 商品名:リンゴ:渋谷店:在庫有り  (空白セル) 2 商品名:みかん:新宿店:在庫無し  (空白セル) 3 商品名:メロン:池袋店:在庫有り  (空白セル)    ・    ・ シート2には      A     B     C     D     E      1 イチゴ      赤   甘酸っぱい  春     高価   ・・・ 2 みかん      橙   甘酸っぱい  冬     安価   ・・・ 3 リンゴ      赤    甘い    冬     普通   ・・・ 4 メロン      緑    甘い    夏     高価   ・・・ 5 バナナ      黄色   甘い    ?     普通    ・    ・    ・ という風に、ある値に対する詳細説明が列方向に記載されています このとき、シート1のA1のある値(リンゴ、みかん 等)に対応した シート2の説明行のうち、ある一定の部分(D列より右がわ)を、 シート1のB列より右に一括でコピーアンドペーストできないでしょうか? 出来上がりの希望は以下の通りです。     A                  B      C   ・・・ 1 商品名:リンゴ:渋谷店:在庫有り     冬     普通  ・・・ 2 商品名:みかん:新宿店:在庫無し     冬     安価  ・・・ 3 商品名:メロン:池袋店:在庫有り     夏     高価  ・・・    ・    ・    ・ 従来ははいちいちシート1のA列の値をコピーし、シート2で検索、 該当する情報をドラッグしてコピー、シート1の戻ってB列にペースト、 という作業を行っていました。 しかし今回、シート1の内容が数千行もあるため、できればマクロや関数でなんとかできれば、 と思っています。 この作業の自動化に付き、ご存知の方、お教えいただきたくお願いいたします。

専門家に質問してみよう