標題:
利用日期來加總當日金額出錯
[打印本頁]
作者:
coafort
時間:
2022-9-22 14:35
標題:
利用日期來加總當日金額出錯
請問各位大大
我要計算的欄位是BG欄位
判斷是AO欄位
我的計算式如下:
=SUMPRODUCT((AO3:AO39=TODAY())*BG46:BG82)
但是我AO欄位是用計算式顯示日期
=IF(AS3="","",IF(AO3="",TEXT(TODAY(),"YYYY/mm/dd"),AO3))
導致SUMPRODUCT無法判斷日期
請問大大有方法嗎
謝謝
作者:
hcm19522
時間:
2022-9-23 09:57
=SUMPRODUCT((AO3:AO39-TODAY()=0)*BG46:BG82)
作者:
coafort
時間:
2022-9-23 10:09
回復
2#
hcm19522
報告大大
不行
結果是0
因為我的日期不是手動輸入的
是公式
導致SUMPRODUCT無法判斷AO欄位日期(因為是公式)
請問大大有解方嗎?
謝謝大大
作者:
Andy2483
時間:
2022-9-23 15:55
回復
3#
coafort
謝謝前輩發表此主題
請前輩試試看
1.AO3:AO39格式設為yyyy/m/d;@
2.AO3設公式 =IF(AS3="","",TODAY())
3.下刷到AO39
[attach]35230[/attach]
[attach]35231[/attach]
[attach]35232[/attach]
今日習得=SUMPRODUCT()
Option Explicit
Sub TEST_1()
'[AS3:AS39]變更 觸發
'讓[AO3:AO39]今天日期的AO底色不同,對應[BG46:BG82]底色不同也不同
'只總計[AO3:AO39]是今日的,對應[BG46:BG82]數值在BG2
Application.ScreenUpdating = False
Dim i
[BG2] = ""
For i = 3 To 39
If Cells(i, "AO") = Date Then
Cells(i, "AO").Interior.ColorIndex = 17
Cells(i, "BG").Item(44, 1).Interior.ColorIndex = 17
[BG2] = [BG2] + Cells(i, "BG").Item(44, 1)
Else
Cells(i, "AO").Interior.ColorIndex = xlNone
Cells(i, "BG").Item(44, 1).Interior.ColorIndex = xlNone
End If
Next
End Sub
Sub TEST_2()
'[AS3:AS39]變更 觸發
'讓[AO3:AO39]今天日期的AO底色不同,對應[BG46:BG82]底色不同也不同
'只總計[AO3:AO39]是今日的,對應[BG46:BG82]數值在BG2
Application.ScreenUpdating = False
Dim i As Range, Y
Set Y = CreateObject("Scripting.Dictionary")
[BG2] = ""
For Each i In Range([AO3], [AO82])
Y.Add i, i.Item(44, 19)
If i = Date Then
i.Interior.ColorIndex = 35
i.Item(44, 19).Interior.ColorIndex = 35
[BG2] = [BG2] + Y(i)
Else
i.Interior.ColorIndex = xlNone
i.Item(44, 19).Interior.ColorIndex = xlNone
End If
Next
End Sub
Sub TEST_3()
'[AS3:AS39]變更 觸發
'讓[AO3:AO39]今天日期的AO底色不同,對應[BG46:BG82]底色不同也不同
'只總計[AO3:AO39]是今日的,對應[BG46:BG82]數值在BG2
Application.ScreenUpdating = False
Dim R&, Y, Z As Range, xR As Range
Set Y = CreateObject("Scripting.Dictionary")
[BG2] = ""
Set Z = Range([AO3], [BG82])
Z.Interior.ColorIndex = xlNone
For Each xR In Z
Y(xR.Value) = Y(xR.Value) + xR.Item(44, 19).Value
If xR = Date Then
xR.Interior.ColorIndex = 38
xR.Item(44, 19).Interior.ColorIndex = 38
End If
Next
[BG2] = Y(Date)
End Sub
複製代碼
作者:
coafort
時間:
2022-9-24 07:41
回復
4#
Andy2483
謝謝大大
比較需要可以不用按篩選
直接自動判斷的
作者:
hcm19522
時間:
2022-9-24 09:56
回復
3#
coafort
=SUMPRODUCT(IFERROR(AO3:AO39-TODAY()=0,)*BG46:BG82)
作者:
coafort
時間:
2022-9-24 12:16
回復
6#
hcm19522
報告大大
出現#name?錯誤
謝謝大大
作者:
准提部林
時間:
2022-9-24 16:07
=SUMPRODUCT(Isnumber(0/(AO3:AO39-TODAY()=0))*BG46:BG82)
作者:
coafort
時間:
2022-9-24 17:43
本帖最後由 coafort 於 2022-9-24 17:51 編輯
回復
8#
准提部林
謝謝大大
可以用
但是
如果欄位是空白
會出現#VALUE!
因為我BG46:BG82是用=IF(AS41="","",...............
如果改為=IF(AS41="",0,...............
是可以解
那如果要保留用=IF(AS41="","",...............
該怎麼修改呢?
感恩大大
作者:
准提部林
時間:
2022-9-24 19:17
回復
9#
coafort
=SUMPRODUCT(--Isnumber(0/(AO3:AO39-TODAY()=0)),BG46:BG82)
作者:
coafort
時間:
2022-9-25 06:40
回復
10#
准提部林
哇~
版大大真的是神人也
太強大了
真是太太太感恩大大了:D
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)