プロが教える店舗&オフィスのセキュリティ対策術

SUMIFを使って合計範囲の数値の合計を求めるように、合計範囲の「データが入力されているセル」の合計を求めたいのですが、何かいい関数はありませんでしょうか?
言い換えると、COUNTAを使ってセルの個数を求める場合に検索条件をSUMIFのように特定の検索条件を指定できる関数です。

いろいろ探しましたがうまい方法が見当たりません。
使用方法としては、各曜日ごとのメニュー別の売上金額の合計と人数の合計を求めようとしています。
ワークシートに入力されてるデータは
・各曜日
・顧客名
・メニューと支払われた金額
です。

SUMIFを使って、検索条件に各曜日をあてはめ、曜日ごとのメニュー別売上は集計できました。
金額が入力されているセルを合計すれば各メニューごとの人数まで集計できるはずなのですが、SUMIFが「数値」しか集計できない為にそれに代わる関数を探しています。

どうぞよろしくお願い致します。

A 回答 (8件)

こんばんは!


No.2・7です!
たびたびごめんなさい。

大きく勘違いしていました。
No.7の回答は無視してください。

No.4さんの補足に
>求めたいのは、月曜日にメニューAに対して金額の入力されたセルの数です。

とありましたので三たび顔を出してしまいました。

↓の画像のG3セルに
=SUMPRODUCT((A2:A1000=F1)*(C2:C1000<>""))

という数式を入れています。
これでF1セルに曜日を入力すれば、その曜日のメニューAのセル数が表示されるはずです。

もし月曜日限定であれば
=SUMPRODUCT((A2:A1000="月")*(C2:C1000<>""))
でもOKかと思います。

尚、数式は1000行まで対応できるようにしています。

今度は希望に近い形になったでしょうか?

以上、参考になれば幸いです。m(__)m
「sumifのように条件に見合う合計を「数」の回答画像8
    • good
    • 0
この回答へのお礼

ありがとうございました。
希望通りのことができました!完璧です。

ご丁寧に細かく教えて頂いた感謝しております。

大変勉強になりました。

お礼日時:2009/10/14 14:31

こんばんは!No.2です。


たびたびごめんなさい。

色々方法はあるかと思いますが、
↓の画像で二通りの方法をやってみました。

H2セルはDSUM関数を使っています。
顧客名での集計もできるようにしてみました。
数式は
=IF(COUNTBLANK(F2:G2)=2,"",DSUM($A$1:$D$1000,3,F1:G2)+DSUM($A$1:$D$1000,4,F1:G2))

H6セルは単純にSUMIF関数だけで
=SUMIF(A2:D1000,G6,C2:C1000)+SUMIF(A2:D1000,G6,D2:D1000)
という数式を入れています。
この場合曜日だけが集計条件です。

尚、両方とも1000行まで対応できる数式にしていますので
データが増えても対応できると思います。

以上、参考になれば幸いですが、
他に良い方法があれば読み流してくださいね。m(__)m
「sumifのように条件に見合う合計を「数」の回答画像7
    • good
    • 0

解答No4です。


メニューの列が分かれてそれぞれの列に数値が入力されているのでしたらSUMIF関数で合計の値は求められますね。
ところで例えば月曜日でメニューAでデータの入力されている数は次のようにして求めることができます。
=SUMPRODUCT((A2:A100="月")*(C2:C100<>""))
    • good
    • 0
この回答へのお礼

ありがとうございました!
希望通りのことができました。

「SUMPRODUCT」ってべんりですね。
「<>""」は空白以外の...指定なんですね。

勉強になりました。

お礼日時:2009/10/14 14:29

「COUNTIFS」関数が使えます。


http://www.eurus.dti.ne.jp/~yoneyama/Excel/waza/ …

この回答への補足

ありがとうございます。
エクセルのバージョンを書き忘れましたが「2003」です。
「COUNTIFS」は使えませんね...すません。

補足日時:2009/10/10 16:40
    • good
    • 0

例えばA1セルに曜日、B1セルに顧客名、C1セルにメニュー、D1セルに売上額とそれぞれ文字があり、各データは2行目から下方に入力されているとします。


そこで曜日が 日 でメニューが あ である売上高を集計することはSUMIF関数ではできないですね。次のような式になります。
=SUMPRODUCT((A2:A100="日")*(C2:C100="あ")*(D2:D100))
またその時の件数は次のような式になります。
=SUMPRODUCT((A2:A100="日")*(C2:C100="あ"))

この回答への補足

ご丁寧にありがとうございます。

もう少し質問の内容を補足致します。

A列  B列  C列    D列
曜日 顧客 メニューA メニューB
月  Aさん \5,000
月  Bさん       \6,000   
火  Cさん       \3,000
水  Dさん \4,000
木  Eさん       \2,000

といった具合に表にしています。
求めたいのは、月曜日にメニューAに対して金額の入力されたセルの数です。
>A1セルに曜日、B1セルに顧客名、C1セルにメニュー、D1セルに売上額
であればよかったのですが、C列、D列、E列...と複数のメニューに対して支払われた金額を入力しています。

他の回答頂いた方の「COUNTIF」では「月曜日」の個数は求められても
「月曜日のメニューAに該当する個数」は求められませんでした。

SUMIFでいえば
SUMIF=(検索範囲、”検索条件”、合計範囲)ですが、
希望するのは
(検索範囲=曜日の列、”検索条件”=曜日、合計範囲=空白以外のセルの合計)
なんです...無理でしょうか??

  

補足日時:2009/10/10 17:00
    • good
    • 0

条件がひとつなら


COUNTIF

複数の条件なら
DCOUNTA


でお望みのことができませんか?

この回答への補足

ありがとうございます。

希望するのは、

(検索範囲=曜日の列、”検索条件”=曜日、合計範囲=空白以外のセルの合計)

で合計する範囲を別途任意の範囲で指定したいんです...
「COUNTIF」や「DCOUNTA 」では出来ませんでした。すいません。

補足日時:2009/10/10 17:04
    • good
    • 0

こんにちは!



元データが具体的にどのようになっているか判らないので・・・

あくまでヒントだけですが、

SUMPRODUCT関数・DSUM関数・SUBTOTAL関数などが使えるような気がします。
Excel2007であればSUMIFS関数というものもあるはずです。

同項目のデータは縦に並んでいることが基本ですけどね。

この程度しかお答えできないので
あまりお役に立てないかもしれません。
ごめんなさいね。m(__)m

この回答への補足

ありがとうございます。ご丁寧にすいません。

「SUBTOTAL」は惜しいんですよね...
これで合計範囲を別途指定できればよかったんですが...

ちなみにSUMIFSは手持ちのエクセルが2003なのでダメでした。

補足日時:2009/10/10 17:07
    • good
    • 0

countif


とかではだめでしょうか。

この回答への補足

ありがとうございます。

希望するのは、

(検索範囲=曜日の列、”検索条件”=曜日、合計範囲=空白以外のセルの合計)

で合計する範囲を別途任意の範囲で指定したいんです...
「COUNTIF」はだめでした~

補足日時:2009/10/10 17:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!