- ベストアンサー
EXCELでの部分一致合計について
エクセル初心者のため、質問がチグハグしてるかもしれませんが、なんとか回答をお待ちしています。 さっそく本題ですが、、、、 以下の表をご覧願います、、、、 ---------------------------------------------- 識別コード : 犬=103 猫=104 猿=105 雉=106 ---------------------------------------------- 売上 識別 \350 103 \48,800 105 \2,000 106 \600 105106 \10,003 106 \0 105 \650,000 103106 \300 103104105106 \100 105 \200 105 \0 105 \500 103105106 \600 105 というような状態の表があるんですが、 例えば識別コード=105だけの売上が知りたい場合は SUMIF関数で持ってこれるんですが、 上記表の通り、複数の物がパックで売れてしまっている場合、 103105106と、表記されています。 何がしたいかと申しますと、103105106とか、103106とか 記載されているなかで、105と一致する物を計算したいんです。。 例えば 105の正しい数値が欲しい時に、 103105106 の売上が600円なら、単純に÷3して、200円を SUMIF関数で引っ張ってきた105の合計に足す、、 105106 の売上が1000円なら、単純に÷2して、500円を 105の合計に足す、、、、 という作業です。 この表に限っては、4種類の商品にかぎっていますが 本来は20種類以上あるため、手作業で計算していると 困惑してしまいます。。なんとか関数で簡潔したいのですが、 可能でしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
識別コードはすべて3桁であると仮定します。 =SUMPRODUCT(A2:A14*(NOT(ISERROR(FIND("105",B2:B14))))/LEN(B2:B14)*3)
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
NO3です。(追記) 数式中のD15は、識別コードが入力されているセル(仮)、行範囲は2:100としていますので調整して下さい。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 小数点以下は切り捨ていますので、4捨五入ならばROUND関数、切り上げならばROUNDUP関数に変更して下さい。 因みに配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =ROUNDDOWN(SUM(IF(ISNUMBER(FIND(D15,B2:B100)),(A2:A100)/(LEN(B2:B100)/3),"")),0)
お礼
こちらの式にも挑戦させて頂きます! 本当に丁寧なご回答、誠に有難う御座います。 改めてご質問等するかもしれませんが、 何卒宜しくお願い申し上げます!!!
- A88No8
- ベストアンサー率52% (836/1606)
こんにちは 計算単価なら下記の式で求めることが出来ます(小数点第2位四捨五入します)。 =ROUND($A2/INT(LEN($B2)/3),1)
お礼
最高です。 こちらの関数で、すべての悩みが解決されました。。。 本当に、有難う御座います。 この関数で、本当に完璧なんですが、 私自身の理解力が乏しく、できれば詳しい詳細などを お教え願えたら幸いです。。。 (さしでがましくてすみません!!) 今後の業務にいかすため、私も知識を身につけなければと 考えておりますゆえ、何卒宜しくお願い申し上げます。