You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用=FILTER()提取堆叠列匹配行对应的其他列数据

实现方案

你现在用的FILTER隔列去空堆叠逻辑是对的,要拿到每个返回值对应行的Map、Side、Site、Win/Loss等字段,不用写VLOOKUP/XLOOKUP这类匹配公式,直接调整FILTER的返回数组结构就行,匹配精度100%不会错位。

核心逻辑

你原来的公式只把S、U、W、Y、AA这5列的非空值做了纵向拼接,现在只要给每一段拼接的目标列,配上同一行范围内你需要的关联列,一起参与纵向堆叠,过滤条件完全沿用你原来写的非空判断即可。过滤后每一行的关联字段和堆叠值是严格一一对应的。

参考公式

假设Map、Side、Site、Win/Loss分别在Storage表的M、N、O、P列(实际用的时候换成你表里对应的真实列标就行),公式写法如下:

=FILTER(
  {
    Storage!M2:M, Storage!N2:N, Storage!O2:O, Storage!P2:P, Storage!S2:S;
    Storage!M2:M, Storage!N2:N, Storage!O2:O, Storage!P2:P, Storage!U2:U;
    Storage!M2:M, Storage!N2:N, Storage!O2:O, Storage!P2:P, Storage!W2:W;
    Storage!M2:M, Storage!N2:N, Storage!O2:O, Storage!P2:P, Storage!Y2:Y;
    Storage!M2:M, Storage!N2:N, Storage!O2:O, Storage!P2:P, Storage!AA2:AA
  },
  LEN({Storage!S2:S;Storage!U2:U;Storage!W2:W;Storage!Y2:Y;Storage!AA2:AA})
)

注意点

  • 所有列的引用行范围必须完全对齐:不管是关联列还是你要堆叠的目标列,都从第2行开始,到同一最后数据行结束,不能有的列范围长有的短,不然会错位
  • 公式返回的结果从左到右就是你配置的Map、Side、Site、Win/Loss字段,最后一列是你原本要堆叠的值
  • 要是你用的是不支持动态数组的旧版Excel,先选好要输出结果的多列区域,输完公式按Ctrl+Shift+Enter走数组计算就行
  • 如果你要提取的字段本身就是S到AB之间间隔的T、V、X、Z、AB列,直接把对应列替换到公式里关联列的位置就可以

内容的提问来源于stack exchange,提问作者Fettuccine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:27:39