IF 函数其中第一个结果 returns #VALUE

IF function where the first result returns #VALUE

我在 A 列中有以下内容:

112234
113456(Producer)
123211
114523(Producer)
224431(Producer)

我想创建一个 B 列和一个 C 列,将其分隔为:

112234
113456         (Producer)
123211
114523         (Producer)
224431         (Producer)

所以我将此 IF 语句放在 B 列中,但它为第一条和第三条记录提供了#VALUE:

=IF(FIND("(",A2)>1,LEFT(A2,FIND("(",A2)-1),A2)

谁能告诉我我做错了什么?

FIND() returns 找不到您要查找的内容时出现错误,而不是 0。

试试这个。

=IF(ISERROR(FIND("(",A2)),A2,LEFT(A2,FIND("(",A2)-1))

数字总是 6 位数吗?如果是这样,我认为没有什么可以阻止您使用 text-to-columns.

当前错误是由于 FIND() 实际上没有返回任何数字以在您的 IF() 中进行比较。您可以通过简单的串联来绕过此问题,以断言确实存在左括号:

B1中的公式:

=LEFT(A1,FIND("(",A1&"(")-1)

顺便说一句,我不确定左括号后的数据是否总是“Producer”,但以防万一,您可以在 C1 中使用以下内容:

=REPLACE(A1,1,LEN(B1),"")