• ベストアンサー

Excel2003 配列数式

お世話になります。 表題の件で ご相談が御座います。 まず、添付をご覧いただきたいのですが 表が3つ御座いまして、左の表には「商品別ランク表」があり、「商品名」と「ランク(3つのアルファベットと1桁の数字の組み合わせ)」と「単価」が入力されています。 真ん中の表には「配達地域」「商品ランク」「請求金額」をまとめたものがあり どの地域にどの商品を納入するのかが記されております。 (地域毎の納品、請求の管理はこの表で行います) ここは普通に「VLOOKUP」で請求金額を算出しているので問題ではないです。 問題は右の表で、現状は「配達地域」の所に配列数式を入れてあり(ここで教わったものです) それと同じような集計方法で請求金額を商品毎に算出致したく質問を致しました。 (こちらの表では商品毎の出荷地域数、請求金額を算出したいと考えております) 「K列(配達地域)」の所には 配列数式で 「=SUM(IF(LEFT$G$3:$G$25,LEN($G$3:$G$25)-1="AAA",1,0))」 と入力されていて、真ん中の表の商品ランクを反映して商品がどのくらい出荷されているのか分かるようになっています。 今回 お伺いしたいのは 赤枠で囲ってある「L列(請求金額)」の所です。 自分なりに工夫してみたのですが そもそも考え方を今1つ理解してないので苦戦しております。 商品ランクのコードは左の3つのアルファベットで商品を示し、4桁目の数字でランクを表しております。 なので右の表では「AAF」と付けば「りんご」の欄にりんごの個数が集計され、 「AAE」が含まれていれば「ばなな」の欄にばななの個数が集計されるようになっております。 この右の表に真ん中の表を見て「りんごの請求金額はいくら分になったんだ?」というのを右の表の「請求金額欄」に反映させたいのです。 「AAF」と付く「りんご」のは茨城と東京と広島なので計1500円が「L列(請求金額)」の欄に表示されるようにしたいです。 どなたか お分かりになる方、いらっしゃいましたら 宜しくお願い致します。

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

  • ベストアンサー
  • aleister
  • ベストアンサー率31% (11/35)
回答No.1

=SUMIF(G3:G25,"AAE*",H3:H25) これでどうでしょうか? 正規表現を使っています。

ookami1969
質問者

お礼

迅速にご対応いただきましてありがとう御座います。 いただいた数式では「0」となってしまいました。。。 (#と@も試したんですが、どれもダメでした。。)

その他の回答 (5)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.6

#横から失礼いたします。  <(_ _)>  [回答番号:No.1] の aleister さんがお示しの =SUMIF(G3:G25,"AAE*",H3:H25) に対して、 >いただいた数式では「0」となってしまいました。。。 とお書きですが、ookami1969 さんって、ひょっとして、aleister さんのご回答をご覧になりながら、手打ちで入力したりされてますか?  このWEBページで =SUMIF(G3:G25,"AAE*",H3:H25) の部分をマウスでドラッグして、[Ctrl] + [C](コピー)なさって、そのまま、エクセルの L3 に貼り付けてみてください。 >(#と@も試したんですが、どれもダメでした。。)  例えば、"*" などが全角文字になっていたりしたら、さっぱりです。

ookami1969
質問者

お礼

ご回答ありがとう御座います。 >#横から失礼いたします。  <(_ _)> いえ、とんでもないです。どしどしお願いします! >ひょっとして、aleister さんのご回答をご覧になりながら、手打ちで入力したりされてますか? 面倒くさがりなので これはないのですが どうやら引数のコードに 半角、全角が混じってた(?)ようで、そっちをいただいた数式内にコピペしたら どの数式も反映されました!! ご心配いただきまして ありがとう御座いました!!

ookami1969
質問者

補足

ご回答いただいた皆様。 大変ありがとう御座いました!! お陰様で 完璧な管理表が出来上がりました!! この場をお借りしてお礼を申し上げます。 なお、みなさん全員にポイントを差し上げたい所なのですが 申し訳ありませんが先着順とさせていただきます。 ご了承くださいませ。 ご回答いただきまして誠にありがとう御座いました。

回答No.5

>=SUM(IF(LEFT$G$3:$G$25,LEN($G$3:$G$25)-1="AAA",1,0)) が良くて =SUMIF(G3:G25,"AAE*",H3:H25) がダメな理由が見当たらない・・・ 強いて言えば =SUMIF($G#3:#G#25,"AAA*",$H$3:$H$25) とか さらに =SUMIF($G$3:$G$25,"AAA?",$H$3:$H$25) そして 何で配列数式を使うかわかりませんが個数は =COUNTIF($G$3:$G$25,"AAA?") で同じはず。 もう一度、試してみては?

ookami1969
質問者

お礼

ご回答ありがとう御座います! 申し訳御座いません!! 引数のアルファベットに半角、全角が混じってた(?)ようで 参照するコードをコピペしたら どの数式でも反映されました!! お手数お掛けしまして申し訳ありませんでした。。。

回答No.4

すみません 先ほどの数式で 間違いが 請求額に 「""」を付けて書いてしまいました {=SUM(IF(LEFT(商品ランク,3)="AAF",請求額,""))} でした

ookami1969
質問者

お礼

はい! ありがとう御座います。 その通りにやったら完璧に反映されました!! ありがとう御座います!

回答No.3

L3 =SUMPRODUCT((LEFT($G$3:$G$25,LEN($G$3:$G$25)-1)="AAF")*$H$3:$H$25) (配列数式ではなく通常の数式で)

ookami1969
質問者

お礼

ご回答ありがとう御座います! イケました!! SUMPRODUCTって こういう時に使うんですね! ありがとう御座いました!

回答No.2

素人ですが G3:G25 に 「名前の定義」で「商品ランク」 H3:H25 に 「名前の定義」で「請求額」 とさせて下さい 配列数式で {=SUM(IF(LEFT(商品ランク,3)="AAF","請求額",""))} で どうでしょうか?

ookami1969
質問者

お礼

ご回答ありがとう御座います! 完璧でした!!! ひと手間かける必要があったんですね! >素人ですが とんでも御座いません、見事に解決していただきました! ありがとう御座いました!!!

関連するQ&A