使用间接单元格引用来计算范围中的唯一值

嗨,我试图计算一个范围内的唯一的产品代码的数量应用使用一个标准。

迄今为止的公式是:

=COUNTIFS(INDIRECT("'" & B7 & "'!" & B8 & ":" & B9),"*Germany*",INDIRECT("'" & O7 & "'!" & O8 & ":" & O9),"criteria for counting unique values") 

我不明白如何采用我在网上看到的使用我正在使用的INDIRECT范围参考的公式。

需要计数的唯一值的范围是包含字母和数字字符的产品代码,单元格types是文本。

有人可以帮我理解我需要添加到我的公式吗?

谢谢。

如果没有空白,你可以尝试:

 =SUMPRODUCT((INDIRECT("'"&B7&"'!"&B8&":"&B9)="Germany")/COUNTIFS(INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&B7&"'!"&B8&":"&B9),INDIRECT("'"&B7&"'!"&B8&":"&B9))) 

这假定你的INDIRECT正确地parsing到你想要的地址:

  • B7:第一范围的图纸名称
  • B8:开始第一个范围的单元格
  • B9:第一个范围的结束单元格
  • O7:第二范围的图纸名称
  • O8:开始第二个范围的单元格
  • O9:第二个范围的结束单元格

这是做这件事的另一种方式 – 改编自Barry Houdini的回答 , 另见

 =SUM(IF(FREQUENCY(IF(INDIRECT("'"&B7&"'!"&B8&":"&B9)="Germany",MATCH(INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&O7&"'!"&O8&":"&O9),0)),ROW(INDIRECT(O8&":"&O9)))>0,1)) 

你可以添加一个空白单元格的testing,如果你想

 =SUM(IF(FREQUENCY(IF(INDIRECT("'"&B7&"'!"&B8&":"&B9)="Germany",IF(INDIRECT("'"&O7&"'!"&O8&":"&O9)<>"",MATCH(INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&O7&"'!"&O8&":"&O9),0))),ROW(INDIRECT(O8&":"&O9)))>0,1)) 

是一个数组公式,并且必须使用Ctrl Shift Enter进行input