我覺得它更容易用一個例子來說明我的問題:DSUM:如何使用大括號來定義標準範圍?
基於上面的表格,公式=DSUM(A4:D8,B4,A1:A2)
作品上,返回20
爲什麼=DSUM(A4:D8,B4,{"OrderID";">10567"})
不起作用? (它返回#VALUE!)
我覺得它更容易用一個例子來說明我的問題:DSUM:如何使用大括號來定義標準範圍?
基於上面的表格,公式=DSUM(A4:D8,B4,A1:A2)
作品上,返回20
爲什麼=DSUM(A4:D8,B4,{"OrderID";">10567"})
不起作用? (它返回#VALUE!)
根據關於this page的D函數的說法,我認爲您需要將標準放在單獨的單元格中。
編輯:如果在公式中包含標準的目標是爲了使其更具可讀性,您可以改用named ranges。
編輯2:迴應您的意見。
由於DSUM()
函數的工作原理,無法做到您想要的(包括公式中的條件)。看看在documentation for DSUM
並與VLOOKUP
比較:
的DSUM函數的語法是:
DSum(range, field, criteria)
範圍是要應用的條件對單元格的範圍。
字段是對值進行求和的列。您可以指定列表中列的數字位置或雙引號中的列標籤。
標準是範圍的單元格包含您的標準。
注意區別:
爲VLOOKUP函數的語法是:
VLookup(value, table_array, index_number, not_exact_match)
值是在table_array第一列到搜索的值。
table_array是兩個或多個列數據按升序排序。
index_number是table_array的列號從必須被返回的匹配值。第一列是1
由於DSUM
正在尋找單元格區域包含標準的,沒有什麼可以做,以避免將它只是 - 一個單元格區域。
我認爲你可以做的最好的是將你的不同標準定義爲命名範圍,這將使得根據你想要在公式中做什麼來引用不同的標準變得更容易。不幸的是,如果常規SUM
功能對您來說速度不夠快,那麼您可以做的其他事情就不多了 - 您需要必須在單元格中指定要使用DSUM
的條件。
從DSUM文檔
標準是單元格區域的是 包含您 指定的條件。只要 至少包含一個列標籤並且至少包含一個低於列 標籤的單元格,您可以在其中爲該列指定條件 ,您可以使用 標準參數的任何範圍。
VLOOKUP使用一組值。
table_array必需。包含數據的單元格的範圍爲 。您可以使用 對範圍的引用(對於 示例,A2:D8)或範圍名稱。
DSUM太爛了,試試這個: = SUMPRODUCT((A5:A8> 10569)*(B5:B8))
一般來說,我勸你不要硬編碼這樣的東西,它的 「壞習慣」 ,但只要你喜歡。
您可以使用SUMIF(A5:A8;> 10567; D5:D8)。一個非常有用和使用不足的功能。
第二個參數可能是帶有條件的另一個單元的REF。
你確定嗎?爲什麼它甚至在VLOOKUP公式中也能正常工作? = VLOOKUP(「x」,{1,「a」; 2,「b」;「x」,「c」},2,0)返回「c」 – jbochi 2009-12-19 11:53:24
謝謝,但目標不是讓它變成更具可讀性。我需要在公式中定義標準,因爲我需要以多種方式彙總數據,而且我不想爲所有內容創建單獨的單元格。 – jbochi 2009-12-19 11:55:01