TEXTJOIN 与 CONCAT:Excel 和 Google Sheets 该用哪一个
需要分隔符、并决定是否跳过空单元格时,用 TEXTJOIN。测试范围为 SKU-101、Widget、空白、12.50。TEXTJOIN(",",TRUE,A2:A5) 得到 SKU-101,Widget,12.50;第二参数为 FALSE 时得到 SKU-101,Widget,,12.50,空位还在。用空格作分隔符且忽略空白时得到 SKU-101 Widget 12.50。
标签“text”下有 6 篇教程。
需要分隔符、并决定是否跳过空单元格时,用 TEXTJOIN。测试范围为 SKU-101、Widget、空白、12.50。TEXTJOIN(",",TRUE,A2:A5) 得到 SKU-101,Widget,12.50;第二参数为 FALSE 时得到 SKU-101,Widget,,12.50,空位还在。用空格作分隔符且忽略空白时得到 SKU-101 Widget 12.50。
用 MID 加 FIND 取出两个标记之间的文本。对 Price is $12.50 today,在美元符号之后、下一个空格之前得到 12.50。对 SKU-[103]-west,在方括号之间得到 103。对 start(hello)end,在圆括号之间得到 hello。第二个 FIND 要指定起始位置,以免先碰到前面的空格。
SUBSTITUTE 按文本替换,并可指定第几次;REPLACE 按位置和长度覆盖。本次 SUBSTITUTE("banana","a","X") 得到 bXnXnX,指定第 2 次得到 banXna。REPLACE("banana",2,2,"XX") 得到 bXXana,从第 2 个字符起覆盖 2 个字符。
前导零只有在单元格是文本,或用 TEXT 把数字补零输出时才会保留。本次数字 1 的 LEN 为 1,ISNUMBER 为 TRUE。文本 "001" 的 LEN 为 3,ISTEXT 为 TRUE,但 VALUE("001") 返回 1。公式 ="001" 的结果相同。
在 Google Sheets 里用 SPLIT 按分隔符拆到右侧单元格。SPLIT("SKU-101,Widget,12.50",",") 得到 SKU-101、Widget、12.5。TEXTSPLIT 在本文件中为 #NAME?,它是 Excel 365 的函数。INDEX 取第 2 段得到 Widget;LEFT 与 FIND 取第 1 段得到文本 SKU-101。
两个词的姓名先取第一个词和最后一个词。Google Sheets 中用 TRIM 后的 LEFT/FIND 与“最后一个词”公式,Ada Lovelace 得到 Ada 与 Lovelace。本次测试里 TEXTBEFORE、TEXTAFTER、TEXTSPLIT 返回 #NAME?,不要假设它们在所有表格中可用。