Excel中的左/右功能

时间:2013-08-19 14:13:27

标签: excel

我在Excel工作,我有这个公式:

=IF(B9="1","1/1",IF(B9="2","1 & 2",IF(ISNUMBER(SEARCH("/",B9)),B9,
IF(ISNUMBER(SEARCH("-",B9)),LEFT(B9,FIND("-",B9)-1)&" thru 
"&RIGHT(B9,FIND("-",B9)-1),"1 thru "&VALUE(B9)))))

where B9="9-24"

为什么这个公式输出"9 thru 4"

我希望它输出“9到24”。这很奇怪,因为if B9="18-24",例如,这个公式正确地吐出"18 thru 24"

但是,如果破折号前面的数字是一位数字,那么似乎存在问题。而且我被困住了。

3 个答案:

答案 0 :(得分:6)

因此,实际相关的那个长公式的位是:

LEFT(B9,FIND("-",B9)-1) & " thru " & RIGHT(B9,FIND("-",B9)-1)

如果B9包含文本“9-24”(不带引号),则FIND("-",B9)给出2。

所以你的公式变成了 LEFT(B9,1) & " thru " & RIGHT(B9,1)

给你最左边的单个字符和最右边的单个字符,所以“9到4”。

如果B9包含文本“18-24”(不带引号),则FIND("-",B9)给出3,您得到最左边的两个字符和最右边的两个字符。

如果您想要“ - ”之前和之后的单元格部分,则需要将公式的“右”部分更改为:

RIGHT(B9,LEN(B9) - FIND("-",B9))

答案 1 :(得分:0)

您正在使用RIGHT(),您应该使用MID()。要使用MID(),您需要足够长的第三个参数来捕获破折号后的所有内容。这有效:

=IF(B9="1","1/1",IF(B9="2","1 & 2",IF(ISNUMBER(SEARCH("/",B9)),B9,
IF(ISNUMBER(SEARCH("-",B9)),LEFT(B9,FIND("-",B9)-1)&" thru 
"&MID(B9,FIND("-",B9)-1,99),"1 thru "&VALUE(B9)))))

答案 2 :(得分:0)

函数RIGHT将返回字符串最右边的字符。例如:

RIGHT("hello", 1)

将返回o

在您的功能中,您正在执行以下操作:

RIGHT(B9,FIND("-",B9)-1)

这取决于" - "从右侧减去1作为要使用的字符数。所以你使用第一个数字的长度作为第二个数字的长度。

相反,您应该执行以下操作:

RIGHT(B9,LEN(B9)-FIND("-",B9))

这将在" - "。

之后为您提供最右边的字符