给定给定列的值,选择excel表的子集

时间:2019-01-26 20:00:43

标签: excel excel-formula

我在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界面(“过滤器”按钮)进行过滤确实很容易,但是我不知道该函数在编程上会执行类似的功能。

2 个答案:

答案 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语句的原因是格式化,而不是在失败的查找中显示错误。