Excel公式问题?

EXCEL,在A1里面输入文字,文字包括2种类型,X楼a个;X楼a-b个,不管是什么楼,只看多少个,a个输出1,a-b输出(b-a+1),在B2中输出,例如A楼3-5个,输出3,注意X可能包含数字和符号“-”

可以使用Excel中的函数来实现这个操作,具体步骤如下:
1. 在B1单元格中输入标题,例如“A楼3-5个”。
2. 在B2单元格中编写公式,用于提取文本中的数字和字符信息。可以使用Excel 的几个函数:FIND、LEFT、RIGHT 和 MID 来实现。具体公式如下:
```
=LEFT(A1,FIND("楼",A1)-1) // 提取楼层数字,从左边开始提取到"楼"前的数字部分
```
```
=MID(A1,FIND("楼",A1)+1,FIND("-",A1)-FIND("楼",A1)-1) // 提取多少个数字,从"楼"之后直到"-"之前的所有数字,使用MID函数实现
```
```
=RIGHT(A1,LEN(A1)-FIND("-",A1)) // 提取多少个数字的另一个数字,从"-"之后到字符串末尾的所有数字,使用RIGHT和LEN函数实现
```
3. 在B3单元格中编写公式,来计算输出的结果。我们可以使用IF函数和ABS函数来实现。具体公式如下:
```
=IF(ISNUMBER(B3),1,ABS(VALUE(MID(A1,FIND("-",A1)+1,LEN(A1)-FIND("-",A1))-VALUE(MID(A1,FIND("楼",A1)+1,FIND("-",A1)-FIND("楼",A1)-1))+1)) // 判断多少个是否为数字,如果是数字则输出1,否则计算多少个的值
```
在这个公式中,首先使用 ISNUMBER 函数判断 B3 中的内容是否为数字,如果是数字则输出 1。如果不是数字,则使用 MID 和 FIND 函数提取字符串中的数字和 "-",接着用 VALUE 函数将这些字符转换为数字,并使用 ABS 函数计算 a-b 的差的绝对值加 1,即为最终输出的结果。
通过以上公式实现,即可快速计算出输入的 A1 中“楼层数字”和“多少个数字”的值,以及最终的结果,在 B2 和 B3 中可以看到输出结果。注意,如果输入的内容不符合格式,这些公式可能会得到错误的结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-05-17

您可以使用 Excel 公式函数来实现这个任务,具体的步骤如下:

    在 B1 单元格中输入标题 "处理结果";

    在 B2 单元格中输入以下公式,并按下回车键: =IFERROR(IF(LEFT(A1,1)="X",IF(ISNUMBER(SEARCH("-",A1)),MID(A1,FIND("-",A1)-1,FIND("-",A1)-FIND("楼",A1)+2)-MID(A1,FIND("楼",A1)+1,FIND("-",A1)-FIND("楼",A1)-1)+1,1),"不是有效的输入值"),"不是有效的输入值")

    这个公式中包括了以下几个函数:

    LEFT 函数:获取单元格 A1 中的文字的第一个字符,以判断是否以 X 开头;

    SEARCH 函数:在单元格 A1 中查找字符“-”所在的位置,以判断该文字是否为类型 2;

    MID 函数:从单元格 A1 中截取出需要计算的数字,用于后续计算;

    FIND 函数:在单元格 A1 中查找字符“楼”的位置,以及字符“-”所在的位置,用于后续截取数字;

    IF 函数:用于判断单元格 A1 中的输入类型,并根据需要进行不同的计算;

    IFERROR 函数:用于处理输入错误的情况,以输出提示信息。

    单元格 B2 中的公式会根据输入的内容,进行不同的计算,并输出结果。如果输入的内容无效,公式会输出提示信息“不是有效的输入值”。

    如果需要在多个单元格中进行批量处理,可以将公式复制到其他单元格中即可。

    希望这个方法能够帮助您解决问题。

第2个回答  2023-05-17

请见上述图片A列和B列输出:

B列的公式:=IF(ISNUMBER(FIND("-",MID(A1, LEN(A1)-3, 3))),RIGHT(MID(A1, LEN(A1)-3, 3))-LEFT(MID(A1, LEN(A1)-3, 3)),RIGHT(MID(A1, LEN(A1)-3, 3)))

如果有帮助到你请采纳建议,谢谢

第3个回答  2023-05-17

要实现这个功能,你可以使用Excel的文本处理函数和逻辑函数来提取所需的信息并进行计算。可以按照以下步骤进行操作:

    假设你的文字输入在单元格A1中,将以下公式输入到B1中:

=IF(ISNUMBER(SEARCH("-",A1)),VALUE(MID(A1,SEARCH("-",A1)+1,LEN(A1)-SEARCH("-",A1)))-VALUE(MID(A1,SEARCH("楼",A1)+1,SEARCH("-",A1)-SEARCH("楼",A1)-1))+1,1)

    这个公式使用了SEARCH函数来查找特定字符的位置,使用MID函数提取指定位置的文本,使用VALUE函数将文本转换为数字。IF函数根据是否存在"-"符号来判断是单个个数还是范围个数,并进行相应的计算。

    将公式应用到其他单元格即可。

    例如,如果A1中的文字是"A楼3-5个",那么B1中的输出将是3。

    请注意,这个公式假设文字中只会包含一个"-"符号和一个"楼"关键词,如果文字格式有所变化,可能需要进行相应的调整。此外,公式对于非法的输入可能会产生错误,你可以根据需要添加额外的错误处理逻辑。

第4个回答  2023-05-17
你可以尝试使用文本函数和字符串函数进行处理。
假设你在A1单元格输入的内容是“X楼3个”,则你可以使用如下公式在B2单元格输出结果:
Copy Code
=IFERROR(IF(MID(A1,FIND("楼",A1)-1,1)="-",MID(A1,FIND("楼",A1)+1,FIND("-",A1,FIND("楼",A1))-FIND("楼",A1)-1)-MID(A1,FIND("楼",A1)-1,1)+1,MID(A1,FIND("楼",A1)+1,FIND("个",A1)-FIND("楼",A1)-1)), "无法识别格式")
此公式中,IFERROR函数用于在出现错误时返回指定的结果,这里返回“无法识别格式”;
MID函数用于从文本串中提取指定长度的子串,在这里用于提取房间数值,例如3和5;
FIND函数用于查找指定文本在文本串中的位置,根据“楼”和“个”来定位房间数值的起始位置和结束位置;
IF函数用于判断楼层类型,若类型为“X楼a-b个”形式,则输出b-a+1,否则输出1。
适当调整公式中的参数,可让该公式适用于不同的情况。
相似回答
大家正在搜