我在excel中有一个表格,如下所示:
col1 col2
A 1
B 0
A 2
B 2
B 3
我无法找到一种使用excel函数选择表子集的方法。
col11 col22
B 0
B 2
B 3
基于列"B"
的值col1
或仅能够从给定的子集中选择col22'
。
我想要一个既不需要VBA也不需要数组公式的解决方案。我在Internet上发现了功能FILTER,但是它尚不可用,Structured References还没有这样的功能。
例如,我想将结果col22
用作电子表格另一个位置的列。其他语言(例如R)提供了一种函数subset,该函数以一种非常简单的方式执行此操作。在excel中,使用Excel界面(“过滤器”按钮)进行过滤确实很容易,但是我不知道该函数在编程上会执行类似的功能。
答案 0 :(得分:1)
我遇到了同样的问题,我在互联网上发现的唯一东西也是FILTER函数。
我想vlookup
基于另一列的表的子集。我的解决方案是制作另一个专栏,将两者串联。然后,我在此列上使用了vlookup
。
我不知道您要对子集表做什么。但是您可以像我一样以不同的方式进行操作。希望有帮助。
答案 1 :(得分:0)
假设col1是A,col 2是B,结果集的col1和col2分别是E和F,请在C列中尝试以下公式:=IF(A2=$E$2,MAX($C$1:C1)+1,0)
现在,在单元格E2中(我将第一行留在标题的第一行中),我物理上键入“ B”以使其成为输入源并允许动态报告。对于您想要的以下单元格,下面的公式将仅显示输入源中“ B”的总数:=IF(ROW(A2)>MAX(C:C),"",E2)
请注意,我没有用$固定单元格,因为您的下一行取决于在前者上。
单元格F2(结果集的col2字段的顶部)包括:=INDEX(B:B,MATCH(G2,C:C,0))
,在G2中放置:=IF(E2="","",G1+1)
,并向下复制两者,直到在E列中有公式为止(或结果)设置col1)。
IF语句的原因是格式化,而不是在失败的查找中显示错误。