• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:下記のようにExcelのSheet1にデータが入力されているとします。)

Excelシートからリストボックス作成と製品情報の表示

このQ&Aのポイント
  • ExcelのSheet1にデータが入力されているとします。そのデータを使用して、別シートにリストボックスを作成し、製品コードと価格を表示させたいです。
  • リストボックスは種別1、種別2、製品名の項目から選択できるようにします。こうすることで、簡単に希望の製品を選ぶことができます。
  • 製品コードと価格は選択した製品に応じて表示されます。これにより、製品情報をすばやく確認することができます。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

No.4・6です! 何度もごめんなさい! Sheet2のA9・B9セルの数式を書いていませんでした! A9セルは =IF(COUNTBLANK(A2:C2),"",INDEX(Sheet1!C2:C5000,MATCH(A2&B2&C2,Sheet1!L2:L5000,0))) B9セルは =IF(A9="","",VLOOKUP(A9,Sheet1!C2:E5000,3,0)) としてみてください。 どうも何度もごめんなさいね。m(__)m

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

その他の回答 (6)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.4です! 返信が遅れてごめんなさい! データ量がかなり多いということなので、もう一度考えてみました。 ↓の画像のようにSheet1に作業用の列を複数使用することになりますが・・・ 作業列F2セルに =IF(COUNTIF(A$2:A2,A2)=1,ROW(A1),"") という数式を入れ、隣のG2セルまでコピーします。 H2セルには =IF(AND(A2=Sheet2!$A$2,B2=Sheet2!$B$2),ROW(A1),"") I2セルは =IF(COUNT(F$2:F$5000)<ROW(A1),"",INDEX(A$2:A5000,SMALL(F$2:F$5000,ROW(A1)))) として隣のJ2セルまでコピー K2セルは =IF(COUNT($H$2:$H$5000)<ROW(A1),"",INDEX($D$2:$D$5000,SMALL($H$2:$H$5000,ROW(A1)))&"") 最後のL2セルには =A2&B2&D2 として、F2~L2セルを範囲指定し、L2セルのフィルハンドルでダブルクリック、又はオートフィルで下へずぃ~~~!っとコピーします。 次にSheet2にI・J・K列をリスト表示させたいので 各列「名前定義」しておきます。 当方使用のExcel2003の場合は メニュー → 挿入 → 名前 → 「作成」から範囲指定し、「上端行」で名前定義できますし、 2行目以降を範囲指定した後に直接名前ボックスに入力しても構いません。 今回は仮に I2以降を範囲指定 → 「リスト1」と名前定義 同様にJ2以降範囲指定 → 「リスト2」と名前定義 K2以降・・・ → 「リスト3」と 名前定義したとします。 Sheet2のA2セルをアクティブ → データ → 入力規則 → リスト → 元の値の欄に =リスト1 としてOK 同様にB2セル → 「リスト2」・・・とC2セルまで入力規則のリスト設定を行います。 これでA2のリストで表示したものでヒットするものがB2のリスト表示の候補になるはずです。 同様に、A2・B2で選択したものにヒットするものがC2セルのC2セルにリスト候補になり、 C2セルを選択すればその結果がSheet2のA9・B9セルに表示されると思います。 尚、当然のことながら「商品コード」に重複は無いしています。 そして、数式は5000行目まで対応できるようにしていますが、データ量によって範囲指定の領域はアレンジしてみてください。 この程度の方法しか思い浮かびませんが 他に良い方法があれば無視してくださいね。 どうも長々と失礼しました。m(__)m

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

