【问题标题】:Substitute textjoin formula not working for final cell替换 textjoin 公式不适用于最终单元格
【发布时间】:2017-08-28 20:00:54
【问题描述】:

我正在尝试在 Excel 中加入单元格后删除唯一值。这是一个电话号码列表,在我用逗号分隔它们后,我将它们组合成一个单元格。我正在使用这个公式:

=SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28),I19&",","")

无论出于何种原因,它都适用于范围内的每个单元格,除了最后一个;这意味着最后一个电话号码仍然显示在最终列表中。例如,如果我有数字12345 23456 34567 and 45678,它应该是这样的:

23456,34567,45678    
12345,34567,45678    
12345,23456,45678    
12345,23456,34567

但结果是这样的

23456,34567,45678    
12345,34567,45678    
12345,23456,45678    
12345,23456,34567,45678

任何想法为什么会发生这种情况?

【问题讨论】:

    标签: excel unique substitution excel-2016 textjoin


    【解决方案1】:

    它正在寻找45678, 来替换""。最后没有,。所以我们强制一个,然后在最后删除它:

    =LEFT(SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28) & ",",I19&",",""),LEN(SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28) & ",",I19&",",""))-1)
    

    或者把逗号放在前面,用MID:

    =MID(SUBSTITUTE(","&TEXTJOIN(",",TRUE,$I$19:$I$28),"," &I19,""),2,999)
    

    或者你可以使用数组形式的TEXTJOIN:

    =TEXTJOIN(",",TRUE,IF((ROW($I$19:$I$28)<>ROW(19:19))*($I$19:$I$28<>""),$I$19:$I$28,""))
    

    作为一个数组,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认。如果操作正确,Excel 会在公式周围加上{}

    然后像第一个一样复制/拖动它。


    第二个,使用 MID 是更好的选择。

    【讨论】:

    • @user8529169 请点击答案旁边的复选标记标记为正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多