在Excel中有一類函數(shù),長期被大多數(shù)人忽略,實際上在處理多條件查詢,求和,計數(shù)等方面,它們非常有用。有時候,用其他函數(shù)處理不了的問題,用它們很容易解決。它們就是數(shù)據(jù)庫函數(shù)。 數(shù)據(jù)庫函數(shù)介紹 Excel中的數(shù)據(jù)庫函數(shù)總共包括12個不同的函數(shù): 大部分函數(shù)都是在Excel原有的函數(shù)名字前面加了個字母“D”,例如DSUM。其中DGET除外。 上圖中我們也列出了這些函數(shù)的作用:基本上都與原型函數(shù)的作用相同。我們今天會分別介紹(除了最后的4個統(tǒng)計函數(shù),一般人用不到這幾個函數(shù))。 這些函數(shù)的語法基本上都是一樣的,類似于: =FUNCTIONNAME(database,field,criteria) 其中FUNCTIONNAME可以替換成任意一個上圖中的數(shù)據(jù)庫函數(shù)。 使用數(shù)據(jù)庫函數(shù)
所以這個公式: =DSUM(B2:D7,D2,B11:D13) 的意思就是對數(shù)據(jù)區(qū)域B2:D7的D列(列名為“金額”)求和,條件是B11:B13區(qū)域。 我們再來看這個條件區(qū)域: 首先我們看到,這個條件區(qū)域從列上來看跟數(shù)據(jù)區(qū)域是一樣的。具體條件就是針對這些列設(shè)置的: 數(shù)據(jù)庫函數(shù)條件規(guī)則1:處于同一行的條件必須同時成立。 數(shù)據(jù)庫函數(shù)條件規(guī)則2:處于不同行的條件有一個成立即可。 負(fù)責(zé)人叫張三豐,并且金額大于1000的那些項目金額和負(fù)責(zé)人叫張無忌的那些項目的金額之和。 我們可以用SUMIFS函數(shù)來解決: =SUMIFS(D3:D7,C3:C7,"張三豐",D3:D7,">1000")+SUMIFS(D3:D7,C3:C7,"張無忌") 比較麻煩,如果用數(shù)據(jù)庫函數(shù): =DSUM(B2:D7,D2,B11:D13) 就很簡單了。 其他函數(shù)的應(yīng)用也大同小異,見下圖: 通配符 使用"?"的效果類似,不再贅述。 需要注意的是,如果在某一行的某一字段使用了通配符,然后又有一個條件中用了這個字段,這個條件將被忽略。見下圖: DGET和DPRODUCT 在數(shù)據(jù)庫函數(shù)中,DGET和DPRODUCT函數(shù)略有不同,所以單獨介紹一下。 DGET 上圖中,我們利用DGET返回了項目負(fù)責(zé)人的姓名,條件是金額>1800的項目。 要注意下面兩點: 如果沒有滿足條件的記錄,那么DGET會返回#VALUE!的錯誤值: 如果找到了多條滿足條件的記錄,那么將返回#NUM!的錯誤 DPRODUCT 上圖中,記錄了不同項目的公式和單價,如果想要計算某個項目的總金額,就可以使用DPRODUCT函數(shù)了 取得本文模板文件的方式: |
|