文本函數實戰系列,
第十一期-文本型日期導緻的SUMIFS求和為0怎麼處理
我們來聊一下關于大家比較熟悉的求和。
最近在設計模闆,就遇到了問題,想着分享給大家!
直接通過一個圖讓看一下問題:
按照選擇的開始日期、結束日期、商品名稱三個條件,求出對應的小時總額!
公式:=SUMIFS(F:F,E:E,J3,A:A,">="&J1,A:A,"<="&J2)
從圖中我們可以看出有對應的數據,但是合計卻是0
問題在哪裡呢?根據經驗判斷,我的銷售數據是從系統導出的
一般系統數據庫設計的時候,經常會把日期使用文本格式存儲
但是導出結果為文本型,所以合計求不出來!
既然知道是文本型導緻的,那麼我們怎麼處理呢?
方案1:轉為常規日期格式這種方法适合數據量較少或者自己可以後續加工的情況,不太适合數據量大和
模闆設計。
其中我們可以使用技巧一次性換和輔助列的方法。
> 技巧分列法
動畫演示:日期列-數據-分列-下一步-下一步-日期-完成
> 輔助列法
這種方式,可以避免破壞數據源,對數據源有要求的情況下,是不錯的選擇!
添加輔助列,我們隻要使用--原日期,就可以把文本型日期轉為标準日期
同步注意修改原公式,日期列修改為轉化後的A列
方案2:利用文本型标準格式,遍曆處理
如果我們的數據由第三方粘貼,一般都是模闆的情況,此時輔助列和分列法都不太實用,我們就要思考其他方式,在實在中,我還是找到了不錯的解決方案,采用的方式其實就是逐個日期比較。
具體我們看一下處理過程:
公式:=SUMPRODUCT(SUMIFS(E:E,D:D,I3,A:A,TEXT(ROW(INDIRECT(I1&":"&I2)),"yyyy-mm-dd")))
這裡的變化部分,也是最核心的部分就是TEXT(ROW(INDIRECT(I1&":"&I2)),"yyyy-mm-dd"))
其中:ROW(INDIRECT(I1&":"&I2)) 利用日期是特殊的數值這個特性,生成了每天一個日期對應的數值
具體如圖:
通過text這個函數,我們可以把數值格式化為日期格式
具體如圖:
其實相對于,用期間的日期都去找一下,如果有就求和,最後形成了一組值,每天一個
最後通過SUMPRODUCT把區間内容每天的合計再求和
具體如圖:
這裡本質上是數組公式,最重要的其實是解決問題的思路,我也是思考了好久才有這種解決方案。
同一個問題,我們在不同的場景下可能需要不同的方案去應對,足夠多的知識儲備,才能得心應手!
EXCEL辦公實戰,易辦公,早下班,歡迎關注我們,下次不迷路
,