Excel一对多表,查询每个行的行数

我有一个在Excel中的一对多表,如图所示设置。 每个删除(ID)有很多样本; 每个样本具有固定数量的属性(访问,访问types等)。

在这里输入图像说明

我也有一个数据透视表设置可视化的数据: 在这里输入图像说明

现在,我需要筛选/查询我的数据,以find所有3种访问types的ID:随机化和30周交付。 (也可能需要对每个ID及其相关对象进行额外的查询)

这可能在Excel中使用高级filter和数据透视表? 还是我需要编写VBA脚本来处理和组织这个给我? (使用Excel 2010)

如果VBA脚本是最好的,我应该使用Find和FindNext来获取属于某个ID的所有样本吗?

提前致谢!

可以用一堆方法来完成; 一个是使用COUNTIFS函数testing每个标准,并指出这些是否是0。像这样(从第一个选项卡的单元格H4开始,拖动):

=countifs(A:A,A4,C:C,"randomization")*countifs(A:A,A4,C:C,"30-week")*countifs(A:A,A4,C:C,"delivery") 

如果这些testingtypes中的任何一个与列A中的rid不在同一行上,则公式将简化为0。

为了创build一个更清晰的结果,比较函数0,以显示所有摆脱不是所有3都存在; 像这样:

= 0 = COUNTIFS(A:A,A4,C:C, “随机化”)* COUNTIFS(A:A,A4,C:C, “30周”)* COUNTIFS(A:A,A4,C:C ,“交货”)

如果不是所有3个testing都存在,那么这个结果将显示TRUE。 只testing独特的摆脱(将是一个更清洁,有很多方法来创build摆脱列表没有重复,但也可以):

 =if(iserror(match(A4,$A$1:A3,0)),0=countifs(A:A,A4,C:C,"randomization")*countifs(A:A,A4,C:C,"30-week")*countifs(A:A,A4,C:C,"delivery"),"") 

如果在当前行上方的任何行中找不到与该特定的rid匹配的匹配项,则只会启动该公式。

如果你只有3种访问types,为什么不只是执行一个ID计数,如果是3则意味着它有3种访问types。 就像是

= IF(COUNTIF($ A $ 1:$ A $ 100中,A1)= 3, “完成”, “待处理”)

我不知道,如果你有超过3访问types只是让我们知道。

Interesting Posts