↑ 关于函数数组,这篇教程足够经典 我举个例子。 有两个一维数组: {1;2;12}{"a";"b";"ab"} 需要将它们合并成一个一维数组: {1;2;12;"a";"b";"ab"} 如果需要将两个一维数组合并成二维数组,可以用IF函数: =IF({1,0},{1;2;12},{"a";"b";"ab"}) 而合并成一维数组呢? 也可以用IF函数。 公式看不全可以左右拖动...▼ =IF(ROW(1:6)<4,{1;2;12},LOOKUP(ROW(1:6),ROW(4:6),{"a";"b";"ab"})) 公式判断ROW(1:6)是否小于4,如果条件成立则返回第1个一维数组{1;2;12},否则运行LOOKUP函数。 LOOKUP的查找值是ROW(1:6),查找区域是ROW(4:6),ROW(1:3)查无结果返回错误值,ROW(4:6)返回第2个一维数组{"a";"b";"ab"} 因此以上公式等同于: =IF(ROW(1:6)<4,{1;2;12},{#N/A;#N/A;#N/A;"a";"b";"ab"}) 于是最终返回一维数组: {1;2;12;"a";"b";"ab"} …… 这是2个一维数组合并,如果是3个、4个……更多个呢? 比如,将下图所示A1:C3区域3个纵向一维数组合并为E1:E9所示的一个纵向一维数组。 这时候继续使用IF+LOOKUP的函数组合就不是很方便了。 更推荐使用FILTERXML+TEXTJOIN的组合套路。
首先使用TRANSPOSE函数将A1:C3转置,然后使用TEXTJOIN函数以</b><b>为分隔符合并,最后用FILTERXML按"a/b"为节点拆分——这个解释如果看不懂的话,看我手指的方向👇回看一下FILTERXML函数教程吧,微微笑 (* ̄︶ ̄) ↑ FILTERXML函数 |
|
来自: asaser > 《No2:函数公式》