根据date标准之间的另一列中的条件计算唯一的文本值

我需要的是根据FIAP / Medium和Year栏的标准来计算TITLE中唯一值的公式。

这需要从工作表栏M /年的date开始,范围是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))) 

但它显示零价值。 这可能是因为date条件需要一列两个条件。

请帮助我用这个公式或任何其他方法来计算独特的基础上这个条件。 特别date

基于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))) 

count_unique_with_conditions

现在这个公式很难保持,行数不断增加和删除。 要创builddynamic范围,我们可以对每个完整列进行INDEX,并使用MATCH将最后date定位为每列的终止符。

 =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))) 

是的,这看起来像一团糟,但它dynamic地增加和减lessSUMPRODUCT函数处理的行,以便计算效率非常高。


¹ 有关如何运作的说明,请参阅使用SUMPRODUCT()细分统计的计数 。

你的公式工作有一些调整:

  1. datestring需要使用DateValue()函数转换为date值

  2. date的比较运算符互换(应该是<= 2016年和> = 2013年)

  3. 与“数字”的比较需要扭转

  4. 最里面的IF语句在条件失败的情况下需要一个零值

  5. 我删除了不需要的最外面的括号

这是修改后的版本:

=频率(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)