2013-08-22 71 views
1

我通常會問Python或VBA的問題,但過去4.5小時我一直很討厭,我需要它來完成一個宏,而我只是得到了div/0錯誤。excel上有多個條件的平均值

在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, 「= TODAY()」,D1:D4,」 < 16:00" )

任何想法,將不勝感激提前:)謝謝

+0

對不起,我已編輯 – rodrigocf

+0

如果您添加A1:E4的內容,以便我們可以測試... – jmac

回答

2

你的公式是這樣說:

=AVERAGEIFS(E1:E4,A1:A4,"=today()-1",B1:B4,">16:00",C1:C4,"=today()",D1:D4,"<16:00") 

走大街E1的憤怒:E4如果...

  1. A1:A4相當於字符串 「=今日() - 1」
  2. B1:B4等同於字符串 「> 16:00」
  3. C1:D4是等價的字符串 「> 16:00」

想要什麼它說的是:C4 「= TODAY()」

  • D1是等價的字符串:

    取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小時=二十四分之一 16小時= 16/24 = 2/3

    所以而不是B1:B4,">16:00"你應該重寫公式:

    B1:B4,">"&2/3 
    

    &串接大於號,和2/3會給十進制值相當於16:00。最終你會得到一個字符串等於「> 0.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) 
    
  • +0

    @ jmac - 實際上「> 16:00」as一個標準將完全按照預期工作,它會和「>」&2/3 –

    +0

    @barryhoudini一樣高興地看到你在這裏 - 你會比我更清楚(某些時候)。感謝您的高舉。 – jmac

    +0

    非常出色!謝謝!我只是有一個問題,在F列我有4個類別(內部,外部,轉移和危險),我嘗試添加前3作爲標準,例如:F1:F4,「內部」,我只是得到DIV/0 ,有什麼想法爲什麼? – rodrigocf

    1

    如果您正在尋找「即進入和離開的隊列項目昨天16:00和今天16:00「是不是有可能今天有人進入排隊(或者昨天離隊)?如果是這樣,你還需要檢查今天輸入的項目,當然?要做到這一點是很難AVERAGEIFS功能 - 這可能是更容易使用的 「數組公式」 是這樣的:有CTRL + SHIFT證實

    =AVERAGE(IF(A1:A4+B1:B4>=TODAY()-1/3,IF(C1:C4+D1:D4<TODAY()+2/3,E1:E4)))

    + ENTER

    我假設公式不必明確處理你的負面價值,因爲這些只會發生在已經存在超過24小時的項目上,並且IF功能將無論如何將排除這些......

    如果您想要對AVERAGEIFS執行相同操作,您需要創建兩個附加列,其中添加了輸入/退出日期/時間,例如,如果G列是列A和B的總和和列的H是列的總和C和D可以使用此版本

    =AVERAGEIFS(E1:E4,G1:G4,">="&TODAY()-1/3,H1:H4,"<"&TODAY()+2/3)

    注意,我使用> =和<故意避免雙重計算/不計算幾天