2013-10-07 95 views
2

我試圖生成一個表,顯示在任何給定日期的任何給定狀態下有多少物品的計數。我的結果表格有一組日期下降的列A和列標題是各種狀態。與頭我的數據表的樣本是這樣的:計算滿足多個條件的行數

Product | Notice | Assigned | Complete | In Office | In Accounting 
    1 | 5/5/13 | 5/7/13 | 5/9/13 | 5/10/13 | 5/11/13 
    2 | 5/5/13 | 5/6/13 | 5/8/13 | 5/9/13 | 5/10/13 
    3 | 5/6/13 | 5/9/13 | 5/10/13 | 5/10/13 | 5/10/13 
    4 | 5/4/13 | 5/5/13 | 5/7/13 | 5/8/13 | 5/9/13 
    5 | 5/7/13 | 5/8/13 | 5/10/13 | 5/11/13 | 5/11/13 

如果我的輸出表都包含與狀態爲標題的第一列一組日期,我需要有多少行是在數給定的狀態,並且尚未轉換到下一個狀態,因此在通知列中,我將對通知日期爲< = X的行進行計數,並且分配的,完成的,辦公室內的,會計中的所有行都更大比X.

我用Sum(if(frequency(if聲明讓我真的關閉,但我覺得我需要在第二個IF內有AND聲明,如下所示=SUM(IF(FREQUENCY(IF(AND

這裏是我這是行不通的:

=SUM(IF(FREQUENCY(IF(AND(Table1[Assigned]<=A279,Table1[[Complete]:[In Accounting]]<=A279),ROW(Table1[[Complete]:[In Accounting]])),ROW(Table1[[Complete]:[In Accounting]]))>0,1)) 

如果我走「和」部分了,這工作得很好,除了我需要它只能算中給定的狀態實際上有一個日期行所以如果「分配」日期爲空,我不希望將該行計入「分配」列。

下面是我期望在結果中看到的一個例子。我列出了每列中的計數以及括號中的相應產品編號。相應的產品編號僅供參考,實際上不在結果表中。

Date | Notice | Assigned | Complete 
5/6 | 2 (1,3) | 2 (2,4) | 0 
5/7 | 2 (3,5) | 2 (1,2) | 1 (4) 
5/8 | 1 (3) | 2 (1,5) | 1 (2) 
+1

'我的成績表中有一組日期落筆列A和列標題的各種statuses.'我可以看到日期,除了列A幾乎無處不在,我看到產品在Col A.或者我錯過了什麼? –

+0

以上表格不是結果表格的例子。這是源數據表。我將編輯以顯示結果表的示例 –

+1

爲什麼'1'代表'5/6'和'(2,4)'? – pnuts

回答

3

行,假設你有A1中的原始數據:在A10 D9和行標籤:F6然後在B9第二表頭A12那麼您可以在B10

=SUM((B$2:B$6<=$A10)*(MMULT((C$2:$F$6>$A10)+(C$2:$F$6=""),TRANSPOSE(COLUMN(C$2:$F$6)^0))=COLUMNS(C$2:$F$6)))

用這種「數組公式」

CTRL + SHIFT + ENTER 證實並複製下來,整個(參見下圖)

正如你所看到的結果是按照您的requireme NT。如果用空白替換日期,它仍然可以工作

MMULT是一種即使在查看多列時也可以從每行獲取單個值的方法。

我使用了單元格引用,因爲我認爲這很容易,尤其是在複製公式並減少範圍時......但你可以使用結構化引用,如果你想

enter image description here

+0

哇。非常可觀的解決方很棒!謝謝@ barry-houdini –

2

您是否嘗試過使用COUNTIFS根據多個條件進行計數。這是相當不錯的記錄在這裏:http://office.microsoft.com/en-us/excel-help/countifs-function-HA010047494.aspx(2007+只)

基本上,你使用它像

=COUNTIFS(first_range_to_check, value_you_want_in_first_range, ...) 

其中......只要你想(最多127個總對)代表儘可能多的對,注意條件是AND連接,所以如果你有兩對,那麼第一對和第二對必須返回true來計算該行。

+0

當我嘗試此操作時,它不起作用,因爲countifs像一個巨大的「And」語句一樣工作,但我所需要的是「OR」語句,只要第二部分是如果相應的狀態是正確的日期,那麼它只計算一行,而如果任何後面的狀態出現在同一日期或之前,則不是。 –

+0

這仍然是「和」。 Col1 <=日期和Col2>日期和Col3>日期和Col4>日期。各種狀態是否按順序發生?如果是這樣的話,僅僅檢查下一個狀態是否就足夠了>日期 –

+0

它們應該,但是偶爾它們是空白的,因此每一列(狀態)需要爲空白或高於該列當前日期通過。因此,如果通知是5/9並且分配爲空白並且完成是5/12 ...則給定的產品將不會在5/12被計爲「通知」,而是會在5/11被計爲「通知」。 –