Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 替换textjoin公式不适用于最终单元格_Excel_Unique_Substitution_Excel 2016_Textjoin - Fatal编程技术网

Excel 替换textjoin公式不适用于最终单元格

Excel 替换textjoin公式不适用于最终单元格,excel,unique,substitution,excel-2016,textjoin,Excel,Unique,Substitution,Excel 2016,Textjoin,我尝试在Excel中加入单元格后删除唯一值。这是一个电话号码列表,在我用逗号分隔后,我将其合并到一个单元格中。我用这个公式: =SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28),I19&",","") 无论出于何种原因,它都适用于范围内的每个单元格,最后一个除外;这意味着最后一个电话号码仍然显示在最终列表中。例如,如果我有数字123452345634567和45678,它应该是这样的: 23456,34567,45678 12345,34567

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

=SUBSTITUTE(TEXTJOIN(",",TRUE,$I$19:$I$28),I19&",","")
无论出于何种原因,它都适用于范围内的每个单元格,最后一个除外;这意味着最后一个电话号码仍然显示在最终列表中。例如,如果我有数字123452345634567和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

你知道为什么会发生这种情况吗?

它正在寻找
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,""))
=TEXTJOIN(“,”,TRUE,IF((行($I$19:$I$28)行(19:19))*($I$19:$I$28)”,$I$19:$I$28“)
作为一个数组,在退出编辑模式时,需要使用Ctrl-Shift-Enter键而不是Enter键进行确认。如果操作正确,Excel将在公式周围放置
{}

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



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

@user8529169请单击答案旁边的复选标记,将其标记为正确。