[英]average with multiple conditions on excel
我一般都會問Python或VBA問題,但在過去的4.5小時里我一直很煩我,我需要它來完成一個宏,我只是得到div / 0錯誤。
在excel中,我有五列:1。項目進入隊列的日期(A)
2.物品進入隊列的時間(B)
3.物品離開隊列的日期(C)
4.物品離開隊列的時間(D)
5.物品在隊列中的時間(E)
我需要昨天16:00到16:00之間輸入和離開隊列的項目的平均時間。 還要忽略<1以下的數字(因為如果某個項目已超過24小時,則默認值為負)。
我試過嘗試過這個沒有結果:(
= AVERAGEIFS(E1:E4,A1:A4, “今日=() - 1”,B1:B4, “> 16:00”,C1:C4, “今日=()”,D1:D4,“<16: 00" )
任何想法,將不勝感激! 提前致謝 :)
你的公式是這樣說的:
=AVERAGEIFS(E1:E4,A1:A4,"=today()-1",B1:B4,">16:00",C1:C4,"=today()",D1:D4,"<16:00")
取E1的平均值:E4如果......
- A1:A4相當於字符串“= today() - 1”
- B1:B4相當於字符串“> 16:00”
- C1:C4相當於字符串“= today()”
- D1:D4相當於字符串“> 16:00”
你想要它說的是:
取E1的平均值:E4如果......
- A1:A4相當於公式
=today()-1
- B1:B4小於16小時
- C1:C4相當於公式
=today()
- D1:D4小於16小時
讓我們首先解決2和4。
在Excel中,1天(24小時)= 1.時間以十進制值的形式存儲為一天的百分比:
1天= 1 1天= 24小時1小時= 1/24 16小時= 16/24 = 2/3
因此,不要使用B1:B4,">16:00"
,而應將公式重寫為:
B1:B4,">"&2/3
&
連接大於號,2/3將給出相當於16:00的小數值。 最后你會得到一個等於“> .6666666666”的字符串
(您也可以使用B1:B4,">.6666666666666"
如果你願意的話)
對於第1項和第3項,您根本不需要使用引號。 因此,而不是A1:A4,"=today()-1"
您可以使用以下內容:
A1:A4,today()-1
C1:C4,today()
總而言之,以下公式應該有效:
=AVERAGEIFS(E1:E4,A1:A4,today()-1,B1:B4,">"&2/3,C1:C4,today(),D1:D4,"<"&2/3)
如果您正在尋找“即進入和離開16:00昨天和今天16:00之間隊列中的項目”這是不可能的,一些那些進入隊列今日 (或離開隊列昨天)? 如果是這樣,你肯定需要檢查今天輸入的物品嗎? 使用AVERAGEIFS
函數很難做到這一點 - 使用像這樣的“數組公式”可能更容易:
=AVERAGE(IF(A1:A4+B1:B4>=TODAY()-1/3,IF(C1:C4+D1:D4<TODAY()+2/3,E1:E4)))
用CTRL + SHIFT + ENTER確認
我假設公式不必明確處理您的負值,因為那些只會出現在那里超過24小時的項目,IF函數將排除那些...
如果你想對AVERAGEIFS做同樣的事情,你需要創建兩個額外的列,添加進入/退出日期/時間,例如,如果列G是列A和B的總和,列H是列C和列的總和你可以使用這個版本
=AVERAGEIFS(E1:E4,G1:G4,">="&TODAY()-1/3,H1:H4,"<"&TODAY()+2/3)
請注意,我使用> =和<故意避免在幾天內重復計算/不計數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.