在wps或excel里面,在一段文本里面把两个数字按大小挑出来?

就像图片里面一样,因为拿来的格式各不相同,单位也不统一,前后字数也不一样,但要把里面的两个数字弄在后面的单元格里面,有没有办法?

公式暂时没有找到一步到位按小到大的方法,但可以把单元格中的数字按先后顺序取出(不限于2个),如图:

E2=LOOKUP(9^9,--MID($A2,SMALL(IF(MMULT(1-ISNUMBER(-MID($A2,ROW($1:$99)+{0,1},1)),{1;-1})=1,ROW($2:$100)),COLUMN(A:A)),COLUMN($A:$O)))

右拉到F2,再一起下拉

用Power Qurey可以实现数字按大小顺序取出,不过步骤比较多,但没太多的难度:

将数据(一定要有标题,如果没有,Power Qurey会自动添加)导入到Power Qurey中后

    数次拆分数据列

第1次按“从非数字到数字”, 这样每2列中前1列全为文本字符,后1列以数字开头

第2次开始,对数字开头的列拆分,有多少列,就拆分多少次,本问题中有2列,拆分按“从数字到非数字”

PS:两次拆分依据的含义:以A1单元格为例,“王”直到“中”都是非数字,第1个数字是1,所以在“中”与1之间拆分,后面再次出现非数字到数字是“有”与数字5之间;“数字到非数字”则反过来了。

拆分完后,所有数字就都在单一的数字列中了

2. 删除非数字列

3. 添加一个索引列,以记录每一行。

4. 用分隔符(如逗号)合并所有数字列,如180和5,合并成:180,5

5. 对合并的列再次按分隔符拆分,拆分时选择“高级”,并选择“拆分到行”——这里是第一个关键点,这样拆分后同一行数据拆分到连续的行中了

6. 排序,先以索引排列 排序,再以拆分后的数字列排序,这样就达到了原来是一个单元格数据是连续的(同一个索引号),且按大小排序了

7. 把排序的数字改变数据类型,改成文本——这是第二个关键点,只有先变成文本,才能在下面的步骤中进行合并

8. 以索引列为依据分级,将数字(已为文本)列合并,合并时先求和,结果显示为错误,再在编辑栏中将求和的M语句修改为文本合并(且添加特定的分隔符,如逗号),重新把同一行(同一索引号)的数字合并到一行中

9. 再次拆分合并后文本数据列,这次是拆分到列(Power Qurey默认方式)

通过步骤5到9,就实现了提取的数字按从小到大的顺序排列了。

最后上载回Excel工作表中。

追问

首先对你的答案表示感谢,确实做到了取数。
不好意思,你的这个公式,第一个数在第一位的时候取不到。例如
200个橘子坏了30个,李大姐说的
但我其实还想要排序功能,我会提高悬赏,如果有其他小伙伴做到了,就采取其他小伙伴的,如果没有,我就用你的好了。如果你能够给出更好的方案就好了。谢谢。

追答

没有什么不好意思。你要补充条件,修改下公式就是。遗憾的提问的截图中没有数字开头的数据举例。

至于一定要排序,就把取出的数据作为辅助列,再进行一次排序提取就是。如图在H:I列中得到最终结果:

H2=SMALL($E2:$F2,COLUMN(A:A))

右拉到I2,再一起下拉。觉得前面的公式提取出来的E:F列碍眼,把它们隐藏起来好了。

而Power Qurey无非也是增加两个步骤,处理下数字开头变成在前面有文本即可。

至于悬赏神马,都是浮云。不是对本问题感兴趣,才不愿花这么多精力来琢磨。昨天整整花了3个小时才弄出这两种方法。

那就和你一起等待更好的结果吧。要直接用公式一步得到排序结果,实在没想到好的办法。自我感觉,提取数字的公式是相当有难度和创意了。


这样一个难题,不说是什么也不值的悬赏分,就是如果当面帮忙,花上大半天时间,一顿饭是要请的吧。哈哈。

追问

谢谢辅助列的方式,确实可以解决我的问题,计算部分我已经移入sheet2里面了。sheet1看起来还是干净整齐的。确实没有想到会花兄弟这么多的时间。
最后你的E4的公式是怎么样的?我调了半天没成功,用的是一个巨笨的办法,强行把$A2改成了"A"&$A2,把这种情况去掉了。/捂脸

追答

老朽之古稀人了,请千万别随便叫兄弟,承受不起。
公式就是在A的前面连上一个任何文本字符即可,如直接连一个空——" "。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-03-01
个人建议,一是要利用Ctrl+e尝试利用自动匹配样式来处理,或通过mid函数来实现。
相似回答