VBAで東京のみかんといちごの合計を求める方法

このQ&Aのポイント
  • VBAを使用して、東京のみかんといちごの個数を合計する方法について説明します。
  • A列が「東京」で、B列が「みかん」または「いちご」の文字列を含む場合、C列の値を合計することができます。
  • 上記の質問文章のコードでは、Lileのスペルが間違っています。正しいスペルはLikeです。また、文字列の比較にはワイルドカード(*)を使用します。
回答を見る
  • ベストアンサー

VBA SUMPRODUCTについて3

A     B     C    東京  みかん1  200 大阪  りんご3  150 愛知  いちご2  200 東京  みかん2  170 東京  いちご1  190            560(←出したい値:atai) 【やりたいこと】 A列が「東京」で、B列が「みかん」または「いちご」の文字列を含む C列の合計を出したいです。 つまり、200+170 +190 = 560 下記、書いてみたのですがatai(値が#VALUE!)になります。。 ※本来は560と出したいところです。 何が間違っているのでしょうか? --------------- Sub monthResult3() Dim ans As String ans = "東京" atai = Evaluate("SUMPRODUCT((A1:A5= """ & ans & """ )*((B1:B5 Lile ""*みかん*"")+(B1:B5 Lile ""*いちご*"")) * C1:C5)") Range("C7") = atai End Sub

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

  • ベストアンサー
  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.1

前の質問文2の回答者さんとその他回答者みなさんの合作です。 sumproduct文ではワイルドカードは使えないそうです・・・。 Sub monthResult3() Dim ans As String ans = "東京" atai = Evaluate("SUMPRODUCT((A1:A5= """ & ans & """ )*(isnumber(find(""みかん"",b1:b5))+isnumber(find(""いちご"",b1:b5))) * C1:C5)") Range("C7") = atai End Sub

nanacolobiyaoki
質問者

お礼

ご回答ありがとうございました!! 超感動です(*≧▽≦)!!!!! >sumproduct文ではワイルドカードは使えないそうです・・・。 ありがとうございます。VBA初心者でして「ワイルドカード」という 言葉も知らずgoogleで検索してしまいました(^^;) ご丁寧にありがとうございました。 そしてお礼が遅くなりまして申し訳ございませんでした。

関連するQ&A

  • VBA SUMPRODUCTについて2

    A     B     C    東京  みかん  200 大阪  りんご   150 愛知  りんご   200 愛知  みかん  170 東京  みかん  190            390(←出したい値:atai)           【やりたいこと】 A列が「東京」で、B列が「みかん」のC列の合計を出したいです。 つまり、200+190 = 390 下記、書いてみたのですがatai(値が0)になります。 ※本来は390と出したいところです。 何が間違っているのでしょうか? --------------------------- Sub monthResult2() Dim ans As String ans = "東京" atai = Evaluate("SUMPRODUCT((A1:A5= ""& ans &"" )*(B1:B5= ""みかん"") * C1:C5)") Range("C7") = atai End Sub ------------------- ""& ans &"" を ""東京"" とすれば正しい答え「390」が出てきます。 ans は変数で使いたいので固定で指定したくありません・・。 どうぞよろしくお願い致します。

  • VBA SUMPRODUCTについて

    (1)atai = Evaluate("SUMPRODUCT((D2:D19000 = ""東京"") *        (BH2:BH19000 = ""みかん"") * AX2:AX19000)") (2)atai = Evaluate("SUMPRODUCT((D2:D & K = ans) *        (BH2:BH & K = ""みかん"") * AX2:AX & K)") (1)では atai(値)を得ることが出来るのですが、 (2)ではエラー(型が一致しません)となってしまい値を得ることができません。    ""の括り方、()の使い方、&の使い方が間違っているのでしょうか? ※msgBoxで確認済みですが、kは最終行(取得出来ています)、   ansは東京(取得出来ています) 【やりたいこと】 D列が「東京」となっているもので、かつ BH列が「みかん」となっているAX列の数字のトータルを求めたい。 どなたか、ご教示の程お願い申し上げます。

  • 【SUMPRODUCT】について

    下記リストと条件で価格を算出したいのですが、A列の「7」以外の数字まで反映された値がかえってきてしまいました。適切な関数を使用しているかも不明です。 アドバイスのほどお願いいたしますm( _ _)m --------------------------------------------------------------- セル A列 B列 C列 D列 E列 1 5 A リンゴ店 TEL \100 2 5 B ミカン店 FAX \200 3 7 C リンゴ店 TEL \100 4 7 A ミカン店 FAX \200 5 7 B リンゴ店 TEL \100 6 7 C ミカン店 FAX \200 --------------------------------------------------------------- <条件> A列 「7」 B列 「B」と「C」 C列 「ミカン」を含む D列 「FAX」以外 <作成した数式>(かえってきた値は上の条件とは相反したデータで、恐らくA列の「7」以外の数字も含んでいるようです・・) =SUMPRODUCT((A$2:A$10=7)*(B$2:B$10="B")*(B$2:B$10="C")*(E$1:E$10)) +SUMPRODUCT((A$2:A$10=7)*ISNUMBER(FIND("ミカン",C$1*C$10))*(E$1:E$10))+SUMPRODUCT((A$2:A$10=7)*ISERROR(FIND("FAX",D$1:D$10))*(E$1:E$10)) 以上、質問が長くなってしまい申し訳ありません。 ご教授のほどどうぞ宜しくお願いいたします。

  • SUMPRODUCTでしょうか?

    A列 B列 C列 名 目標 実績 いちご 100 123 ぶどう 120 115 みかん 110 130 ばなな 110 120 人数 上記の表があり、実績(C列)が目標(B列)を上回った人数を関数を使ってカウントして、人数欄に表示したいです。 どのように求めたらいいのでしょうか? SUMPRODUCT関数かCOUNTIF関数かなと思ったのですが、どのように作成すればいいのかわかりません。 教えて下さい。よろしくお願いします。

  • SUMPRODUCTでのブランクカウント方法

    検索しきれず、重複した質問でしたらご容赦ください。 Excelでの関数SUMPRODUCTに関する質問です。 A列        B列          C列 みかん      2011/11/30     2011/11/30 みかん      2011/11/30 みかん      2012/11/30     2011/11/30 みかん      2012/11/30     2012/11/30 上記のような表(10行あるとします)で、A列がみかん、且つ、B列が2011/11/30、且つ、C列が2011/11/30もしくはブランクのものをカウントしたいです。この例だと結果が2となるのを望みます。 =SUMPRODUCT((A1:A10="みかん")*(B1:B10="2011/11/30")*(C1:C10="2011/11/30"))+SUMPRODUCT((A1:A10="みかん")*(B1:B10="2011/11/30")*(ISBLANK(C1:C10))) 色々試したのですが、この式考えるまでで断念してしまいました。何卒ご教示下さい。

  • Excel2003 並び替えに関する質問 VBA初心者

    エクセルの並び替えにおいて質問させていただきます。  A列  B列  C列   D列 りんご  1  バナナ  4 バナナ  2  みかん  6 すいか  3  いちご  8 みかん  4  もも   3 いちご  5  すいか  2 ドリア  6  ぶどう  1 というものを  A列  B列  C列   D列 りんご  1   バナナ  2  バナナ  4 すいか  3  すいか  2 みかん  4  みかん  6 いちご  5  いちご  8 ドリア  6           もも   3         ぶどう  1 というようにA列にならってC,D列の項目を並び替えて、並び替えられないものは下に列挙させるようなやり方をVBAで組みたいのですが、まずはどうすればよいのかわかりません。 もし、これを見て答えられるようであれば、どなたか教えていただければ幸いです。 どうか宜しくお願いします。

  • EXCEL VBA 複数列を2列にまとめる

    下記のようなデータ(列数も行数も常に変わり、固定ではない)を ┌───────────────── │ A 列  | B列   | C列   | D列 ├─────────────────── │ 1 │伝票01 │品名01 | 品名02 │品名03 ├─────────────────── | 2 │0011 │みかん │みかん | りんご ├─────────────────── │ 3 │1001 │りんご  │いちご |    ├─────────────────── │ 4 │1100 │いちご  │みかん | ぶどう  └─────────────────── ↓のように2列にまとめる方法はございますでしょうか?VBAを希望しております。   よろしくお願い申し上げます。 ┌───────────────── │ A │ B   ├───────────────── │ 1 │伝票  │品名 ├───────────────── │ 2 │0011_品名01 │みかん  ├───────────────── │ 3 │1001_品名01 │りんご    ├───────────────── │ 4 │1100_品名01 │いちご ├───────────────── │ 5 │1001_品名02 │みかん  ├───────────────── │ 6 │1100_品名02 │いちご  ├───────────────── │ 7 │1001_品名02 │みかん  ├───────────────── │ 8 │1100_品名03 │りんご  ├───────────────── │ 9 │1001_品名03 │  ├───────────────── │ 0 │1001_品名03 │ぶどう  ├─────────────────

  • excelグループごとに他と値が違うセルを知りたい

    お世話になります。 Excelで、A列にグループ名があり、B列に値が入力されているリストで、同じグループの中で他の値が入力されている箇所を調べようとしています。(わかりにくいですよね・・・) 例えば・・・・ 1 グループ 値 2 いちご b 3 いちご b 4 いちご b 5 りんご a 6 りんご a 7 りんご b (←ここを知りたいです) 8 りんご a 9 ばなな c 10 ばなな c 11 ばなな a (←ここを知りたいです) 12 ばなな b (←ここを知りたいです) ・ ・ ・ というリストがあり、7のb、11のa、12のbを求めたいと考えています。 グループは何百とあり、値はせいぜい10個程度です。 COUNTIFSや、SUMPRODUCTを使ってできないかと色々やってみたんですが、力量不足でうまくいきません。 恐れ入りますが、ご教示いただけますとありがたいです。

  • セルに埋め込まれた文字列を式として利用したい

    品名      |ランク ------------|----------- みかん     |A いちご     |B みかん     |A みかん     |B りんご     |A りんご     |B いちご     |B りんご     |B 品名選択: -------------------- |全て選択     |▼| ←A15セル -------------------- |いちご       | |みかん       | |りんご       | |いちご&みかん   | ---------------------- 上記のようなExcelの表があります。 表の下には品名選択のコンボボックスが用意されています。 品名選択で選択されたもので、ランクがAのものを数えたいと思っていますが、 品名選択の方法が複雑なため、SUMPRODUCTで表すと式がとても長くなってしまいます。 =SUMPRODUCT((B2:B9="A")*((A15<>"全て選択")*(A15<>"いちご&みかん")*(A2:A9=A15)+(A15="全て選択")+((A15="いちご&みかん")*((A2:A9="いちご")+(A2:A9="みかん"))))) 式をもう少し簡潔にしたいと思い、以下のように品名が選択された時に隣のセル(B15)に式を表示するようにし、 -------------------- |全て選択     |▼| (A15="全て選択") -------------------- |いちご       | (A2:A9=A15) |みかん       | (A2:A9=A15) |りんご       | (A2:A9=A15) |いちご&みかん   | ((A2:A9="いちご")+(A2:A9="みかん")) ---------------------- =SUMPRODUCT((B2:B9="A")*(B15))としてみたのですが「#VALUE」となってしまい計算されません。 (=SUMPRODUCT((B2:B9="A")*INDIRECT(B15))も試してみたのですが、出来ませんでした…うーん??) コンボの隣にセットした文字列を数式の一部として使用する事は出来るのでしょうか? 出来る場合、方法を教えて下さい。 よろしくお願いします。

  • エクセル関数SUMPRODUCTについて

    エクセル2000です。 A列とB列の和にC列を乗じたものの合計は、 =SUMPRODUCT(A1:A10,$C$1:$C$10)+SUMPRODUCT(B1:B10,$C$1:$C$10) または =SUM(SUMPRODUCT(A1:A10,$C$1:$C$10),SUMPRODUCT(B1:B10,$C$1:$C$10)) のような長ったらしいものになるのでしょうか? =SUMPRODUCT((A1:B10)*C1:C10) は、表中に文字列が入る場合があるのでエラーになります。 ご教示いただければ幸いです。