在 =FILTER() 中排除空白单元格,但将其余部分保留在行中
Exclude blank CELLS in =FILTER() but keeping the rest in the row
我只看到了如何在只有一个空白单元格时删除整行,但我基本上只想将单元格向右滑动:
原文:
A
B
C
D
1
Data
Data1
2
Data
Data2
3
Bad Data
Data3
4
Data
Data4
5
Data
Data5
过滤后尝试获取的结果:
A
B
C
D
1
Data
Data1
2
Data
Data2
3
Data
Data4
4
Data
Data5
我知道这很奇怪,因为通常这意味着事情会很混乱,但 B、C 和 D 列是互斥的,因此它们永远不会同时具有值。我也在尝试通过使用功能而不是单击选项卡中的按钮来完成此操作。
使用 LET 和 BYROW:
=LET(
grp,A1:A5,
dta,BYROW(B1:D5,LAMBDA(a,INDEX(a,MATCH("*",a,0)))),
FILTER(CHOOSE({1,2},grp,dta),grp<>"Bad Data"))
BYROW 部分逐行显示数据,returns 第一个单元格,每行中的数据作为数组。
然后只需使用 CHOOSE() 将两个数组并排堆叠并根据条件进行过滤即可。
目前Beta中有一个功能叫HSTACK,可以在整体发布的时候代替CHOOSE
=LET(
grp,A1:A5,
dta,BYROW(B1:D5,LAMBDA(a,INDEX(a,MATCH("*",a,0)))),
FILTER(HSTACK(grp,dta),grp<>"Bad Data"))
我只看到了如何在只有一个空白单元格时删除整行,但我基本上只想将单元格向右滑动:
原文:
A | B | C | D | |
---|---|---|---|---|
1 | Data | Data1 | ||
2 | Data | Data2 | ||
3 | Bad Data | Data3 | ||
4 | Data | Data4 | ||
5 | Data | Data5 |
过滤后尝试获取的结果:
A | B | C | D | |
---|---|---|---|---|
1 | Data | Data1 | ||
2 | Data | Data2 | ||
3 | Data | Data4 | ||
4 | Data | Data5 |
我知道这很奇怪,因为通常这意味着事情会很混乱,但 B、C 和 D 列是互斥的,因此它们永远不会同时具有值。我也在尝试通过使用功能而不是单击选项卡中的按钮来完成此操作。
使用 LET 和 BYROW:
=LET(
grp,A1:A5,
dta,BYROW(B1:D5,LAMBDA(a,INDEX(a,MATCH("*",a,0)))),
FILTER(CHOOSE({1,2},grp,dta),grp<>"Bad Data"))
BYROW 部分逐行显示数据,returns 第一个单元格,每行中的数据作为数组。
然后只需使用 CHOOSE() 将两个数组并排堆叠并根据条件进行过滤即可。
目前Beta中有一个功能叫HSTACK,可以在整体发布的时候代替CHOOSE
=LET(
grp,A1:A5,
dta,BYROW(B1:D5,LAMBDA(a,INDEX(a,MATCH("*",a,0)))),
FILTER(HSTACK(grp,dta),grp<>"Bad Data"))