• 締切済み

Excel2003 ユーザー定義関数 で SUBTOTALとSUMPRODUCTの複合できますか?(複数条件)

こんばんは。お願いします。 まず、セルA2、B2にそれぞれフィールド名"あ"、"い"があるとします。 この2列目以下にオートフィルターを使います。 A列のA3,A4…には文字列"a","b","う",または"かき"が入っていて、 B列のB3,B4…には数値(整数)が入っているとします。 このとき、セルB1にVBAで作成した関数を入れたいと思っています。 Excel2003です。 その関数は、以下の条件(1)と(2)を同時に満たします。 (1)A列が"a"または"かき"である場合のみ、その行のB列の数値の合計を計算する(SUMIF関数で可能) (2)オートフィルターを用いて抽出したら、表示されているB列の数値だけの合計を計算する(SUBTOTAL関数で可能) (3)作業列は使えません。 要するに、表示されているセルのうち、条件にあうもののみ計算したい、ということです。 もしこのようなことがワークシート関数でもできるのであれば、それで構いません。 どうぞ、よろしくお願いいたします。

noname#200395
noname#200395

みんなの回答

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

こんにちは。 誰か答えるかと思ってそのままにしておきましたが、まだ、返事がついていないようですね。 具体的には、どういう計算をしているのか、いまひとつ想像つきません。 例を示していただいたほうがよいです。 「(3)作業列は使えません。」 どういう計算かは別として、関数でも出来るような気がしますが、SUBTOTALの範囲にない演算は、作業列がないとフィルタの場合は計算できないような気がします。今のままでは、回答は付けにくい質問です。

noname#200395
質問者

お礼

ありがとうございます。 たしかに、よくわからない質問なので再度質問させていただきました。 よろしければご覧ください。 http://okwave.jp/qa5350469.html#

