如果其他两个单元格匹配,则列中的不同值计数

时间:2019-10-21 21:10:36

标签: excel excel-formula

与数组公式进行比较以计算一列中其他两个单元格匹配的行中的不同值。对不起,如果我无法更好地解释。最好是向您展示我创建的公式并提供一些示例数据:

第1张

Column A      Column B  
Period 101    Code X
Period 309    Code Y
Period 101    Code Y
Period 101    Code Z
Period 404    Code Y
Period 101    Code X
Period 101    Code X
Period 404    Code X
Period 404    Code Z

第2页

Column A      Column B (where the formula should be)
Code X        2
Code Y        3
Code Z        2

基本上,我只想对工作表1列A中的不同值进行计数,仅在工作表1列B中的值与工作表2列A中的值匹配的情况下。我已经提供了三个代码值的预期结果。

我尝试使用以下公式,但无法在两个单元格匹配的另一列中计算不同的值:

{=SUM(--(FREQUENCY(IF(C5:C11=G5,MATCH(B5:B11,B5:B11,0)),ROW(B5:B11)-ROW(B5)+1)>0))} 

请忽略公式中使用的行和列,工作表1的A列和B列中的值都出现多次,但是工作表2的第一列中的值仅出现一次。

我很好奇有人会解决这个问题。预先谢谢你。

2 个答案:

答案 0 :(得分:1)

注意:这个答案不太可能对OP有用,因为这些技术仅适用于Excel Insiders

但是,一旦这些新功能可用于主流,它们将改变游戏规则。

这使用了Excel即将推出的新Dynamic Array功能。

要从B列创建唯一值列表,请将此公式放在单个单元格中。 Excel将根据需要“溢出”到尽可能多的行,以从列B返回唯一值列表。例如,我使用了单元格E2

=UNIQUE(FILTER($B:$B,$B:$B<>""))

现在,将此公式放在下一个相邻的单元格中,我用过F2

=COUNTA(UNIQUE(FILTER($A:$A,$B:$B=$E$2)))

同样,您只需要将此公式放在一个单元格中,无需复制下来。 Excel将根据需要将结果“溢出”到尽可能多的单元格中,以匹配列E

enter image description here

答案 1 :(得分:0)

您的公式与您的示例数据不匹配,但让我们假设以下内容:

enter image description here

H5中的公式:

=SUM(--(FREQUENCY(IF(C$5:C$13=G5,MATCH(B$5:B$13,B$5:B$13,0)),ROW(B$5:B$13)-ROW(B$5)+1)>0))

通过 Ctrl Shift Enter 输入并向下拖动作为数组输入

注意半绝对单元格引用(您使用了相对引用)+我的范围比您的范围大(仅从C5:C11看)

相关问题