さてでは,シート1に元のデータがあるとして。 シート1は綺麗に並べ替え済みの前提で。補助列とかは無しで。 手順: シート2のA2に 入力規則 で リスト で A,B そのA1でどれか選んでおいてから 名前の定義を開始,次を登録  名前 rngB  参照範囲 =IF(Sheet2!$A$2="","",OFFSET(Sheet1!$A:$A,MATCH(Sheet2!$A$2,Sheet1!$A:$A,NOW()*0)-1,1,COUNTIF(Sheet1!$A:$A,Sheet2!$A$2),1)) シート2のB2に 入力規則 で りすと で =rngB そのB2で何か選んでおいてから 名前の定義を開始,次を登録  名前 rngD  参照範囲 =IF(Sheet2!$B$2="","",OFFSET(rngB,MATCH(Sheet2!$B$2,rngB,NOW()*0)-1,2,COUNTIF(rngB,Sheet2!$B$2),1)) シート2のC2に 入力規則 で りすと で =rngD A7に =IF(ISERROR(MATCH(B2,rngB,0)*MATCH(C2,rngD,0)),"",OFFSET(rngD,MATCH(C2,rngD,0)-1,-1,1,1)) B7に =IF(ISERROR(MATCH(B2,rngB,0)*MATCH(C2,rngD,0)),"",OFFSET(rngD,MATCH(C2,rngD,0)-1,1,1,1)) 以上です。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 一例です。 本来であればSheet2のA2セルのリストで選択したデータに該当するものが種別2のB2セルのリスト候補に そしてB2セルのリストで選択したものがC2セルのリスト候補に選択されるのが一番良い方法なのですが、 今回の場合、A・B別の種別1でも種別2には同じデータがあるわけですよね? その場合はC2セルのリスト候補を順に絞っていく!というのは少し難しくなりますが・・・ ↓の画像のSheet1のようにリストに表示させるために少し表をアレンジしています。 そして、H1~I1セルを範囲指定し、「種別」と名前定義します。 同様にH2~H3セルを「A」と名前定義、I2~I3セルを範囲指定 → 「B」と名前定義 K2~K4セルを「あ」と名前定義、L2~L3セルを「い」と名前定義しています。 そしてF列に作業用の列を設け、F2セルに =A2&B2&D2 という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 Sheet2のA2セルには入力規則のリストから数式欄に =種別 としてOK B2セルにも同様に入力規則のリストから数式欄に =INDIRECT(A2) としてOK C2セルには =INDIRECT(B2) としてOK 本来であればA2で絞ったものがB2のリストに、B2で絞ったものがC2のリスト候補になるはずですが 今回の場合は重複している項目がありますので、元データにないものもリストで表示されると思います。 最後にA9セルは =IF(COUNTBLANK(A2:C2),"",INDEX(Sheet1!C2:C1000,MATCH(A2&B2&C2,Sheet1!F2:F1000,0))) とし、B9セルに =IF(A9="","",VLOOKUP(A9,Sheet1!C2:E1000,3,0)) という数式を入れると画像のような感じになります。 尚、数式はSheet1の1000行目まで対応できるようにしています。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

freemason5
質問者

補足

ありがとうございます。 教えて頂いた方法で作成しようとしたのですが、 実際に作成する正式データは、行数が3000行以上、種別の種類が30種類程あり、 別行作成などは非効率に感じます。。。 なにか良い方法はないでしょうか。。。。 よろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

ANo2です 訂正 製品名は =VLOOKUP(C1,Sheet1!C2:D6,2,FALSE) 価格は =VLOOKUP(C1,Sheet1!C2:D6,2,FALSE) の間違いでした

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

製品コードを一番右の列に変更してください。 製品名は =VLOOKUP(C1,Sheet1!C2:D6,2,FALSE) 製品コードは =VLOOKUP(C1,Sheet1!C2:E6,3,FALSE) で求められます。 リストは、たとえば製品名ならばa~eまでのセルを選択して 名前をつけます(たとえば製品名) 入力規則でリストを作成し元の値を =製品名 とします。

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

