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只是让我们知道。