[英]count unique text values based on condition in another column between date criteria
我需要的是基於FIAP / Medium和Year列的標准來計算TITLE中唯一值的公式。
首先需要查看工作表列M / Year中的日期,范圍是23 /03/ 13-01 /06/ 16 。 然后,它需要檢查I / FIAP中列以查找“數字 ”,並最終計算A /標題中的唯一圖像。
這是工作表列
Title FIAP/Medium Year
Conors Push Digital 3/23/2013
Conors Push Digital 4/1/2013
Flippin Hell Digital 4/1/2013
Narrowing the Gap Digital 4/1/2013
The Perfect Storm Digital 4/8/2013
Conors Push Digital 4/12/2013
Splash and Dash Digital 4/12/2013
Wind Power Digital 4/12/2013
Conors Push - 4/28/2013
Eyes On The Ball - 4/28/2013
Narrowing the Gap - 4/28/2013
The Bunkers Demise - 4/28/2013
A Few Inches More Digital 5/1/2013
Entwined Digital 5/1/2013
Conors Push Digital 5/14/2013
Fosbury Delight Digital 5/14/2013
Narrowing The Gap Digital 5/14/2013
Sprint For The Lin Digital 5/14/2013
我想出了配方
=SUM(--(FREQUENCY(IF(International!M2:M1000>="6/1/2016",IF(International!M2:M1000<="3/23/2013",IF(International!I2:I1000<>"",IF(International!I2:I1000="Digital",MATCH(International!A2:A1000,International!A2:A1000,0))))),ROW(International!A2:A1000)-ROW(International!A2)+1>0)))
但顯示零值。 可能是因為日期條件需要兩個條件且一列。
請使用此公式或任何其他方法幫助我根據此條件計算不重復次數。 特別的日期
有一個基於SUMPRODUCT和COUNTIF函數的偽COUNTUNIQUE¹的相當常見的方法,如下所示。
=SUMPRODUCT(1/COUNTIF(A2:A19, A2:A19&""))
但這確實彌補了條件。 要添加條件,您需要更改為COUNTIFS函數 。 另外,除法運算的分子和分母都必須通過條件和條件的逆數進行調整,以便您返回真實計數而不會因#DIV #DIV/0!
出錯#DIV/0!
。
=SUMPRODUCT(((C$2:C$19>=F2)*(C$2:C$19<=G2)*($B$2:$B$19=E2))/
(COUNTIFS(A$2:A$19, A$2:A$19&"", C$2:C$19, ">="&F2, C$2:C$19, "<="&G2, $B$2:$B$19, E2)+
(C$2:C$19<F2)+(C$2:C$19>G2)+($B$2:$B$19<>E2)))
現在很難維護公式了,行數不斷增加和刪除。 要創建動態范圍,我們可以對每整列進行索引,並使用MATCH查找最后日期作為每列的終止符。
=SUMPRODUCT(((C$2:INDEX(C:C, MATCH(1E+99,C:C ))>=F2)*(C$2:INDEX(C:C, MATCH(1E+99,C:C ))<=G2)*($B$2:INDEX(B:B, MATCH(1E+99,C:C ))=E2))/
(COUNTIFS(A$2:INDEX(A:A, MATCH(1E+99,C:C )), A$2:INDEX(A:A, MATCH(1E+99,C:C ))&"", C$2:INDEX(C:C, MATCH(1E+99,C:C )), ">="&F2, C$2:INDEX(C:C, MATCH(1E+99,C:C )), "<="&G2, B$2:INDEX(B:B, MATCH(1E+99,C:C )), E2)+
(C$2:INDEX(C:C, MATCH(1E+99,C:C ))<F2)+(C$2:INDEX(C:C, MATCH(1E+99,C:C ))>G2)+($B$2:INDEX(B:B, MATCH(1E+99,C:C ))<>E2)))
是的,這看起來一團糟,但是它動態地加減了SUMPRODUCT函數處理的行,因此計算效率非常高。
¹ 有關其工作原理的說明,請參見SUMPRODUCT()Breakdown中的Count Unique 。
您的公式可以進行一些調整:
需要使用DateValue()函數將日期字符串轉換為日期值
日期的比較運算符可以互換(應該是<= 2016日期和> = 2013日期)
與“數字”的比較需要逆轉
如果條件失敗,最里面的IF語句需要一個零作為值
我刪除了不需要的最外面的括號
這是有效的修改后的版本:
=頻率(IF(國際M2:M1000 <= DATEVALUE( “2016年6月1日”),IF(國際M2:M1000> = DATEVALUE( “2013年3月23日”),IF(國際I2:I1000 <> “”,IF(國際I2:I1000 <>! “數字”,MATCH(國際A2:A1000,國際A2:A1000,0),0!)))),ROW(國際!A2:A1000) - ROW(國際!A2)+1> 0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.