首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel一对多表,每个ID查询行数

问Excel一对多表,每个ID查询行数
EN

Stack Overflow用户
提问于 2015-07-08 18:49:34
回答 2查看 826关注 0票数 0

我在Excel中有一个一对多的表,设置如图所示.每个rid有许多样本;每个样本都有固定数量的属性(访问、访问类型等)。

​

​

我还设置了一个枢轴表来可视化数据:

​

现在,我需要筛选/查询我的数据,以找到所有具有所有3种访问类型的ID:随机化和30周和交付。(我可能还需要对每个ID及其依赖对象进行额外的查询)

这可以在Excel中使用高级过滤器和枢轴表吗?还是我需要编写VBA脚本来为我处理和组织这些呢?(使用Excel 2010)

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

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-08 19:06:17

可以用多种方式进行测试;一种方法是使用COUNTIFS函数测试每个标准,并指出其中任何一条是否为0。就像这样(从第一个选项卡的单元格H4开始,向下拖动):

代码语言:javascript
复制
=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个rids都存在的所有rids;如下所示:

=0=countifs(A:A,A4,C:随机化)*编号(A:A,A4,C:C,“30周”)*

这将显示正确的地方,不是所有的3个测试是存在的那个rid。只测试唯一的rids (会稍微干净一些;有许多方法可以创建没有重复的rids列表,但这也有效):

代码语言:javascript
复制
=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的匹配项时,才会启动公式。

票数 2
EN

Stack Overflow用户

发布于 2015-07-08 19:19:00

如果您只有3种访问类型,为什么不直接执行ID计数,如果是3,则意味着完成了3种访问类型。有点像

=IF(COUNTIF($A$1:$A$100,A1)=3,“已完成”,“待定”)

我不知道。如果你有三个以上的访问类型,请告诉我们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31301217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档