• ベストアンサー

DSUM関数の使い方

こんにちは。 アルバイトの勤務時間の合計にDSUM関数を使いたいと思っているの ですが、『#VALUE!』という表示が出てしまいます。 以下のような表(A1:B750)で、C列をはさんで合計の表(D1:E5)を作っ て、合計欄に『=DSUM(A1:B750,B1:B750,D2)』と記入しました。正し い記入方法をご存知の方がいらっしゃったらお教えください。 他にもっとよい方法があればアドバイスください。       A      B     C     D      E 1     名前    時間        名前     合計 2     い     6.0           い      145.5 3     ろ     0.0           ろ      73.5 4     は     0.0           は      30 5     に     8.0           に      153 6     い     4.5         7     ろ     4.5         8     は     0.0         9     に     4.0         10     い     0.0         11     ろ     0.0           ・       ・       ・       ・ 750    に     8.0

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

  • ベストアンサー
  • kadakun1
  • ベストアンサー率25% (1507/5848)
回答No.1

DSUMではなくSUMIFで良いでしょう。 =SUMIF(A1:B750,D2,B1:B750) とやってください。 DSUMは複数条件の時に使用します。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

DSUMは、第3引数をクライテリア(Criteria)といい、条件にするデータ部の「見出し」とそっくりのもの(質問例のD1)と、条件にするデータ(質問例でD2)の両方をくっつけた範囲として、指定せねばなりません。D1:D2のように。 そしてこの条件の範囲の上行部に見出し(質問例では名前)、下行部に名前(質問例では「い」)をペアーで、くっつけて用意せねばならない不便性があり、多人数分の合計をだす式を、式複写で答えを出すことを妨げています。ほんとに何とかしてほしいと 常日ごろ個人的に思っています。 それで別回答として 例データ 氏名  計数 a 12 a 23 c 1 d 2 a 3 c 4 b 23 a 12 s 1 の場合 例えば C2:c4に a b c を入れて(多くなると実はこれも関数で出したいところだが略) D2に =SUM(IF($A$2:$A$10=C2,$B$2:$B$10,0)) を入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする(配列数式) そしてD2の式をD3,D4に複写する。 を使うほうを勧めます。 条件が2つ3つになっても =SUM(IF(($A$2:$A$10=C2)*(条件2)*(条件3),$B$2:$B$10,0)) のように使えます。 配列数式がいやなら、SUMPRODUCT関数も使えます(略)。

  • wonder99
  • ベストアンサー率28% (85/302)
回答No.2

DSUM関数の記述方法が間違っています。 正しくは =DSUM(A1:B750,B1,D1:D2) で「い」の合計が出ると思います。 かっこの中の最初が「データベースの範囲」 次が「フィールド」と言って検索したい列の見出し指定です。 最後が条件。見出しと条件指定をします。 データベース関数は、いちいち見出しを書かないと 条件として反応してくれないみたいなので、 合計を表す表を作るときは 名前    合計 い       145.5 名前    合計 ろ       73.5 名前    合計 は       30 名前    合計 に       153 というように、いちいち「名前」という行を作る必要があるっぽいです。 面倒臭いので、DSUM関数より#1さんの方法の方が適切と思います。