=SUBSTITUTE(TEXTJOIN(", ",TRUE,$G3,$I3,$K3),", "," and ",MAX(1,COUNTA($G3,$I3,$K3)-1))
现在的回报是:(G3, I3 and K3
“and”之前的最后一个逗号被删除)
我希望它返回:(G3, I3, and K3
末尾带有逗号和“and”)
答案1
对您的公式进行一处更改(添加)。可以:
=SUBSTITUTE(TEXTJOIN(", ",TRUE,$G3,$I3,$K3)," ", ", and ",MAX(1,COUNTA($G3,$I3,$K3)-1))
更改位于函数的“要替换的内容”参数中SUBSTITUTE()
。您目前让它找到最后一个,
并替换它。不要用没有逗号的东西替换“逗号空格”,只需使用, and
“和”替换它,但也要用逗号开头。
或者:
=SUBSTITUTE(TEXTJOIN(", ",TRUE,$G3,$I3,$K3)," "," and ",MAX(1,COUNTA($G3,$I3,$K3)-1))
思路基本相同。在第一个中,您仍将逗号替换,但替换为逗号。在这里,您无需搜索和替换逗号,只需替换最后一个空格即可。因此逗号保持不变。
感觉你认为“逗号空格”在整个公式中都很重要,只是因为它在单个函数中很重要TEXTJOIN()
。但 Excel 只关心该函数。在它之外,你应该习惯于将其视为两个单独的、不相关的字符,它们恰好相邻。如果不需要替换一个,则不需要(第二个公式)。
有时,找到字符串中真正独特的部分来锚定您想要对其执行的任何操作非常重要。使用它来查找替换位置(第一个公式)意味着替换它,因此它必须包含在替换字符串中。
第一个也感觉像是粉丝们最喜欢的,因为单个变化是如此微小,只有一点点,
。但我认为第二个“更合理”,因为它只对需要采取行动的内容起作用,而不会影响其他内容。