EXCEL三六五中,如何查找并提取单元格中指定的内容或数值到另一单元格?

如图,我要把E7、E8单元格中所列参数中的功率值,分别提取到F7、F8单元格中,请大shen给个公式,并注明yu法,谢谢

如果E列的功率没有带小数,或者虽然带了小数,但整数部分的数字比小数部分的数字大的话,可以试试下面的公式:

F7=-MIN(-TEXT(RIGHT(MID(E7,FIND("W",E7)-6,6),{1,2,3,4,5,6}),"#.0;;0;\0"))

下拉。

公式说明:FIND找到E7中功率单位的符号W所在的位置,再往前退6个位置开始取6个字符,如E7中取到:

功率:480

再用RIGHT从取到的6个字符中,从右到左分别取1到6个字符:

0、80、480、:480、率:480、功率:480

再TEXT对6个取到的字符串设置模式后面英文双引号中3个分号隔开共4种可能的数字格式:

正数:#.0 ,即用带1位小数的数字

负数:直接分号隔开,因为不可能出现负数,所以忽略

0:0,仍然为0

文本:    \0 ,强制为0(为了便于后面的处理,将其转换为数字)

这样,TEXT就把6个字符串表示为:

0、80.0、480.0、0、0、0

但6个数字是文本格式的,所以text前面加一个负数,将其转换为数字:

0、-80.0、-480.0、0、0、0

6个数字中,最小的数,也就是绝对值最大的,用MIN取出来,再在前面加一个负号,还原为正数。也可以在text前面加2两个负号,把文字数字转换为数字,再用MAX取最大的数。

追问

谢谢。可用。只是F8单元格中有两个W时,,公式找到的是第一个W,不过这是小问题了。我去掉参数里的第一个W就好。当然,如果单元格中出现两个W,也能找到我想要的内容的话就完美了。

追答

也可以用前面的功率来找,但考虑可能不一定输入功率,就用了功率特定的符号W,关键是要知道你的数据特点,才好用公式。

追问

是的。谢谢。大神

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-26

先说一下前提条件:EXCEL中字符串公式,对应的数据源一定是要有规律的,哪怕是复杂的规律也行。

我默认的E列数据的规律是:1、你要去的功率数量前面有固定字符串“功率:”(冒号为中文状态);2、要取的功率数据都是以大写“W”结尾;

如果E列数据不满足以上两点要求,需要手工稍作调整。(利入要在E9单元格的“30W”前面补充“功率:”),如果这种调整多的话,可以用查找替换的方式批量处理。

下面进入正题:

这里用的嵌套函数是(基于F7单元格) =MID(E7,FIND("功率:",E7)+3,FIND("W",SUBSTITUTE(E7,LEFT(E7,FIND("功率:",E7)+2),)))

第2个回答  2020-08-26

=-LOOKUP(,-RIGHT(LEFT(E7,FIND("W",E7)-1),ROW($1:$9)))&"W"

这个公式提取功率位置前不能有W出现,不然还得用别的公式。

第3个回答  2020-08-26
没有测试,
也许有错误,
希望对你有帮助!
F7单元格:
=if(find("功率:",E7)>0,mid(E7,find("功率:",E7)+6,find("W",E7)-(find("功率:",E7)+5)), mid(E7,find(",",E7)+2, find("W",E7)-(find(",",E7)+1)) )追问

F7单元格找到“W”,下拉公式,F8单元格提示公式中所用的某个值 是错误的数据类型,显示#VALUE!

第4个回答  2020-08-26

=MID(E2,FIND("功率",E2)+3,FIND("W",E2)-FIND("功率",E2)-1)

是你想要的结果吗

有帮助麻烦点个赞  谢谢

追问

提示公式中所用的某个值 是错误的数据类型。

相似回答