エクセル表で重複するデータの抽出について

このQ&Aのポイント
  • エクセル表で料理の材料を一覧表示させる方法がわかりません。
  • 重複する材料を別のセルに抽出し、それに対応する金額を表示したいです。
  • 料理の種類は130あり、1つの料理には最大18種類の材料があります。
回答を見る
  • ベストアンサー

エクセル表で重複するデータ(文字列)の抽出について

このサイトで検索してもわからなかったので教えてください。 料理とその料理に使用する材料がわかる表を作成しました。 各々の料理に入っている材料は別シートにデータをいれてあり、セルから料理を選べば材料が一覧で出てくるようになっています。 この場合、料理を2種選択した時に重複する材料を別のセルに抽出したいのです。 そしてその材料の金額をまた別のシートのデータから持ってきたいと思っています。        重複する材料   その材料の金額 1 ジャガイモ        200           ←この重複する材料の真下のセル(今はジャガイモ 2 小麦粉          150            というデータが入っているセル)にいれる関数 3 エビ            300            がわかりません。 4 5 6 7 8 9 ここからまた別の表で 10 料理名A    料理名B    料理名C      料理名D 11 カレー     オムライス    ピザ        お好み焼き  12 ジャガイモ   卵         小麦粉      小麦粉  13 人参       ひき肉      チーズ      豚肉 14           白米        ジャガイモ   エビ 料理名の真下のセルからプルダウンで料理名を選べば11行目~に材料が出るようにはしてあります。(そこまでの関数はわかりました。) 上記の例の場合、4種の料理で重複する材料は ジャガイモ 小麦粉 エビ なのですが、 それを2行目~に表示できるようにしたいのです。 その表示が出来れば、別のシートに作成した、材料⇔金額一覧からその重複材料の金額を表示できるようにしたいです。(VLOOKUPという関数で出来ますよね?) 材料は1料理当たり最大18種類です。 料理の種類は130あります。 わかりにくい質問になってしまい申し訳ありません。 どなたかご教授宜しくお願いいたします。 15                      エビ 

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

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