関連するQ&A

  • Excel2003 ユーザー定義関数 で SUBTOTALとSUMPRODUCTの複合できますか?(複数条件)

    こんばんは。お願いします。 まず、セルA2、B2、C2にそれぞれフィールド名"あ"、"い"、"う"があるとします。 この2列目以下にオートフィルターを使います。 A列のA3,A4…には文字列"a","b","c"または"d"がランダムに並んでいて、 B列のB3,B4…にはランダムに数値(整数)が入っていて、 C列のC3,C4…には文字列"p","q",または"r"がランダムに並んでいるとします。 このとき、セルB1にVBAで作成した関数を入れたいと思っています。 Excel2003です。 その関数は、以下の条件を満たします。 (1)フィールド「あ」が、たとえば"a"または"b"である場合のみ、その行のB列の数値の合計を計算するように引数を設定した場合、 (2)オートフィルタを用いて、フィールド「あ」に"a"または"b"または"c"のフィルタをかけて、さらにフィールド「う」にも"p"または"r"のフィルタをかけても、B列の、可視セルの、フィールド「あ」が"a"または"b"の行の数値だけの合計を計算する (添付の図の例で言うと2+3+1+3= 9 が正解となる) (3)作業列は使えません。 そこで、自分で作成してみたのがこれです。 Function SubIf(c) Dim i As Long For i = 3 To Range("A3").End(xlDown).Row If Rows(i).Hidden = False Then If Cells(i, 1).Value = "a" Or Cells(i, 1).Value = "b" Then c(i) = Range("B" & i) End If End If Next i SubIf = WorksheetFunction.Sum(c) End Function が、SubIf(B3:B11)の結果は、#VALUE!に終わりました。 何か、根本的に間違っていますでしょうか。 とにかく、可視セルのうち、条件にあうもののみ足し算したい、ということです。 もしこのようなことがワークシート関数でもできるのであれば、それで構いません。 どうぞ、よろしくお願いいたします。

  • Excel関数:SUBTOTALとSUMIFを組み合わせる?

    下記のような場合の集計ができる関数を教えて下さい。 SUBTOTALとSUMIFを組み合わせようと思ったのですが、うまくいきませんでした。 よろしくお願いします。 <表の内容> ・セルA1:「ランク」 ・セルA2~A50:「A」or「B」or「C」を入力している ・セルB1:「金額」 ・セルB2~B50:各金額を入力している <集計方法> ・セルB51に「ランクが"A"」の金額合計を表示したい ・ただしオートフィルターを使って他の条件で抽出もおこなっているのでSUBTOTAL関数のように、表示されている行の値のみを合計したい

  • SUMIF関数で検索条件がわからず困っています

     ECXEL 2003(OS:WindowsXP)を使用しています。  A    B    C  10  150  50  10  150  80  10  150  20  15  100  100  20  60   40  20  60   20  上記の表でA列内の同じ数値にあたるC列の合計数をB列の各々のセルに表示させようと思っています (例:A列の「10」のC列の合計「150」をB列の各セルに表示)。SUMIF関数の「検索条件」の欄に 文字列やセル名ではなく、A列内で同じ数値ごと(例:10・15・20の各合計がでるよう)に自動計算する数式が あるように聞いていますので、教えて戴けないでしょうか?  また、SUMIF関数にこだわらずいい方法があれば教えていただけましたら幸いです。

  • Excel関数の条件に年月を指定する方法

    エクセルの関数について教えてください。 以下のような計算をしたいのですが、 =SUMIF(A2:A50,条件,B2:B50)の条件に年月(例えば2010/11)を指定する方法を教えてください。 A列       B列 2010/10/26   20 2010/11/8   512 2010/11/22   100 2010/11/1   113 2010/12/13   340 2010/10/4    20 2010/11/15   72 2010/12/20   30 2011/1/14    56 2011/2/14    130 合計 2010/11    =SUMIF(A2:A50,条件,B2:B50) 2011/1     =SUMIF(A2:A50,条件,B2:B50)

  • Excel2010 複数条件の計算方法

    複数の条件に該当する項目の合計を計算したいのですが、関数の作り方が分かりません・・・ 例えば、A列に文字があってB列に数値が入力されている表があったとして、A列にある項目の中から2つ以上に該当する数値の合計を計算する場合、どのような関数にすれば良いのでしょうか? 例えば、A列に果物の名前(りんご、みかん、ぶどう、メロン・・・)があり、B列にその値段が入っていて、「りんご」と「みかん」と「メロン」の値段の合計を算出するような場合、どのような関数になりますか? 条件がひとつであれば、SUMIF関数を使って計算できるかと思いますが、2つ以上の場合、どのようにすれば良いか分からないのです。 Officeのバージョンは2010です。 ネットで検索してもイマイチ分かりませんでした。どなたか簡単に教えて頂けますでしょうか?

  • Excel関数 複数の条件で合計する方法

    会員 「A」は5000円 「B」は3000円 A列に「A」と「B」の人数が混じっています。 条件により 「A」は10名なので50000円 「B」は10名なので30000円 合計80000円といった計算をしたいのです。 検索したらSUMIF関数がそうだと思いましたが、5000円、3000円の入力が分からず… 教えてください。

  • Excel2000で条件付きの串刺し計算は可能か?

    タイトル通りなのですが詳細を書きます。 sheet1からsheet100まで全く同じフォーマットの集計 シートがあります。 シートを甲乙丙の3種類に分類するため、各シートのA1セル 、B1セル、C1セルの何れかに数字の「1」を入れてフラグを 立てています。 A2以下のセルには関数等で計算された数値があります。 ここでA1のセルに「1」が入力されているシートのみの数値を 甲合計シート、B1のセルに「1」が入力されているシート のみの数値を乙合計シートにという感じで串刺し算で求め たいのですが、SUMIFではうまくいきませんでした。 甲合計シートのA2セルに関数がおかしいのは承知で =SUMIF(Sheet1:Sheet100!A2,A1=1,Sheet1:Sheet100!A2) と入力してもダメでした。 当方VBAは全く知らないのですが、条件付の串刺し算は 関数では実現できないのでしょうか? VBAでなら可能というのであれば、その方法を教えて いただけませんか?

  • EXCELで cuontifやsubtotal以外の関数で0以外の数値をカウントできないでしょうか?

    今回は数値のカウントを教えてください。 下記のような場合、A列の1でフィルターをかけた場合 B列の0を除いた整数のセルの個数をカウントするには どのような関数がのぞましいでしょうか?   A  B    1  a  b 2  1  10 3  1  12   4  0   0   5  0   0 6  1  15 7  1   0   8  1   0 ・     ・      ・     ・ 11  1  12 countifだとフィルターが有効にならず、subtotalでは 「0以外」のオプションが有効になりません。 よろしくお願い致します。

  • SUBTOTALと他関数の合体はできますか?集計の時です

    エクセルの集計を行いたいのですが、オートフィルターを活用している中、集計をSUBTOTALとIF関数の合体のようなものを作りたいのです。出来ますでしょうか・・・(私の知識の無さですみません) 一例はこの通りです。    A列 B列  C列 1 幼児 りんご 300 2 中学 みかん 100 3 高校 バナナ 200 4 大人 りんご 500 別の行にそれぞれの集計値を出すセルを作ります。 幼児合計 中学合計 高校合計 大人合計 B列の集計をしたいとき、各合計は、 普通にSUBTOTALだけだと幼児も中学も高校も全部一緒の合計になってしまいます。 さらにA列を絞りこめばいいのですが、分析において絞り込みたくないのです。 りんごは幼児、中学、高校、大人にどのくらいあるのかを 一目で分かるようにしたいためです。 どうか、ご教授ください。

  • Excel 連番の関数(SUBTOTAL)のコピー方法

    今使用している下記のような表があるのですが、同じシート内に上下に合計表があります。 SUBTOTALを使ってオートフィルタでB列が a またはb を選んだ時でも A列が連番になるよう、C列の合計が絞り込み後もに計算させるように簡単ではありますが、こんな表があるのですが、 今後上下の表の一部データを入れ替えする作業もあり、普通にコピーをしていれかえさせたいのですが、うまくいかない為、 $絶対参照を変えたりと、いろいろ試しているのですが、うまくいきません。 知恵をお貸し頂きたく、質問させて頂きました。 可能であれば教えて頂きたいのですが、 どうかよろしくお願いします。 -------------------------------------------------------      A   B    C    A1=SUBTOTAL(3,$B$1:B1)  1   1   a    1 2   2   b    1     A2~A4=コピー 3   3   a    1 4   4   b    1 5   合計 aまたはb       C5=SUBTOTAL(3,C2:C4) 6-------------------------------------------------- 7   1    a    1    A7=SUBTOTAL(3,$B$7:B7) 8   2    b    1    A8~A10=コピー 9   3    a    1 10  4    b    1      11  合計  aまたはb      C11=SUBTOTAL(3,$B$7:B7) -------------------------------------------

専門家に質問してみよう