語法
DSUM(database, field, criteria)
Database 構成列表或資料庫的單元格區域。資料庫是包含一組相關數據的列表,其中包含相關信息的行為記錄,而包含數據的列為欄位。列表的第一行包含著每一列的標誌項。
Field 指定函式所使用的數據列。列表中的數據列必須在第一行具有標誌項。Field 可以是文本,即兩端帶引號的標誌項,如“樹齡”或“產量”;此外,Field 也可以是代表列表中數據列位置的數字:1 表示第一列,2 表示第二列,等等。
Criteria為一組包含給定條件的單元格區域。可以為參數 criteria 指定任意區域,只要它至少包含一個列標誌和列標誌下方用於設定條件的單元格。
註解
可以為參數 criteria 指定任意區域,只要此區域包含至少一個列標籤,並且列標籤下方包含至少一個用於指定條件的單元格。
例如,如果區域 G1:G2 在 G1 中包含列標籤 Income,在 G2 中包含數量 ¥10,000,可將此區域命名為 MatchIncome,那么在資料庫函式中就可使用該名稱作為條件參數。
雖然條件區域可以位於工作表的任意位置,但不要將條件區域置於列表的下方。如果向列表中添加更多信息,新的信息將會添加在列表下方的第一行上。如果列表下方的行不是空的,Microsoft Excel 將無法添加新的信息。
確定條件區域沒有與列表相重疊。
若要對資料庫中的一個完整列執行操作,請在條件區域中的列標籤下方加入一個空行。
示例
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 |