如何用单个公式将分号分隔的多元素列拆分合并为单列?
解决方案
直接使用TOCOL+BYROW的组合公式即可解决字符限制问题,同时无需预先计算每行的最大拆分数量:
=TOCOL(BYROW(data, LAMBDA(row, TEXTSPLIT(row, ";"))), 3)
公式说明
BYROW(data, LAMBDA(row, TEXTSPLIT(row, ";"))):遍历data区域的每一行,对每行文本按分号;拆分,返回由多个行拆分数组组成的多维数组TOCOL(..., 3):将多维数组扁平化转为单列,参数3的作用是自动忽略拆分过程中产生的错误值(因为不同行拆分后的元素数量不同,会出现数组长度不匹配的错误,参数3会过滤掉这些无效值)
你之前尝试的问题说明
你用MAKEARRAY的公式存在参数错误:COLUMNS(MAX(num_of_texts_in_each_row))中,MAX返回的是单个数值,COLUMNS对单个数值计算会返回1,导致MAKEARRAY生成的是行数×1的单列数组,自然无法得到二维结构。即便修正列数为MAX(num_of_texts_in_each_row),后续还需要用TOCOL处理空值,不如直接用上面的简化公式高效。
内容的提问来源于stack exchange,提问作者dsauce
相关产品推荐
相关产品推荐

