简介将数据库中符合条件的记录的字段列中的数字的和。使用它可以对数据进行多条件累加,这种方式可以使条件的修改变得方便,因此,相对于SUM和SUMIFS函数,DSUM更加灵活。
语法DSUM(database,field,criteria)
Database构成列表或数据库的单元格区域。数据库是包含一组相关数据的列表,其中包含相关信息的行为记录,而包含数据的列为字段。列表的第一行包含着每一列的标志项。
Field 指定函数所使用的数据列。列表中的数据列必须在第一行具有标志项。Field 可以是文本,即两端带引号的标志项,如“树龄”或“产量”;此外,Field 也可以是代表列表中数据列位置的数字:1 表示第一列,2 表示第二列,等等。
Criteria 为一组包含给定条件的单元格区域。可以为参数 criteria 指定任意区域,只要它至少包含一个列标志和列标志下方用于设定条件的单元格。
注解可以为参数 criteria 指定任意区域,只要此区域包含至少一个列标签,并且列标签下方包含至少一个用于指定条件的单元格。
例如,如果区域 G1:G2 在 G1 中包含列标签 Income,在 G2 中包含数量 ¥10,000,可将此区域命名为 MatchIncome,那么在数据库函数中就可使用该名称作为条件参数。
虽然条件区域可以位于工作表的任意位置,但不要将条件区域置于列表的下方。如果向列表中添加更多信息,新的信息将会添加在列表下方的第一行上。如果列表下方的行不是空的,Microsoft Excel 将无法添加新的信息。
确定条件区域没有与列表相重叠。
若要对数据库中的一个完整列执行操作,请在条件区域中的列标签下方加入一个空行。DSUM函数实例
示例select 品牌,规格型号,花纹,
sum(iif(操作类别= '买 ',数量,1)) AS 进货数量,
sum(iif(操作类别= '买 ',进价金额,0)) AS 进货金额,
sum(iif(操作类别= '卖 ',数量,0)) AS 销售数量
into a
from b
group by 品牌,规格型号,花纹条件事例要点
由于在单元格中键入文本或值时等号用来表示一个公式,因此 Microsoft Excel 会评估您键入的内容;不过,这可能会产生意外的筛选结果。为了表示文本或值的相等比较运算符,应在条件区域的相应单元格中键入作为字符串表达式的条件:
=''=条目''
其中条目是要查找的文本或值。例如:
="=刘英玫"
=刘英玫
="=3000"
=3000
Excel 在筛选文本数据时不区分大小写。但是,您可以使用公式来执行区分大小写的搜索。有关示例,请参阅使用区分大小写的搜索筛选文本。以下各节提供了复杂条件的示例。
一列中有多个条件布尔逻辑:(销售人员 = "刘英玫" OR 销售人员 = "郑建杰")
要查找满足“一列中有多个条件”的行,请直接在条件区域的单独行中依次键入条件。
在下面的数据区域 (A6:C10) 中,条件区域 (B1:B3) 显示“销售人员”列 (A8:C10) 中包含“刘英玫”或“郑建杰”的行。
1
类型
销售人员
销售额
2
=刘英玫
3
=郑建杰
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
多列中有多个条件,其中所有条件都必须为真
布尔逻辑:(类型 = "农产品" AND 销售额 > 1000)
要查找满足“多列中有多个条件”的行,请在条件区域的同一行中键入所有条件。
在下面的数据区域 (A6:C10) 中,条件区域 (A1:C2) 显示“类型”列中包含“农产品”并且“销售额”列 (A9:C10) 中值大于 ¥1,000 的所有行。
1
类型
销售人员
销售额
2
=农产品
>1000
3
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
多列中有多个条件,其中所有条件都必须为真
布尔逻辑:(类型 = "农产品" OR 销售人员 = "刘英玫")
要查找满足“多列中有多个条件,其中所有条件都必须为真”的行,请在条件区域的不同行中键入条件。
在下面的数据区域 (A6:C10) 中,条件区域 (A1:B3) 显示“类型”列中包含“农产品”或“销售人员”列 (A8:C10) 中包含“刘英玫”的所有行。
1
类型
销售人员
销售额
2
=农产品
3
=刘英玫
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
多个条件集,其中每个集包括用于多个列的条件
布尔逻辑:( (销售人员 = "刘英玫" AND 销售额 >3000) OR (销售人员 = "郑建杰" AND 销售额 > 1500) )
要查找满足“多个条件集,其中每个集包括用于多个列的条件”的行,请在单独的行中键入每个条件集。
在下面的数据区域 (A6:C10) 中,条件区域 (B1:C3) 显示“销售人员”列中包含“刘英玫”并且“销售额”列中值大于 ¥3,000 的行,或者显示“销售人员”列中包含“郑建杰”并且“销售额”列 (A9:C10) 中值大于 ¥1,500 的行。
1
类型
销售人员
销售额
2
=刘英玫
>3000
3
=郑建杰
>1500
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
多个条件集,其中每个集包括用于一个列的条件
布尔逻辑:( (销售额 > 6000 AND 销售额 < 6500 ) OR (销售额 < 500) )
要查找满足“多个条件集,其中每个集包括用于一个列的条件”的行,请在多个列中包括同一个列标题。
在下面的数据区域 (A6:C10) 中,条件区域 (C1:D3) 显示“销售额”列 (A8:C10) 中值在 6,000 和 6,500 之间以及值小于 500 的行。
1
类型
销售人员
销售额
销售额
2
>6000
<6500
3
<500
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
查找共享某些字符而非其他字符的文本值的条件
要查找共享某些字符而非其他字符的文本值,请执行下面一项或多项操作:
键入一个或多个不带等号 (=) 的字符,以查找列中文本值以这些字符开头的行。例如,如果键入文本“刘”作为条件,则 Excel 将找到“刘英玫”、“刘小龙”和“刘维国”。使用通配符。可以使用下面的通配符作为比较条件。
??(问号)
任意单个字符
例如,sm?th 可找到“smith”和“smyth”
*(星号)
任意数量的字符
例如,*east 可找到“Northeast”和“Southeast”
~(波形符)后跟 ?、* 或 ~
问号、星号或波形符
例如,“fy91~?”可找到“fy91?”
在以下数据区域 (A6:C10) 中,条件区域 (A1:B3) 显示“类型”列中以“肉”开头的行或“销售人员”列 (A7:C9) 中第二个字符为“建”的行。
1
类型
销售人员
销售额
2
肉
3
=?建*
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
将公式结果用作条件
可以将公式的计算结果作为条件使用。记住下列要点:
公式必须计算为 TRUE 或 FALSE。因为您正在使用公式,请像您平常那样输入公式,而不要以下列方式键入表达式:=''=条目''
不要将列标签用作条件标签;请将条件标签保留为空,或者使用区域中并非列标签的标签(在以下示例中,是“计算的平均值”和“精确匹配”)。如果在公式中使用列标签而不是相对单元格引用或区域名称,Excel 会在包含条件的单元格中显示错误值 #NAME?或 #VALUE!。您可以忽略此错误,因为它不影响区域的筛选。
用作条件的公式必须使用相对单元格引用来引用第一行中相应的单元格(在下面的示例中,是 C7 和 A7)。公式中的所有其他引用必须是绝对单元格引用。下列各子部分提供将公式结果用作条件的具体示例。
筛选大于数据区域中所有值的平均值的值在以下数据区域 (A6:D10) 中,条件区域 (D1:D2) 显示“销售额”列 (C7:C10) 中值大于所有“销售额”值的平均值的行。在公式中,“C7”引用数据区域 (7) 的第一行的筛选列 (C)。
1
类型
销售人员
销售额
计算的平均值
2
=C7>AVERAGE($C$7:$C$10)
3
4
5
6
类型
销售人员
销售额
7
饮料
方建文
¥5122
8
肉类
刘英玫
¥450
9
农产品
郑建杰
¥6328
10
农产品
刘英玫
¥6544
使用区分大小写的搜索筛选文本
在数据区域 (A6:D10) 中,通过使用 EXACT 函数执行区分大小写的搜索,条件区域 (D1:D2) 显示“类型”列 (A10:C10) 中包含“Produce”的行。在公式中,“A7”引用数据区域 (7) 中首行的筛选列 (A)。
1
类型
销售人员
销售额
精确匹配
2
=EXACT(A7, "Produce")
3
4
5
6
类型
销售人员
销售额
7
Beverages
方建文
¥5122
8
Meat
刘英玫
¥450
9
produce
郑建杰
¥6328
10
Produce
刘英玫
¥6544