相信大家在平時工作中也會經常用到SUMIFS函數來進行多條件求和,對此函數的參數我就不再過多的叙述,今天我們來看如何實現根據條件自動選擇求和區域,來得到我們想要的數據。
需求:選擇不同的産品和日期,求和得到對應的出貨數量
首先,我來試着寫出SUMIFS寫出求和公式如下
=SUMIFS(F:F,A:A,D24,B:B,"出貨*")
對于SUMIFS 函數,除第一個參數以外的其他參數相對于來說比較容易,那我們就來攻克第一個參數。
通過分析2月8日對應的是F列,如果用數字表達就是第6列。
我們可以通過MATCH函數來實現查找。
MATCH函數說明:返回指定數值在指定數組區域中的位置
公式:=MATCH(E23,1:1,0)
通過函數MATCH找到對應的列數以後,我們需要實現F:F這樣的格式。
這時我們需要用到ADDRESS函數
ADDRESS函數說明:按照給定的行号和列标,建立文本類型的單元格地址引用。
公式:=ADDRESS(1,MATCH(E23,1:1,0),4)
通過如上公式我們得到了F1
我想大家應該想到了怎樣把F後面的這個1給去掉,用LEFT,MID,SUBSTITUTE等函數都可以,這裡我推薦用SUBSTITUTE
SUBSTITUTE函數說明: 在文本字符串中用 new_text 替代 old_text
公式:=SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")
我們用空字符串來替換1就達到了我們的目的。
下面我們還要拼接字符串也就是用&來拼接來實現F:F
公式:=SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")&":"&SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")
這樣就得到了我們想要的結果,但是我們帶入到SUMIFS公式時卻會出錯
這是因為我們沒有轉化為單元格區域,上面的公式得到的F:F隻是字符串類型,這時我們還需要用到一個函數INDIRECT
INDIRECT函數說明:返回由文本字符串指定的引用
公式:=SUMIFS(INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")&":"&SUBSTITUTE(ADDRESS(1,MATCH(E23,1:1,0),4),1,"")),A:A,D24,B:B,"出貨*")
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!