• ベストアンサー

エクセルの関数について教えてください

お忙しいとは思いますが、エクセルについて教えてください。 ※詳しい内容は添付資料をご確認ください。 商品コード等が記載されているエクセルデータ(1)があります。 別なデータで商品コードと商品名等が記載されているエクセルデータ(2) があります。 それぞれのデータを商品コードで照らし合わせ、合致したデータについては、(1)に項目(商品名)を増やしたいのですが、関数などを作る技術を持ち合わしておりません。 商品コード同士をキーにして検索し、合致したものを増やした行に表示する関数を教えてください。 よろしくお願い申し上げます。

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

  • ベストアンサー
  • 135ok
  • ベストアンサー率34% (26/75)
回答No.2

一例です。 添付資料を参照ください。 まず、追加データの範囲を選択し、名前ボックスで名前(表1)をつけます。 この作業は特に必要としませんが、追加データの表を数回使うため、何度も範囲指定をすることが面倒なので名前をつけて作業を行っています。 B3 =IF(COUNTIF(表1,$A3),VLOOKUP($A3,表1,COLUMN(A1)+1,0),"")    *表示させたい範囲にコピー(B、C列)    *COUNTIF(表1,$A3)で、表1にデータがあるか調べる。     有る場合、表1から値を表示、以外は空欄。

funa2362
質問者

お礼

ありがとうございます、大変参考になりました。 さっそく利用させて頂きました。 本当にありがとうございます。

その他の回答 (4)

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

こんばんは! 色々方法はあるかと思います。 すでに回答は出ていますし、他の方と重複すると思いますので 参考程度で目を通してみてください。 ↓の画像のようにSheet1に2列(JAN・商品名の列)を挿入し、 Sheet1のB2セルに =IF($A2="","",IF(COUNTIF(Sheet2!$A$2:$A$1000,$A2),VLOOKUP($A2,Sheet2!$A$2:$C$1000,COLUMN(B1),0),"")) という数式を入れ、オートフィルでC2セルまでコピーします。 最後にB2・C2セルを範囲指定し、C2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 数式は1000行まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 尚、当然のことですが、商品コードに重複はないものとします。 以上、参考になれば幸いです。m(__)m

funa2362
質問者

お礼

ありがとうございます。 大変参考になりました。 次点と致しましたが、良回答とは投稿順にさせて頂きました。 本当にありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

VLOOKUP関数のそのものの使い方で出来る課題でしょう。 易しい例と違う点は Sheet2側で関数を入れれる。易しい普通の例は同一シートに検索表がある。 Sheet1を検索する。 検索するシートSheet1における検索範囲は、関数を入れるSheet2から見て、他シートになり、Sheet1!$A$1:$C$1000のような書き方で参照する。 Sheet1から持ってくる項目は 商品分類   価格  メーカー の3項目なので、VLOOKUP関数の第3引数を、それぞれの列で 2,3,4と入れれば良い。 それら3列はSheet2での列挿入で対処すれば良い。 Sheet1に存在しない場合は、ISERROR関数で検出し、空白を返す。 ーー WEBで「エクセル VLOOKUP」「VLOOKUP ISERROR」で照会すれば沢山記事がある。 VLOOKUP関数をもし知らないなら、エクセルの経験不足と思う。

funa2362
質問者

お礼

確かに経験不足です・・・これを機会にもっと勉強します。

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

シート1にエクセルデータ(1)があるとします。 A1セルに「商品コード」B1セルに「商品分類」C1セルに「価格」D1セルに「メーカ」と項目名があり、2行目以降にデータが入力されているとします。 B列を選択して右クリックし「挿入」の操作を2回行います。これで2つの列が挿入され商品分類などはD列に移りますね。 シート2にはA1セルのに「商品コード」B1セルに「JANコード」、C1セルに「商品名」があり、データが2行目以降に入力されているとします。 この状態でシート1に戻って、B1セルには「JANコード」、C1セルには「商品名」と項目名を入力します。 B2セルには次の式を入力し、C2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR($A2="",COUNTIF(Sheet2!$A:$A,$A2)=0),"",INDEX(Sheet2!$A:$C,MATCH($A2,Sheet2!$A:$A,0),COLUMN(B1))) これでB列とC列にはお望みのデータが表示されるようになります。

funa2362
質問者

お礼

ありがとうございます。 大変参考になりました。

  • yone_sk
  • ベストアンサー率34% (58/167)
回答No.1

VLOOKUP関数があります。 データの持ち方を詳しく書いていただければ、サンプルコードもかけるのですが・・・。 こちらを参考にしてください。 http://allabout.co.jp/gm/gc/3143/

funa2362
質問者

お礼

ありがとうございます。 もっと詳しく質問できればよかったのですが・・・。

funa2362
質問者

補足

早速の回答ありがとうございます。 データの持ち方につきましては、添付資料を・・・と作ったのですが、 UPの方法が分からず・・・書き出します。 (1)元のデータ(エクセルデータです)  商品コード  商品分類   価格  メーカー  12345678 チョコレート  132円   森永  45678901 チョコレート  142円   明治  12347656 チョコレート  148円   ロッテ (2)追加のデータ(別シートのエクセルデータ)  商品コード  JANコード    商品名    12345678 9423788778 milk  12345699 9423781221  いちごみるく  12345678 3211223311  のりしお味 この(1)のデータに対して(2)のデータにJANコードと商品名の 項目を追加したいのですが・・・。(キーは商品コード) (1)と(2)を検索し、商品コードで一致したものはJANと商品名を追加 商品コード  JAN   商品名 商品分類   価格  メーカー 12345678 9423788778  milk チョコレート  132円   森永 45678901               チョコレート  142円   明治 12347656              チョコレート  148円   ロッテ 関数を作る技術がありません、よろしくお願いいたします。  

関連するQ&A