微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用arrayformula“textjoin”包括忽略空单元格?

如何解决如何使用arrayformula“textjoin”包括忽略空单元格?

我喜欢 textjoin 因为它具有“忽略空单元格”的功能,它真的很干净。但是,它不能与 ArrayFormula 一起为我自动填充列。所以似乎需要一个更麻烦的解决方法。这是我想出的。有人知道更简单的解决方案吗?

单元格 A2 中的公式应将单元格 B、C 和 D 中的值与分隔符组合在一起,并且没有任何额外的分隔符,如前导或尾随 _s,或中间的 _ 。

+----------------------+------------+------+-----------+
|       NiceName       | first_name | year |  country  |
+----------------------+------------+------+-----------+
| Kaylee_1999          | Kaylee     | 1999 |           |
| Selma_2003_Indonesia | Selma      | 2003 | Indonesia |
| Babbette_Morocco     | Babbette   |      | Morocco   |
| Erhart_1985_Japan    | Erhart     | 1985 | Japan     |
| 1997_France          |            | 1997 | France    |
| Derward_1985_China   | Derward    | 1985 | China     |
+----------------------+------------+------+-----------+


=arrayformula(substitute(if(isblank(B2:B),B2:B&"_")&if(isblank(C2:C),C2:C)&if(isblank(D2:D),"_"&D2:D),"__","_"))

screenshot of data & formula

解决方法

对于您当前的数据集,请尝试

=ArrayFormula(substitute(trim(transpose(query(transpose(B2:D),rows(B2:B))))," ","_"))

看看是否有效?

Example

,

如果出现重复的名字(或带有空格的国家/地区名称),这里有一个解决方案来处理它们。单元格 A2

=arrayformula(regexreplace({B2:B&if(C2:C<>"","_"&C2:C&"_","_")&D2:D},"^\_|\_$",))

enter image description here

我还建议添加一个 array_constrain 以防止公式在工作表中一直工作。

=arrayformula(array_constrain(regexreplace({B2:B&if(C2:C<>"",),MAX(IF(B:D<>"",ROW(B:B))),1))

此外,要在单元格 A1 中找到带有标题的公式,您可以使用:

=arrayformula(array_constrain({"NiceName";regexreplace({B2:B&if(C2:C<>"",)},1))

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。