• ベストアンサー

エクセル初心者です。関数を教えてください

例 商品名 入数 ケース数 みかん 50   30 みかん 40   25 りんご 25   35 のシートがあります。 別シート 商品名 入数 ケース数 みかん みかん りんご にVLOOKUPを使い 商品名からケース数を当てるときに みかんは入数で2種類あるのに上の50入の分しか出てきません 2つとも出すにはどうしたらいいでしょうか? わかりづらくてすみません。よろしくお願いします

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

  • ベストアンサー
回答No.3

商品名の並びは違うのでしょうか? 上の表の商品名がまとまっているという条件の下       A       B     C 1    商品名    入数    ケース数 2    みかん    50    30 3    みかん    40    25 4    りんご    25    35 5             6             7    商品名    入数    ケース数 8    みかん    50    30 9    りんご    25    35 10    みかん    40    25 B8セルに =INDEX(B$2:B$4,MATCH($A8,$A$2:$A$4,0)+COUNTIF($A$8:$A8,$A8)-1) 右へ下へオートフィル

ksqsn37
質問者

お礼

商品名の並びは揃ってます 見たことない関数で呆然としている状態ですが、今晩格闘してみます。ありがとうございました

その他の回答 (7)

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

エクセルの検索に使える関数VLOOKUP類、MATCHぐらいしかなく、 どちらも検索表で出てくる最初の行・列位置のものしか見つけません。これは常識です。コンピュターは区別が出来ないと、2つあるうちの1つを決められません。ですからみかん1、みかん2と区別して 入力するのも1つの手です。 それで毎日のようにある、エクセルの抜き出し問題にも苦労するわけです。 私はVLOOKUP関数において、見つかった何番目を出せという引数を持つ関数をMS社が作ってくれたら、非常に助かるのに、と夢想しています。 だからみかんを選んだら、50か40を選択させるような仕掛けを考えるほか無い。しかしこれは初心者には難しい。 例えば多段式入力規則やVBAを使わないと出来ないでしょう。 質問者が望むような順番にひいて来るようなのは、全く同じ順序同数なら、たやすいが、ソウでないと出来ません。 エクセルの初心者であるために、エクセルの特徴というか、限界がわかって無いので、説明に苦労するが、私にとってこんな質問が出ることが驚きです。

ksqsn37
質問者

お礼

質問の内容も稚拙でわかりにくいものでした。確かにエクセルの限界わかってないです。ありがとうございました。

回答No.7

>商品名の並びは揃ってます って同じ表を作るのでしょうか? コピーして形式を選択して貼り付け [リンク貼り付け] なのかなあ

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 #1さんのご指摘が正しいと思います。 確かに、みかんの商品名が何個があって、入数の違うものは出せますが、   みかん 50   みかん 40  ←入数 が40であるという根拠は成り立ちません。   りんご つまり、入数を指定するなりしないと、無理だと思います。二種類あったら、片方が50で、他が40という根拠が成り立つのでしょうか。ひとつしか商品名を書かないとしたら、そのどちらかわかりません。 少なくとも、VLOOK で呼び出ししているわけでしょうから、それを SUMIF を使うというのでは、任意性が失われて、個数を出すならともかく、「ケース数」を出す数式として成り立つとは思えません。 >実際には元のシートは膨大なデータをマスターから落とすので商品名を変えることは出来ないです。 たとえば、こういうことだと思います。 常識的に、入数はわかっているものだとします。入数まで出せというなら、フィルタオプションを使う方法もありますが、基本的にはマクロを応用していくしかないと思います。 入数がわかっているものとして進めるなら、商品名と入数を入れていただくようになります。 F    G    H みかん  50   (数式) みかん  40 りんご   H1 の数式 =IF(COUNTIF($A$1:$A$3,F1)=1,VLOOKUP(F1,$A$1:$C$3,3,),SUMPRODUCT(($A$1:$A$3=F1)*($B$1:$B$3=G1)*$C$1:$C$3)) F列の商品名が、リストの中に一つしかない場合は、VLOOKUPで呼び出し、そうでなければ、G列に入数を入れてもらう、という数式です。

ksqsn37
質問者

お礼

昨日格闘してwendy02さんとCoalTarのご回答を参考にかなり近いところまでもっていけましたが、完全に望むものはできませんでした。みかん1 みかん2を作るしかないと思います。ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.5

具体的に何を集計したいのでしょうか? >別シート >商品名 入数 ケース数 >みかん   >みかん >りんご にそれぞれの入数とケース数が表示できたとして元シートと同じですが。 別シート 商品名 入数 ケース数 みかん 「みかん」とセルに入れると 入数が元データにある種類分だけ表示される。 更に、「みかん」と「50」の条件であう行のケース数の合計が表示される。 勝手な想像ですが、すでに箱の大きさに種類があって  A      B     C      D 商品名 個入箱 ケース数 商品総数 みかん  20       30       40       50 と準備して、A2セルに集計したい商品名を入れる(仮にみかんです) C2セルに =SUMPRODUCT((A$2=元シート!A$2:A$10)*(B2=元シート!B$2:B$10)*元シート!C$2:C$10) といれて下までコピィしておきます。 A1セルに みかんといれれば、それぞれの箱の種類に対する箱の数の合計がでます。 D列には =B2*C2 といれて 最後に =SUM(D2*D10) でみかんの総数になります。 質問を勘違いしていればスルーしてください。

noname#94613
noname#94613
回答No.4

補足として、実際の数量を求めるには、 入数とケース数ですから、下記のようにする必要があります! SUMIF(商品名の列,"みかん",入数の列)*SUMIF(商品名の列,"みかん",ケース数の列)

noname#94613
noname#94613
回答No.2

この場合、「みかん」がKEY(キー)ですから、 LOOKUPでは、同じKEYは複数、扱えません! どちらを抽出すれば良いか、困りますから! 複数扱う場合には「SUMIF」が良いです! SUMIF(商品名,"みかん",合計)

ksqsn37
質問者

お礼

すみません、基本が全然理解できてないので何がなんだか・・・状態ですが、今晩格闘してみます。ありがとうございました

  • q_ta
  • ベストアンサー率28% (11/39)
回答No.1

たとえば みかん1 みかん2 というようにしないと出せないと思いますが...

ksqsn37
質問者

補足

ありがとうございます。実際には元のシートは膨大なデータをマスターから落とすので商品名を変えることは出来ないです。

関連するQ&A