=SUBSTITUTE(CONCATENATE('ZTE PK ORDER'!B2:B&"+"),"+","",LEN(CONCATENATE('ZTE PK ORDER'!B2:B&"+"))-LEN("+")) 这个公式报错#NAME?
时间: 2023-07-19 07:25:30 浏览: 138
这个错误通常是因为公式中引用的工作表名称不正确。请确保以下几点:
1. 工作表名称是否正确,如果工作表名称中包含空格,需要使用单引号将其括起来。
2. 如果你需要使用`LEN`函数来计算字符串长度,那么这个函数需要放在单元格范围之外,例如:
```
=SUBSTITUTE(CONCATENATE('ZTE PK ORDER'!B2:B&"+"),"+","",LEN(CONCATENATE('ZTE PK ORDER'!B2:B&"+"))-LEN("+"))
```
这个公式的意思是从'ZTE PK ORDER'表格的B2单元格开始,将B列中的所有单元格内容用"+"拼接起来,并且忽略空值。其中,第一个参数为要替换的字符串,第二个参数为用来替换的字符串,第三个参数为要进行替换的字符串。需要注意的是,这个公式最后会多出一个"+",需要使用`SUBSTITUTE`函数将其替换掉。
如果你仍然遇到问题,请检查公式中是否有拼写错误或语法错误。
相关问题
=TEXTJOIN("+",TRUE,'ZTE PK ORDER'!B2:B) 这个公式报错#NAME?
如果你的Excel版本不支持`TEXTJOIN`函数,那么可以使用以下公式:
```
=SUBSTITUTE(CONCATENATE('ZTE PK ORDER'!B2:B&"+"),"+","",LEN(CONCATENATE('ZTE PK ORDER'!B2:B&"+"))-LEN("+"))
```
这个公式的意思是从'ZTE PK ORDER'表格的B2单元格开始,将B列中的所有单元格内容用"+"拼接起来,并且忽略空值。其中,第一个参数为要替换的字符串,第二个参数为用来替换的字符串,第三个参数为要进行替换的字符串。需要注意的是,这个公式最后会多出一个"+",需要使用`SUBSTITUTE`函数将其替换掉。
这个公式不是我要求的,B2是DA2305220203+DA2305220201,B3是DA2304030117+DA2304030120,B4是DA2305110204+ DA2305160249,B5是DA2304280242,输出结果为什么是DA2305220203+DA2305220201+,我要求的输出结果一个柜是:DA2305220203+DA2305220201+DA2304030117+DA2304030120+DA2305110204+ DA2305160249+DA2304280242
非常抱歉,之前的公式有误。以下是修正后的公式:
```
=SUBSTITUTE(CONCATENATE(IFERROR(IF('ZTE PK ORDER'!B2:B1048576<>"",'ZTE PK ORDER'!B2:B1048576&"+",""), "")),"+","",LEN(CONCATENATE(IFERROR(IF('ZTE PK ORDER'!B2:B1048576<>"",'ZTE PK ORDER'!B2:B1048576&"+",""), "")))-LEN("+"))
```
这个公式的含义是从'ZTE PK ORDER'表格中的B2单元格开始,将B列中所有非空单元格的内容用"+"拼接起来,并且忽略空值。其中,`B2:B1048576`表示B列中从B2单元格到最后一个单元格的范围,`1048576`是Excel工作表中的最大行数。在拼接字符串的过程中,使用IFERROR函数来判断单元格中是否有内容,如果有则将对应的内容和"+"拼接起来,否则不做处理。最后使用`SUBSTITUTE`函数将结果中的最后一个"+"替换掉。
最终的结果应该是:
```
DA2305220203+DA2305220201+DA2304030117+DA2304030120+DA2305110204+DA2305160249+DA2304280242
```
请注意,如果你的数据范围比"DA2305..."更大,可以将"B1048576"替换成大于你数据范围的行数。但需要注意的是,这个公式的计算量比较大,如果数据比较多,可能会导致Excel卡顿或者崩溃。如果你有任何问题,请随时提出。
阅读全文