簡體   English   中英

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

[英]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),"__","_"))

數據和公式截圖

對於您當前的數據集嘗試

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

看看這是否有效?

例子

如果出現雙重名字(或帶有空格的國家名稱),這是處理雙重名字的解決方案。 單元格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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM