答案1
首先要弄清楚您的日期是文字還是由 Excel 格式化以顯示為日期的數字。這是一個非常重要的區別,您需要後者,因為它允許您使用更多內建公式的 Excel。一些可能的測試是
- =ISTEXT(A2)
- =IS編號(A2)
- 將儲存格格式變更為常規,看看顯示的內容是否有變化
為了實現此解決方案,您的日期將被假定為數字。如果不是,有很多關於如何將文字日期轉換為數字/Excel 格式的問題/答案。
理解 Excel 中的時間/日期
Excel 將日期儲存為整數。它是自 1900 年 1 月 0 日以來的天數。因此,Excel 中的所有日期都只是整數,並應用了一些特殊格式,以我們習慣看到的某種方式顯示它們。另一個時間則以一天的百分比存儲,或者如果您喜歡一天的小數。 0.5代表半天或午餐。因此,如果您只需要從混合時間日期中查找日期,則只需去掉整數部分。相反,如果您只需要時間,則只需去掉小數部分即可。
選項 1 求和
SUMPRODUCT
是執行類似數組計算的常規函數。因此,您希望將範圍引用限制為粗略的數據,而不是使用完整的列/行引用。如果你最終選擇了後者,你的機器可能會因為對空白單元格進行過多無用的計算而陷入困境。
=SUMPRODUCT((INT($A$2:$A$12)=TODAY())*$B$2:$B$12)
注意TODAY()
是一個易失性函數。這意味著每次工作表上的某些內容發生變化時,即使它不影響函數,它也會重新計算。非揮發性函數(大多數常規函數)僅在發生影響它們的變更時重新計算。因此,如果將易失性函數複製到許多單元格,則每次更改/輸入工作表上的內容時,計算機都會陷入困境。
選項 2 - SUMIFS
SUMIFS
是一個常規公式,您可以放心地使用完整的列引用,也是我處理這種情況的首選選項。公式採用以下形式:
SUMIFS(Range to be summed, range for condition 1, Condition 1 check, ..., range for condition n, Condition n check)
因此,在您的情況下,您想要檢查一天的開始和一天的結束,以便您的公式必須進行條件檢查,並且最終應該看起來像下面這樣。
=SUMIFS($B$2:$B$12,$A$2:$A$12,">="&TODAY(),$A$2:$A$12,"<"&TODAY()+1)