こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

SUMIFとCOUNTIF

今は会社で出勤表を作成しています。
そこである条件別(社員,アルバイト)の人達の公休の合計(公の文字)を求めたいのですが求めたいのは数値ではなくて”公”という値なのです。

=SUMIF(範囲,検索条件,合計範囲)では
=SUMIF(A1:A10,"社員",C1:C10)とやりたいのですが
値は数値しか求められなくて文字はカウントできません。

=COUNTIF(範囲,検索条件)では
=COUNTIF(C1:C10,"公")
指定範囲の部分がないので出来ませんでした。

そこで
=SUMIF(A1:A10,"社員",COUNTIF(C1:C10,"公"))
とやりましたが値は帰ってきませんでした。

どうすれがSUMIFで文字を算出するような、SUMIFとCOUNTIFを混ぜ合わせたような算出の仕方が出来るのでしょうか?
マクロや文字を数値に置き換え、新しいワークシートを作成せずに関数で出来る方法を教えていただけませんか?

よろしくお願い致します。

投稿日時 - 2003-10-03 14:41:02

QNo.670362

すぐに回答ほしいです

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

これ、複数条件のカウントですよね。
社員の公の合計、アルバイトの公の合計だったら、[DCOUNTA]が必要だとおもいます。通常の関数ではなく、データベース関数が必要だと思います。
ヘルプでデータベース関数とすれば、出てきます。
一覧表を作り上部にデータラベル(項目)をつけた状態のものにします。
もう一つ複数条件の表を作ります。データベースの項目と同じ名前をつけた表にする。その下に条件を入れる。(社員、公など)そして、数値をカウントするせるに
=DCOUNTA(データベースの範囲,,複数条件表の範囲)
です。式の真中の条件話なのでカンマが続きます。
後は、他の方法もありますが、これが、一番簡単だと思うのですが。

投稿日時 - 2003-10-03 15:08:57

お礼

データベース関数は初めて取り組みましたので私自身は上手く行きませんでしたがおそらくこの方法でOKなのだと思います。もう少し私自身勉強をして取り組みたいと思います。
どうもありがとうございました。

投稿日時 - 2003-10-08 15:30:43

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.4

こんばんは

=SUMPRODUCT((A1:A10="社員")*(C1:C10="公"))

てことでしょうか!

投稿日時 - 2003-10-03 23:48:34

補足

うーん、上手くいきません。

投稿日時 - 2003-10-08 15:28:05

ANo.3

A列に「社員」とか「アルバイト」とかが入っていて
C列に「公」の文字があったりなかったり
と言う状態で
「社員だけの公休の合計」
「アルバイトだけの公休の合計」
を求めたい訳ですね。

もしそうであれば、一旦、どこかの列に「A列が社員でC列に公の文字があれば1、そうでないなら0になる」セルを作って、その合計を求めると良いと思います。

D列を新たに挿入し、D1に
=IF(AND(A1="社員",C1="公"),1,0)
と言う式を入れ、セルのコピーで必要行数コピーします(10人居れば10行目まで)
同じく、E列を新たに挿入し、E1に
=IF(AND(A1="アルバイト",C1="公"),1,0)
と言う式を入れ、セルのコピーで必要行数コピーします。
(縦方向へのセルのコピーでは、自動的に参照セルの行が調整される筈です)

あとは、=SUM(D1:D10)で社員の公休日数が、=SUM(E1:E10)でアルバイトの公休日数が求められます。

計算の途中に使う(D列とE列の)0とか1とかの表示が邪魔であれば、もっと右の方の列を使って印刷範囲の外にしてしまいましょう。

邪魔な列を見えないようにするには、列幅を狭めて見えなくする方法もありますが、社員やアルバイトが増えて行を挿入してセルのコピーをする時に困るので、列幅を狭めて隠すのは避けた方が良いです。

なお、社員、アルバイトの種類に関係なく、全員の公休日数であれば、単純に=COUNTIF(C1:C10,"公")で充分です。

投稿日時 - 2003-10-03 15:31:26

お礼

ありがとうございます。
下記のデータベースを利用する方法が一番スマートだと思いましたがこちらの方法の方が初心者向けですね。
やっぱり他にワークスペースを作らないとダメなようですね。できれば関数で一発で出せる方法があると良かったのですが。とりあえずこの方法でも試してみます。

投稿日時 - 2003-10-08 15:33:28

ANo.1

こんにちは。maruru01です。

公休日数を求めたいのでしょうか。
その場合、「公」の文字はどの列に入力されているのでしょうか。
仮に、「公」の文字がD列に入力されているなら、

=COUNTIF(D1:D10,"公")

で出来るはずですが。
COUNTIF関数の第1引数の範囲は、「公」の文字が入力されている範囲ですよ。

投稿日時 - 2003-10-03 14:49:31

お礼

回答ありがとうございます。
でも伺いたいのは
COUNTIFとSUMIFを足したような
範囲と条件と計算範囲の三つを満たした
条件式なんです。
すみません。

投稿日時 - 2003-10-06 16:34:59

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-