簡體   English   中英

excel上具有多個條件的平均值

[英]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如果......

  1. A1:A4相當於字符串“= today() - 1”
  2. B1:B4相當於字符串“> 16:00”
  3. C1:C4相當於字符串“= today()”
  4. D1:D4相當於字符串“> 16:00”

想要它說的是:

取E1的平均值:E4如果......

  1. A1:A4相當於公式=today()-1
  2. B1:B4小於16小時
  3. C1:C4相當於公式=today()
  4. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM