Excel Dynamic Array无溢出无空白拼接需求:高尔夫灌溉配件订购
解决方案
直接用VSTACK函数垂直合并两个FILTER的动态数组结果,公式如下:
=VSTACK( FILTER(PartsAndQuantities1,(Parts1<>"")*(IF(Quantities1=0,"",Quantities1)<>"")), FILTER(PartsAndQuantities2,(Parts2<>"")*(IF(Quantities2=0,"",Quantities2)<>"")) )
方案可行性说明:
VSTACK是Excel原生的垂直数组拼接函数,会完整将第二个FILTER的结果接在第一个结果下方,不会像&那样出现逐行拼接元素的错误- 老板对源数据增删行时,两个
FILTER会自动更新筛选结果,VSTACK会同步输出连续的汇总列表,既不会触发#Spill!错误,也不会留下空白行 - 若某一个
FILTER因源数据删除返回空数组,VSTACK会自动跳过空白,保证汇总内容的连续性
对应你之前尝试的问题解析:
&/+/AND()属于逐元素运算或逻辑判断工具,并非数组堆叠函数,无法实现垂直合并多列数据的需求CHOOSE()仅支持单列数组的选择逻辑,不适用当前多列配件数据的场景
注意事项:
确保公式所在单元格的下方无手动输入的固定内容,让动态数组可自由扩展,老板仅需操作源数据区域,无需改动汇总区域。
内容的提问来源于stack exchange,提问作者Andrew Raymond Peters
相关产品推荐
相关产品推荐

