「Excelの解らないところがるので教えてほしい」と頼まれたので見せてもらったら、DCount 関数が使ってあった。「Access と知見では理解できない」ということは解ったのだが‥‥ 帰宅し、Excel2003 のヘルプを調べた。
DCOUNT
リストまたはデータベースの指定された列を検索し、条件を満たすレコードの中で数値が入力されているセルの個数を返します。
フィールド は省略可能な引数です。フィールド を省略すると、データベース全体から条件を満たすレコードが検索され、その中で、数値が入力されているセルの個数が返されます。書式
DCOUNT(Database,フィールド,Criteria)
Database リストまたはデータベースを構成するセル範囲を指定します。Database は、行 (レコード) と列 (フィールド) にデータを関連付けたリストです。リストの先頭の行には、各列の見出しが入力されている必要があります。
フィールド 関数の中で使用する列を指定します。フィールドには、半角の二重引用符 (") で囲んだ "樹齢" や "歩どまり" などのような列見出し、またはリストでの列の位置を示す番号 (この場合は二重引用符で囲みません) を入力します。たとえば、先頭の列を示す場合は 1 を、2 番目の列を示す場合は 2 を入力します。
Criteria 指定した条件が設定されているセル範囲を指定します。列見出しと検索条件を指定するセルが少なくとも 1 つずつ含まれている場合は、Criteria に任意のセル範囲を指定することができます。使用例
A B C D E F 1 名前 樹高 樹齢 歩どまり 利益 樹高 2 ="=りんご" >10 <16 3 ="=梨" 4 名前 樹高 樹齢 歩どまり 利益 5 りんご 18 20 14 105.00 6 梨 12 12 10 96.00 7 さくらんぼ 13 14 9 105.00 8 りんご 14 15 10 75.00 9 梨 9 8 8 76.80 10 りんご 8 9 6 45.00
数式
- =DCOUNT(A4:E10,"樹高",A1:F2)
- 樹高が 10 〜 16 のりんごの木のレコードを検索し、条件を満たすレコードの "樹齢" フィールドに入力されている数値の個数を求めます (1)
- =DCOUNTA(A4:E10,"利益",A1:F2)
- 樹高が 10 〜 16 のりんごの木のレコードを検索し、条件を満たすレコードの "利益" フィールドにある空白でないセルの個数を求めます (1)
ヘルプのヘルプ !!!
このヘルプの DCOUNT の説明が理解できない。
「"樹齢" フィールドに入力されている数値の個数」とあるが、「"樹高" フィールドに入力されている数値の個数」ではないの?
念のためハードコピーを載せた。Microsoft Office Online も同じだ。
データを適当に入れ替えても、“樹齢”の個数にならない。因みに、エクセルの勉強部屋 > データベース関数 では“フィールド”の個数となっている。
Accessの例
DCount(expr, domain, [criteria])
上記エクセルの例を真似ると、
DCount([樹齢], "A4:E10", (([樹高] > 10) and ([樹高] < 16)))
となる。(未検証)