在Excel中,有一類函數稱為資料庫函數,是指當需要分析數據清單中的數值是否符合特定條件時,使用資料庫工作表的函數。Microsoft Excel共有12個資料庫函數用於對存儲在數據清單或資料庫中的數據進行分析,這些函數的統一名稱為Dfunctions,也稱為D函數,每個函數均有3個相同的參數:database、field和criteria。其中參數database為工作表上包含數據清單的區域;field為需要匯總列的標誌;criteria為工作表上包含指定條件的區域。
一、Dsum。
(一)功能:求滿足給定條件的資料庫中記錄欄位(列)數據的和。
語法結構:=Dsum(列表或資料庫區域,返回值所在的相對列數或列標題的單元格引用或列標題,求和條件)。
注意事項:
1、第一個參數「列表或資料庫區域」必須包含列標題。
2、當第二個參數用「列標題」作為返回依據時,必須包含在雙引號("")中,如"月薪"、"婚姻"等。
3、可以為參數「求和條件」指定任意區域,只要此區域至少包含一個列標籤,並且列標籤下方包含至少一個用於指定條件的單元格。
(二)、應用技巧。
1、單欄位單條件求和。
目的:根據「性別」統計總「月薪」。
方法:在目標單元格中輸入公式:=DSUM(D2:G24,"月薪",I2:I3)。
解讀:1、「資料庫區域」及「求和條件」必須是D2:G24 和I2:I3,不能是D3:G24及I3,因為資料庫函數(D函數)在使用時必須包含列標題。
2、可以使用公式:=DSUM(D2:G24,4,I2:I3)來實現上述需求,因為「月薪」在資料庫區域D2:G24中的相對列數為4。
3、可以使用公式:=DSUM(D2:G24,G2,I2:I3)來實現上述需求,因為「月薪」就是單元格地址G2的值。
4、在實際的應用中,使用「列標題」、「列數」還是「單元格地址」引用,完全可以根據自己的愛好來應用。
5、單欄位單條件求和的功能相當於Sumif函數,公式為:=SUMIF(D3:D24,I3,G3:G24)。
2、單欄位多條件求和。
目的:統計「學歷」為「大本」、「大專」、「高中」員工的總「月薪」。
方法:在目標單元格中輸入公式:=DSUM(F2:G24,"月薪",I2:I5)。
解讀:1、可以使用公式:=DSUM(F2:G24,2,I2:I5)或=DSUM(F2:G24,G2,I2:I5)來完成上述功能。
2、上述功能還可以用數組公式:=SUM(SUMIF(F3:F24,{"大本","大專","高中"},G3:G24))來完成。
3、多欄位單條件求和。
目的:按「性別」統計相應「學歷」的總「月薪」。
方法:在目標單元格中輸入公式:=DSUM(D2:G24,"月薪",I2:J3)。
解讀:1、可以使用公式:=DSUM(D2:G24,4,I2:J3)或=DSUM(D2:G24,G2,I2:J3)來完成上述功能。
2、也可以使用Sumifs函數,公式為:=SUMIFS(G3:G24,D3:D24,I3,F3:F24,J3)
4、多欄位多條件求和。
目的:統計「年齡」>30歲,「學歷」為「大本、大專、高中」的總「月薪」。
方法:在目標單元格中輸入公式:=DSUM(C2:G24,5,I2:J5)。
解讀:1、可以使用=DSUM(C2:G24,"月薪",I2:J5)或=DSUM(C2:G24,G2,I2:J5)來完成上述功能呢。
2、也可以使用數組公式:=SUM(SUMIFS(G3:G24,C3:C24,I3,F3:F24,{"大本","大專","高中"}))來完成。
二、Daverage。
(一)功能:計算滿足給定條件的列表或資料庫的列中數值的平均值。
語法結構:=Daverage(列表或資料庫區域,返回值所在的相對列數或列標題的單元格引用或列標題,求平均值條件)
注意事項:
同Dsum函數注意事項。
(二)、應用技巧。
1、單欄位單條件求平均值。
目的:按「性別」統計平均「月薪」。
方法:在目標單元格中輸入公式:=DAVERAGE(D2:G24,"月薪",I2:I3)。
解讀:1、也可以使用公式:=DAVERAGE(D2:G24,4,I2:I3)或=DAVERAGE(D2:G24,G2,I2:I3)來實現上述需求。
2、「單欄位單條件」下的功能相當於Averageif的功能,公式為:=AVERAGEIF(D3:D24,I3,G3:G24)。
2、單欄位多條件下的平均值。
目的:統計「學歷」為「大本、大專、高中」的平均「月薪」。
方法:在目標單元格中輸入公式:=DAVERAGE(F2:G24,2,I2:I5)。
解讀:1、可以使用公式:=DAVERAGE(F2:G24,"月薪",I2:I5)或=DAVERAGE(F2:G24,G2,I2:I5)來實現。
2、還可以用數組公式:=AVERAGE(AVERAGEIF(F3:F24,{"大本","大專","高中"},G3:G24))來實現上述功能。
3、多欄位單條件下的平均值。
目的:按「性別」統計相應「學歷」下的平均「月薪」。
方法:在目標單元格中輸入公式:=DAVERAGE(D2:G24,G2,I2:J3)。
解讀:1、可以使用公式:=DAVERAGE(D2:G24,4,I2:J3)或=DAVERAGE(D2:G24,"月薪",I2:J3)來實現。
2、也可以用多條件平均值函數AverageIfs來實現,公式為:=AVERAGEIFS(G3:G24,D3:D24,I3,F3:F24,J3)。
4、多欄位多條件下的平均值。
目的:統計「年齡」>30歲,「學歷」為「大本、大專、高中」的平均「月薪」。
方法:在目標單元格中輸入公式:=DAVERAGE(C2:G24,5,I2:J5)。
解讀:1、可以使用公式:=DAVERAGE(C2:G24,"月薪",I2:J5)或=DAVERAGE(C2:G24,G2,I2:J5)來實現。
2、還可以使用數組公式:=AVERAGE(AVERAGEIFS(G3:G24,C3:C24,">30",F3:F24,{"大專","大本","高中"}))來實現。
三、Dcount。
(一)功能:從滿足給定條件的資料庫記錄的欄位(列)中,計算數值單元格數目。
語法結構:=DCount(列表或資料庫區域,返回值所在的相對列數或列標題的單元格引用或列標題,計數條件)。
注意事項:
同Dsum函數注意事項。
(二)應用技巧。
1、單欄位單條件計數。
目的:按「性別」統計「員工數」。
方法:在目標單元格中輸入:=DCOUNT(D2:G24,4,I2:I3)。
解讀:也可以使用單條件計數函數Countif來實現,公式為:=COUNTIF(D3:D24,I3)。
2、單欄位多條件計數。
目的:統計「學歷」為「大本、大專、高中」的總人數。
方法:在目標單元格中輸入公式:=DCOUNT(F2:G24,"月薪",I2:I5)。
解讀:也可以使用數組公式:=SUM(COUNTIF(F3:F24,{"大本","大專","高中"}))來實現。
四、Dcounta。
功能:對滿足指定條件的資料庫中記錄欄位(列)的非空單元格進行計數。
語法結構:=DCounta(列表或資料庫區域,返回值所在的相對列數或列標題的單元格引用或列標題,計數條件)。
注意事項:
同Dsum函數注意事項。
應用技巧:
請參閱Dcount應用技巧。
五、Dget。
應用技巧請參閱:《查詢引用,就用Dget函數,正向、反向、條件查詢均可實現》。
六、Dmax或Dmin。
(一)功能:返回滿足給定條件的資料庫記錄的欄位(列)中數據的最大或最小值。
語法結構:=Dmax(列表或資料庫區域,返回值所在的相對列數或列標題的單元格引用或列標題,求最值條件)
注意事項:
同Dsum函數注意事項。
(二)應用技巧。
1、單條件單欄位。
目的:按「性別」統計最高「月薪」和最低「月薪」。
方法:在相應的目標單元格中輸入公式:=DMAX(D2:G24,"月薪",I2:I3)和=DMIN(D2:G24,4,I2:I3)。
解讀:也可以用Maxifs和Minifs函數來實現,公式為:=MAXIFS(G3:G24,D3:D24,I3)和=MINIFS(G3:G24,D3:D24,I3)。
2、單欄位多條件。
目的:統計「學歷」為「大本、大專、高中」條件下的最高和最低「月薪」。
方法:在目標單元格中輸入公式:=DMAX(F2:G24,2,I2:I5)和=DMIN(F2:G24,2,I2:I5)。
解讀:也可以使用數組公式:=MAX(MAXIFS(G3:G24,F3:F24,{"大本","大專","高中"}))和=MIN(MINIFS(G3:G24,F3:F24,{"大本","大專","高中"}))來實現。
3、多欄位單條件。
目的:按照「性別」統計相應「學歷」下的最高和最低「月薪」。
方法:在目標單元格中輸入公式:=DMAX(D2:G24,"月薪",I2:J3)和=DMIN(D2:G24,"月薪",I2:J3)。
解讀:也可以使用公式:=MAXIFS(G3:G24,D3:D24,I3,F3:F24,J3)和=MINIFS(G3:G24,D3:D24,I3,F3:F24,J3)來實現。
4、多欄位多條件。
目的:統計「年齡」>30歲,「學歷」為「大本、大專、高中」的最高和最低「月薪」。
方法:在目標單元格中輸入公式:=DMAX(C2:G24,"月薪",I2:J5)和=DMIN(C2:G25,5,I2:J5)。
解讀:也可以使用數組公式:=MAX(MAXIFS(G3:G24,C3:C24,">30",F3:F24,{"大本","大專","高中"}))和=MIN(MINIFS(G3:G24,C3:C24,">30",F3:F24,{"大本","大專","高中"}))來實現上述需求。