基本の手順は次のようです。 まずAの配下の種別2のセル3個(B2:B4)を選び,名前ボックス(数式バーの左端,通常A1などと表示が出ている所)の中に _A と記入して名前を付ける。(重要:名前のAは,実際の種別1の記載内容と全く同じにすること。その前にアンダーバーを付ける。以下同文。) B配下の種別2のB5:B6にも同様に _B と名前を付ける。 Aのあの配下の製品名のセル2個(D2:D3)に _A_あ と名前を付ける Aのいの配下の製品名のセル1個(D4)に _A_い と名前を付ける Bのあの配下の製品名のセル1個(D5)に _B_あ と名前を付ける Bのいの配下の製品名のセル1個(D6)に _B_い と名前を付ける 別シートのA2に入力規則を取り付け  種類 リスト  元の値 A,B とする 別シートのB2に入力規則を取り付け  種類 リスト  元の値 =INDIRECT("_"&A2) とする 別シートのC2に入力規則を取り付け  種類 リスト  元の値 =INDIRECT("_"&A2&"_"&B2) とする 製品コードは  =INDEX(OFFSET(INDIRECT("_"&A2&"_"&B2),0,-1),MATCH(C2,INDIRECT("_"&A2&"_"&B2),0)) 価格は  =VLOOKUP(C2,OFFSET(INDIRECT("_"&A2&"_"&B2),0,0,ROWS(INDIRECT("_"&A2&"_"&B2)),2),2,FALSE) などのようにする。(勿論,無理してVLOOKUPを使わなくても良い) まず手作りで,ここまで作って動作を確認します。 今回のご相談のスコープとして,「とりあえずこうすれば出来ます」手順をご紹介しました。 理屈をよく消化できたあと,必要に応じて名前定義の高度化について更に検討を進めてみてください。 ○元の表を,細工しやすいように作り変えるアプローチ(割と簡単?) ○元の表を維持したまま,チカラワザの数式で名前定義の範囲を計算させるアプローチ(困難) ○マクロの併用(マクロの知識があれば,まぁまぁ容易)

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

