我在Excel中有一对多的表格,如图所示设置。每个rid(ID)都有很多样本;每个样本都有固定数量的属性(访问,访问类型等)。
我还设置了一个数据透视表来可视化数据:
现在,我需要过滤/查询我的数据,以查找具有所有3种访问类型的所有ID:随机化和30周和交付。 (我可能需要对每个ID及其依赖对象进行其他查询)
使用高级过滤器和数据透视表可以在Excel中执行此操作吗?或者我是否需要编写VBA脚本来处理和组织这个? (使用Excel 2010)
如果VBA脚本最好,我应该使用Find和FindNext来获取属于ID的所有样本吗?
提前致谢!
答案 0 :(得分:2)
可以通过多种方式完成;一种方法是使用COUNTIFS函数测试每个条件,并指出其中任何一个是否为0.就像这样(从第一个选项卡的单元格H4开始,向下拖动):
=countifs(A:A,A4,C:C,"randomization")*countifs(A:A,A4,C:C,"30-week")*countifs(A:A,A4,C:C,"delivery")
如果这些测试类型中的任何一种不与A列中的rid相同,那么公式将简化为0.
要创建更清晰的结果,请将该函数与0进行比较,以显示并非所有3都存在的所有rid;像这样:
= 0 = COUNTIFS(A:A,A4,C:C,"随机化")* COUNTIFS(A:A,A4,C:C," 30周" )* countifs(A:A,A4,C:C,"交付")
如果不是所有3个测试都存在,那么这将显示为TRUE。仅测试唯一的rids(将会更加清晰;有很多方法可以创建没有重复的rid列表,但这也有效):
=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的匹配项,则仅启动公式。
答案 1 :(得分:0)
如果您只有3种访问类型,为什么不只是执行ID计数,如果它是3则表示它已完成3种访问类型。像
这样的东西= IF(COUNTIF($ A $ 1:$ A $ 100中,A1)= 3"完成""待定&#34)
我不知道..如果您有超过3种访问类型,请告诉我们。