[英]How to "textjoin" with arrayformula (including ignoring empty cells)?
我喜歡 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),"__","_"))
如果出現雙重名字(或帶有空格的國家名稱),這是處理雙重名字的解決方案。 單元格A2
:
=arrayformula(regexreplace({B2:B&if(C2:C<>"","_"&C2:C&"_","_")&D2:D},"^\_|\_$",))
我還建議添加一個array_constrain
以防止公式一直在工作表中起作用。
=arrayformula(array_constrain(regexreplace({B2:B&if(C2:C<>"","_"&C2:C&"_","_")&D2:D},"^\_|\_$",),MAX(IF(B:D<>"",ROW(B:B))),1))
此外,要在單元格A1
中找到帶有標題的公式,您可以使用:
=arrayformula(array_constrain({"NiceName";regexreplace({B2:B&if(C2:C<>"","_"&C2:C&"_","_")&D2:D},"^\_|\_$",)},MAX(IF(B:D<>"",ROW(B:B))),1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.