関連するQ&A

  • エクセルの入力規則について

    エクセルの入力規則についてですが、 セルA1に商品コードを入れるとセルB1に商品名が出るようにしたいと思います。 参照関数でB1に計算式を入れておけばA1に数字を入れることによりB1に商品名が出ることは分かるのですが、商品コードが分からなかった場合にA1に入力規則でリストを作成して選べばと思いますが、1列分しかデータが入らないのでコードと商品名の関連性が分かりません。 希望は、A1にリストを作成し「00001 パソコン」を選択すると「00001」だけ表示されるようにしたいと思います。 この様なことはできるのでしょうか。よろしくお願い致します。 商品コード 商品名 00001 パソコン 00002 マウス 00003 モニター

  • 【エクセル】シート1の複数セルをシート2に反映

    エクセルについて、教えて頂きたいです。 まず添付のエクセル画像を見て頂けますでしょうか。 <質問内容> まず添付画像は左側の「シート1」と、右側の「シート2」の2つから成っています。 シート1のA2セルは、ご覧の通り入力規則による「リスト」になっておりまして、 「A」「B」「C」の3つからプルダウン選択できるようになっています。 この状態でやりたいことがあるのですが、 例えばここで、 シート1のプルダウンで「B」を選択したとき、 シート2の「B」の行「B3、C3、D3セル」を自動的に参照して、 シート1の「B2、C2、D2セル」に「200 600 1,100」の数字が反映される方法を、 教えて頂けませんでしょうか。 ぜひとも宜しくお願いします(m_ _m)  ※ちなみに、シート名を「A」「B」「C」と記載してINDIRECT関数で反映させる方法は   存じておりますが、シートを1つに収めたいと思っております。

  • ExcelのマクロによるVLOOKUPの参照シートの変更について

    ExcelのマクロによるVLOOKUPの参照シートの変更について ブックAのSheet1のセルA1にドロップダウンリストを作成し、アルファベットの"J"、"M"、"A"が選択できるようにしてあります。 ブックAのSheet2のセルB1には、以下の式が入力してあり、別のブック(ブックB)から情報を読み込んでいます。 =VLOOKUP(A1,'¥¥s_g¥欠席¥[ブックB.xls]国語'!$B$4:$V$30,4,FALSE) やりたい事は↓ ブックAのSheet1のセルA1にある、ドロップダウンリストを変更すると、ブックAのSheet2のセルB1にある式(上記式)の参照シート(上記式では「国語」の部分)が変更さえるマクロを作りたいのですが、うまくできません。 ちなみに、ドロップダウンリストの"J"を選択した場合は、ブックBのシート"国語"を参照し、リストの"M"を選択した場合は、ブックBのシート"数学"を参照し、リストの"A"を選択した場合は、ブックBのシート"美術"を参照するようにしたいです。 よろしくお願いします。 また、マクロを使わずして出来るようでしたら、その方法も合わせて教えて下さい。

  • Excel シートどうしを関連させる

    A列に製品コード、B列に製品名がたてに並んでいる製品リスト(Excelのシート)があります。 別のExcelシートにコード番号を打ち込んだ際に、隣または下のセル(同セルも可)に製品名が出てくるシートを作りたいのです。どのような方法がありますか?お教えください。 【現状】コードと製品名を打ち込むために間違いが減らない。 製品コードを打つセルは最左列ではなく、シート内のあらゆる部分にあるので、VLOOKUPは使えないと思います。横24時間×縦7日間のシートがあり、製品の生産予定をたてるのに使います。 よろしくお願いします。

  • エクセルでリストに対応するデータを別シートの表

    エクセルでリストに対応するデータを別シートの表に参照したいです。 「表シート」のB2にリストを作って、 (リストは「一覧表シート」のA,B,Cが入力されているセルを参照しています。) Aを選択すると101の下の段(B11)に、 「一覧表シート」のAの列101の111が入力されるようにしたいです。 Bを選択すると222、Cを選択すると333が入力できるようにしたいです。 この「表シート」の表がややこしいのですが、 建物の部屋番号に対応しているため、3階2階1階という順になっています。 関数で対応できるものでしょうか? 分かりにくい表ですが、よろしくお願いします。

  • エクセル

    エクセルに関する質問です。 Aシート内に何個か表を作成します。 別シートBから上記シートAのセルを参照したいです。 単純にセルの参照先を固定にするのではなく、AシートとBシートで 同じ行名且つ同じ列名を持つセルを値を入れたいです。 どのような方法があるでしょうか?

  • Excel 別シートの隣を表示

    VLOOKUPを使ってもうまく表示されないので質問いたします。 シート1に A 1 空白 B1 シート2を参照したドロップリスト があります。 シート1のB1でドロップリストを選択すると、A1にシート2の左隣のセルが反映されるようにしたいのですが うまくいきません。 わかる方、教えていただけたらありがたいですm(__)m

  • エクセルで複数のシートからのデータ抽出

    いつも大変お世話になっております。 Sheet1、Sheet2に名簿1、名簿2が作成してあり、同一表中に同じ氏名や姓が同じで名前違いがあり、それぞれに同じまたは別のTELや住所等の付帯情報が入っています。 この2つのっシートから、検索シートのB2セルに姓(例えば山本)だけを入れた場合に、山本を含む氏名の人の情報をリストにしたいのです。 複数シートのCOUNTIFとVLOOKUPで出来そうな気がしたのですが思うようにいかず。 どなたかHELPお願いします。 実際には製品名(シリーズの場合枝番が付いたりつかなかったり)で保管場所、容器サイズ、その他の情報をリストにするのが目的です。 つまり同じ製品名「A123」でもサイズ違いがあったり、保管場所が違ったり・・・をリストにしたいのです。

  • エクセル:複数シートのデータを一覧シートに自動的に入力させるには?

    エクセル:複数シートのデータを一覧シートに自動的に入力させるには? こんにちは。 お恥ずかしながら一日に2回もエクセルの質問をさせて頂きます。 複数シートに同一形式のリストがあり、あるシートに入力していくと 同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照) というようにしたいと考えております。 何かよい方法はありますでしょうか? お知恵を拝借できれば幸いです。宜しくお願い致します。 Sheet1 ID 日付     名前  達成度・・・ 1 2010/10/17  山田  A 4 2010/10/30 鈴木  A ・ ・ ・ Sheet2 ID 日付    名前  達成度・・・ 2 2010/10/17  佐藤  B 3 2010/10/20 中村  B ・ ・ ・ 一覧シート ID 日付    名前  達成度・・・ 1 2010/10/17  山田  A 2 2010/10/18  佐藤  B 3 2010/10/20 中村  B 4 2010/10/30 鈴木  A ・ ・

  • Excelのシート間の参照

    エクセル初心者です。 エクセルでシートが2枚あるものを作成しました。 一枚目のシートのA1のセルの内容(言葉)を 二枚目のシートのB3のセルの内容に参照させたいと思い B3を選択し、セルのなかに =を入力して 一枚目のシートのセルA1をクリックしようと思ってもクリックができません。 二枚目のシートのセルB3を同じ二枚目のシートのB10にあてようとして =を入力してB10をクリックすると参照ができます。 =B10 セル内は↑のようになります。 どうしてできないのでしょうか? 困っています.教えてください。

専門家に質問してみよう