- ベストアンサー
EXELで複数のセルに一致したものを探す方法とは?
- EXEL初心者の方によくある質問ですが、複数のセルに一致したものを探す方法が知りたいとのことです。
- 具体的な例として、表1と表2のような2つの表がある場合、商品CD、型番、JANのすべてのセルが一致する商品の販売数を表1側の販売数に反映させたい場合、どのような関数を使えば良いのか分からないとのことです。
- 一つのセルの一致であればVLOOKUP関数を使えますが、複数のセルの一致が必要な場合はどのようにすれば良いのか、詳しい方に教えていただきたいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
販売数の集計でなら、SUMIFS関数が有ります。 =SUMIFS(集計列,条件列1,条件1,,条件列2,条件2,条件列3,条件3) VLOOKUP関数にこだわる場合は、[商品CD、型番、JAN]の3列を繋げた列を作れば可能です。 表1(全在庫データ)の販売数の前に列を挿入して =A2&B2&C2 のようにして =VLOOPUP(A2&B2&C2,表1!D:E,2,FALSE)
その他の回答 (4)
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、表1(全在庫データ)の表の中で「仕入CD」という項目名が入力されているセルがSheet1のA1セルであり、表2(販売実績データ)の表の中で「仕入CD」という項目名が入力されているセルがSheet2のA1セルであるものとします。 その場合、Sheet1のD2セル(全在庫データの表の中で「販売数」のデータを表示させたい最初のセル)に次の関数を入力してから、Sheet1のD2セルをコピーして、Sheet1のD3以下に貼り付けて下さい。 =IF(OR($A2="",$B2="",$C2=""),"",SUMIFS(SUMIFS(Sheet2!$D:$D,Sheet2!$A:$A,$A2,Sheet2!$B:$B,$B2,Sheet2!$C:$C,$C2))
- imogasi
- ベストアンサー率27% (4737/17069)
>一致したものを探したいです この質問を考えるときに、過程を分析すると「探す」という思考も入るのですが、この課題は「集計する」パターンです。関数では探すというプロセスは表面に出しません。それも「条件(この場合は複数項目)が付いて」いて、表2の行の1つのデータを条件に使って、「条件付き加算・集計」の問題です。集計は「販売数」について行うのでしょう。 この辺の質問書き方から、初心者であることがわかります。 こういうデータのことを考える場合は、データが「ユニーク」かどうかを考えることが大切です。1つの仕入CDで複数の行が出てこないのが「ユニーク」です。 質問の場合は、表1で仕入CD+型番でユニークなのかもしれない。または 仕入CD+型番+JANでユニークなのかもしれません。業界やあなたの会社の知識がないとこの点はわかりません。 ーー エクセル関数では 端的には=SUMIFS(・・)関数を使うのです。この時エクセル・バージョンを質問に書いてないと困ります。SUMIFS関数は2007に新設されたからです。 まだ2003以前の使用者も質問していますから。 この辺の質問書き方からも、初心者であることがわかります。 ーー JANは仕入CD+型番の範囲で1対1ではないのですか? 1対1なら条件は、仕入CD、型番の2つであり、そうでないなら、仕入CD、型番、JANの3つになります ーー SUMIF関数は、Googleで「SUMIFS」関数で照会すればたくさん出てきます。 http://www.excel-list.com/sumifs.html など多数出ます。 >VLOOKUPでいけますが複数セルだとどうしたら この関数は同条件でたくさんあるデータ(多数行に現れる場合)「最初に現れた行」のものしか検出しないのですよ。また集計する機能もありませんから覚えておいて。 MATCH関数も同じです。エクセルの関数は「複数の}答え(行)を原理的に返さないのです。答えを出すセルには1つの値しか入れられないのです。(学が進むと?のケースも 出てくる。配列数式など) 調べて理解して、自分の場合どうなるかやってみてください。 答えをここへ書くのは、しません。誰も言ってくれないだろう、考え方を言っておきます。
お礼
ご回答ありがとうございます。 私には難しくておっしゃっていることがいまいち理解できませんでした。 今後勉強していきたいと思います。
- dogs_cats
- ベストアンサー率38% (278/717)
- angel2015
- ベストアンサー率21% (126/590)
IF関数で複数条件を設定して全て一致するときだけ動作するように記述すると良いです
お礼
ご回答ありがとうございます。 IF関数でいろいろ試してみましたが思うように動かせませんでした。 知識不足ですみません。今後勉強していきたいと思います。
お礼
私程度の知識ですと3つの列をつなげてVLOOKUPを使うやり方がものすごく分かりやすくて現実的に感じました。感激です。どうもありがとうございました。