No.2です。 補足に >私のシート2は例えば A1 カレー ジャガイモ ニンジン エビ A2 お好み焼き ブタニク エビ 小麦 粉 A3 オムライス タマゴ ハクマイ タマ ネギ ・ シート3は ジャガイモ 100 エビ 300 コムギコ 200 となっているというコトは↓の画像のようになっていると解釈です。 (万一Sheet2のA列の1セルだけに複数の食材が入力されている場合はかなり厄介になります) ただ、これだと最初の質問にアップされている画像の配置とは違ってしまいますね! まぁ~!それはさておいて・・・ Sheet3のC1セルに =IF(COUNTIF(Sheet2!B:Z,A1)>1,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 そしてSheet1のA2セルに =IF(COUNT(Sheet3!C:C)<ROW(A1),"",INDEX(Sheet3!A:A,SMALL(Sheet3!C:C,ROW(A1)))) B2セルに =IF(A2="","",VLOOKUP(A2,Sheet3!A:B,2,0)) という数式を入れそれぞれオートフィルで下へコピーすると 画像のような感じになります。 ※ 細かい配置は実状に合わせてみてください。 尚、一つ気になったのですがこの場合使用食材が複数ある場合だけの金額になりますが、 単品の場合の金額は不要なのでしょうかね?m(_ _)m

ildfae
質問者

お礼

ありがとうございます☆ 図付きで初心者の私でもとてもわかりやすかったのでベストアンサーに選ばせていただきました。 教えていただいた通りにすると出来ました! 今回のことでエクセルの面白さがわかった気がします。 本当にありがとうございました☆ ちなみに単品の場合の金額は不要なんです(笑)

その他の回答 (4)

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

回答3の場合で重複する材料がA1セルから下方に表示されますのでB列に金額を表示させるのでしたら、シート3のA列に材料名、B列に金額があるとしたらシート1のB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",VLOOKUP(A1,Sheet3!A:B,2,FALSE))

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

回答No2さんの方法は優れた方法でしょう。しかし価格表にデータが無い時点では重複する材料に表示されませんね。 操作は多少複雑になりますが次のようにする方法もあります。 A10セルからD10セルまでに料理Aから料理Dまでの記載が有るとしてそれらの材料についてはお示しの表では11行目から下方になっていますが2行間に挿入をして13行目から下方に入力されているとします。 11行目と12行目は作業列とします。 A11セルには次の式を入力して例えばF11セルまで横にドラッグコピーします。 =IF(A$10="","",COUNTIF(A$13:A$50,"*?")) A12セルには次の式を入力してF12セルまで横にドラッグコピーします。 =IF(COLUMN(A1)=1,A11,IF(A11="","",OFFSET(A12,,-1)+A11)) これらのデータをもとにG13セルから下方に材料の一覧を表示させることにします。 G13セルには次の式を入力して下方にドラッグコピーします。 =IF(OR(A$12="",ROW(A1)>MAX(A$12:F$12)),"",IF(ROW(A1)<=A$12,INDEX(A$13:A$50,ROW(A1)),INDEX(A$13:F$50,ROW(A1)-INDEX(A$12:F$12,MATCH(ROW(A1)-0.5,A$12:F$12,1)),MATCH(ROW(A1)-0.5,A$12:F$12,1)+1))) H13セルには次の式を入力して下方にドラッグコピーします。 =IF(G13="","",IF(AND(COUNTIF(G$13:G$200,G13)>1,COUNTIF(G$13:G13,G13)=1),MAX(H$12:H12)+1,"")) その後に例えばA1セルに次の式を入力して下方にドラッグコピーすれば重複材料のみがリストアップされます。 =IF(ROW(A1)>MAX(H$13:H$200),"",INDEX(G$13:G$200,MATCH(ROW(A1),H$13:H$200,0)))

ildfae
質問者

お礼

回答ありがとうございます。 回答いただいた通りに入力したらできました!!! 私には式が長くて意味が理解できませんでしたが(笑) すごいです☆ 本当にありがとうございました。

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

こんにちは! 材料の使用量に関しては無視してよい訳ですよね? >セルから料理を選べば材料が一覧で出てくるようになっています。 とありますので、その表に↓の画像(右側がSheet2)のように価格も一緒の表にします。 >料理名の真下のセルからプルダウンで料理名を選べば11行目~に材料が出るようにはしてあります。(そこまでの関数はわかりました。) というコトで左側のSheetの10行目以降は表示できているとします。 やり方だけ! Sheet2に作業用の列を設けます。 作業列C2セルに =IF(COUNTIF(Sheet1!$A$12:$D$100,A2)>1,ROW(),"") という数式を入れオートフィルで下へコピー! Sheet1のA2セルに =IF(COUNT(Sheet2!C:C)<ROW(A1),"",INDEX(Sheet2!A:A,SMALL(Sheet2!C:C,ROW(A1)))) B2セルに =IF(A2="","",VLOOKUP(A2,Sheet2!A:B,2,0)) という数式を入れそれぞれをオートフィルで下へコピーすると 画像のような感じになります。m(_ _)m

ildfae
質問者

補足

2013/4/6(土) 17:23 回答ありがとうございます。 少しわからなかったので教えていただきたいの ですが >セルから料理を選べば材料が一覧で出てくる ようになっています。 とありますので、その表に↓の画像(右側が Sheet2)のように価格も一緒の表にします。 の部分ですが、 私のシート2は例えば A1 カレー ジャガイモ ニンジン エビ A2 お好み焼き ブタニク エビ 小麦 粉 A3 オムライス タマゴ ハクマイ タマ ネギ ・ ・ ・ ・ シート3は ジャガイモ 100 エビ 300 コムギコ 200 ・ ・ ・ という風になっています このばあい、シート3の金額の右側に教えてい ただいた作業列を作成すればいいのでしょう か? お忙しい中何度も申し訳ありませんが、よろし くお願いいたします

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

材料⇔金額一覧では、その材料の量によって、その材料の金額が変わってくるように思うのですが、エクセルの挿入から、ピボットテーブルをクリックして、ピボットテーブルを作ってみてください。

ildfae
質問者

お礼

とても早い回答ありがとうございました。 ピボットテーブルとうもの初めて知りました。 今後使用してみようと思います。 本当にありがとうございました。

ildfae
質問者

補足

早速のお返事ありがとうございます。 私の説明不足で申し訳ございません。 材料は単価がわかればいいのです。 引き続きよろしくお願いいたします。

関連するQ&A

  • エクセル 重複文字列の色分け抽出

    エクセル2003において、1行内に重複した文字列に対して色を付ける。これは条件付書式で「数式で」COUNTIF関数選択範囲>1 書式「セルを赤パターンで塗りつぶす」 はできるのですが、その重複する文字列が直接入力のものではなく、別シートからのIF関数を利用しての抽出なのです。なのでセル自体には既に数式が入っている状態です。この状態で上記のことをすると、すべてのセルが赤く染まってしまうのですが、何とか回避できるでしょうか?抽出された「文字列」にではなく、既に入っている「数式」に反応しているようなのですが…。 具体的に言うと、各支店の出勤状況をまとめた出勤予定表がシートごと(sheet2~sheet15)にあります。その各シートから1日に出勤するスタッフ、2日に出勤するスタッフの名前が全スタッフ出勤状況表(sheet1)にピックアップされるように作られています。しかし、別店舗で同じ人間を出勤させている場合があり、そのスタッフを赤色に塗りたいのです。 ご教授宜しくお願いいたします。

  • エクセルでの列と列の比較、重複データ個数抽出

    すいません。どなたか教えてください。 今、エクセル2003を使用しているのですが、ある条件でデータの個数が抽出出来ません。 お知恵をお貸しください。   A列 B列 1 あ   あ 2 い   う 3 う    い 4 え    5 お   か A列とB列を比べると、「あ、い、う」の3つのデータが重複しています。 そこで、一つのセルで3個とい値を返したいです。 条件として、 ・計算用のシートや別セルを使わずに、例えば、C1などの1つのセルの中で関数を使用して個数を出したいです。 ・できたらマクロも使用しないでやりたいです。 ・数字ではなく、文字列の比較で、空白行もあります。 やはり、列同士の比較は一つのセルの中でやることは不可能なのでしょうか? どなたかよろしくお願いいたします。

  • エクセルの重複データ抽出

    初めてのご質問です。2つの名簿をエクセルにシート別にまとめてありますが、氏名が重複しているものを別シートに抽出したいと思います。フィルタオプションでトライしたのですが、1つだけのセルに重複していない氏名が記載されたり・・と苦戦しております。何か良い方法があれば、非常に助かります・・。

  • エクセル 重複データの抽出

    エクセルを使って重複データをチェックしようと思っていCOUNTIFで試したのですがうまくいきません・・・ご存知の方教えてください。m(__)m   A     B       C         D       E     F   店番  顧客番号  氏名(カナ)   電話番号   住所1   住所2 という表の電話番号が重複する先を抽出したいのです。データ件数は約3000件ほどあります。できれば重複したデータは別のシートに店番順に表示をしたいのですが関数でできるのでしょうか?

  • 重複するデータの抽出

    どなたか教えてください。 Sheet1A列に入力されたデータ群と重複するデータを 別sheetから抽出したいのですがやり方がわかりません。 要は、Sheet1A列に10000件のデータが入力されているのですが、それらと重複するデータを別シートから検索したいです。(別シートで10000回検索しない方法が知りたいです。) よろしくお願いします。

  • 【Excel】重複データ抽出

    ブック内のシート別(月別)に月利用者のリストがあるのですが重複利用者を新規シートに抽出したいのです。 例えば、Aさんは4月、5月、6月利用でBさんは4月、6月利用の様に利用者別に利用頻度を確認したいのですが。 利用者リストはA列にあり、例えば10名利用があるとするとセル番地はA1~A10利用者のデータがあります。 利用者数は月によって異なります。当方、関数は少しかじった程度なので関数使用の場合は計算式をご提示頂くと助かります。 バージョンは2010です。 宜しくお願いします。

  • ◆◆急募◆◆ エクセル 重複するデータの抽出について

    データの入力された2枚のA、Bシートが同じブックにあります。 <Aシート> D2~D500まで顧客番号が入力されています。 <Bシート> C2~C600まで顧客番号が入力されています。 AシートとBシートの顧客番号はいくつか重複しています。 その重複している番号をBシートのどこかのセルに”重複”と表示したいのですが、その方法が分かりません。最終的にオートフィルタで重複と重複していないものを分けたいのです。 大至急教えてください!宜しくお願いします。

  • エクセルで重複したデータをひとつにまとめる。

    オフィス2010を使用して、エクセルデータの作成をしています。 Sheet1のA列に氏名、B列に金額が入力しています。 A列の氏名には同じ人が重複している場合もあれば 一度だけしか氏名が出てこないひともいます。 B列の金額はバラバラです。 山田 200 池野 300 一条 200 尾本 500 宝田 600 池野 600 吉川 200 増田 800 山田 600 A列の名前で重複しているものについては合計たした数字を、 重複していないものに関しては そのままの数字を求めたいのですが 関数を使用して可能でしょうか? 出来れば別のSheet2でその表を作成したいのですが まったくわかりません。 詳しいかたがいましたら 教えてください。

  • excel、重複があるかを調べたい

    関数初心者です。質問させて下さい。 excelでsheet1のAセルに文字列を入力しました。 このsheet1内はsortしフィルターをかけたので重複はありません。 1000行程の語句ですが、このsheet1内の語句を別sheetや別のexcelファイルで重複がないかを 調べたいのですが、良い方法が分かりません。 教えていただけますでしょうか。 宜しくお願いします。

  • excelでのデータの抽出

    excelの関数について質問です。 まず、以下のような元となるデータ(文字列)があると仮定します。 (上から順番に) 1 1 2 5 5 5 3 3 3 このデータから、重複するものを除いて 1 2 5 3 のように別のシートに抽出したいと思っていますが、どのような関数を使用すればよいのか分かりません。 なお、元になるデータの個数は約6000件です。