- ベストアンサー
エクセル初心者です。関数を教えてください
例 商品名 入数 ケース数 みかん 50 30 みかん 40 25 りんご 25 35 のシートがあります。 別シート 商品名 入数 ケース数 みかん みかん りんご にVLOOKUPを使い 商品名からケース数を当てるときに みかんは入数で2種類あるのに上の50入の分しか出てきません 2つとも出すにはどうしたらいいでしょうか? わかりづらくてすみません。よろしくお願いします
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
商品名の並びは違うのでしょうか? 上の表の商品名がまとまっているという条件の下 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) 右へ下へオートフィル
その他の回答 (7)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルの検索に使える関数VLOOKUP類、MATCHぐらいしかなく、 どちらも検索表で出てくる最初の行・列位置のものしか見つけません。これは常識です。コンピュターは区別が出来ないと、2つあるうちの1つを決められません。ですからみかん1、みかん2と区別して 入力するのも1つの手です。 それで毎日のようにある、エクセルの抜き出し問題にも苦労するわけです。 私はVLOOKUP関数において、見つかった何番目を出せという引数を持つ関数をMS社が作ってくれたら、非常に助かるのに、と夢想しています。 だからみかんを選んだら、50か40を選択させるような仕掛けを考えるほか無い。しかしこれは初心者には難しい。 例えば多段式入力規則やVBAを使わないと出来ないでしょう。 質問者が望むような順番にひいて来るようなのは、全く同じ順序同数なら、たやすいが、ソウでないと出来ません。 エクセルの初心者であるために、エクセルの特徴というか、限界がわかって無いので、説明に苦労するが、私にとってこんな質問が出ることが驚きです。
お礼
質問の内容も稚拙でわかりにくいものでした。確かにエクセルの限界わかってないです。ありがとうございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
>商品名の並びは揃ってます って同じ表を作るのでしょうか? コピーして形式を選択して貼り付け [リンク貼り付け] なのかなあ
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 #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列に入数を入れてもらう、という数式です。
お礼
昨日格闘してwendy02さんとCoalTarのご回答を参考にかなり近いところまでもっていけましたが、完全に望むものはできませんでした。みかん1 みかん2を作るしかないと思います。ありがとうございました。
- hallo-2007
- ベストアンサー率41% (888/2115)
具体的に何を集計したいのでしょうか? >別シート >商品名 入数 ケース数 >みかん >みかん >りんご にそれぞれの入数とケース数が表示できたとして元シートと同じですが。 別シート 商品名 入数 ケース数 みかん 「みかん」とセルに入れると 入数が元データにある種類分だけ表示される。 更に、「みかん」と「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) でみかんの総数になります。 質問を勘違いしていればスルーしてください。
補足として、実際の数量を求めるには、 入数とケース数ですから、下記のようにする必要があります! SUMIF(商品名の列,"みかん",入数の列)*SUMIF(商品名の列,"みかん",ケース数の列)
この場合、「みかん」がKEY(キー)ですから、 LOOKUPでは、同じKEYは複数、扱えません! どちらを抽出すれば良いか、困りますから! 複数扱う場合には「SUMIF」が良いです! SUMIF(商品名,"みかん",合計)
お礼
すみません、基本が全然理解できてないので何がなんだか・・・状態ですが、今晩格闘してみます。ありがとうございました
- q_ta
- ベストアンサー率28% (11/39)
たとえば みかん1 みかん2 というようにしないと出せないと思いますが...
補足
ありがとうございます。実際には元のシートは膨大なデータをマスターから落とすので商品名を変えることは出来ないです。
お礼
商品名の並びは揃ってます 見たことない関数で呆然としている状態ですが、今晩格闘してみます。ありがとうございました