嘿,我几个小时以来正在考虑解决我的问题的方法。我也搜索了网络,并且能够找到一些方法,但是没有一种方法可以解决我的问题。

我有一个单元格,其数据显示如下:

(Monday@100%[00:00-24:00]);(Tuesday@100%[00:00-24:00]);(Wednesday@100%[00:00-24:00]);(Thursday@100%[00:00-24:00]);(Friday@100%[00:00-24:00]);(Saturday@100%[00:00-24:00]);(Sunday@100%[00:00-24:00])


问题是,该字符串不一致。它也可能看起来像这样:

(Monday@125%[00:00-04:00]);(Monday@90%[04:00-08:00]);(Monday@90%[08:00-12:00]);(Monday@115%[12:00-16:00]);(Monday@120%[16:00-20:00]);(Monday@115%[20:00-24:00]);(Tuesday@125%[00:00-04:00]);(Tuesday@90%[04:00-08:00]);(Tuesday@90%[08:00-12:00]);(Tuesday@115%[12:00-16:00]);(Tuesday@120%[16:00-20:00]);(Tuesday@115%[20:00-24:00]);(Wednesday@125%[00:00-04:00]);(Wednesday@90%[04:00-08:00]);(Wednesday@90%[08:00-12:00]);(Wednesday@115%[12:00-16:00]);(Wednesday@120%[16:00-20:00]);(Wednesday@115%[20:00-24:00]);(Thursday@125%[00:00-04:00]);(Thursday@90%[04:00-08:00]);(Thursday@90%[08:00-12:00]);(Thursday@115%[12:00-16:00]);(Thursday@120%[16:00-20:00]);(Thursday@115%[20:00-24:00]);(Friday@125%[00:00-04:00]);(Friday@90%[04:00-08:00]);(Friday@90%[08:00-12:00]);(Friday@115%[12:00-16:00]);(Friday@120%[16:00-20:00]);(Friday@115%[20:00-24:00]);(Saturday@125%[00:00-04:00]);(Saturday@90%[04:00-08:00]);(Saturday@90%[08:00-12:00]);(Saturday@115%[12:00-16:00]);(Saturday@120%[16:00-20:00]);(Saturday@115%[20:00-24:00]);(Sunday@125%[00:00-04:00]);(Sunday@90%[04:00-08:00]);(Sunday@90%[08:00-12:00]);(Sunday@115%[12:00-16:00]);(Sunday@120%[16:00-20:00]);(Sunday@115%[20:00-24:00])


字符串的结构是


您一周中的某天后跟一个“ @”
at(@)后面的数字可以在0到999之间
之后,您将有一天中的时间放在方括号[]中
一天最多可以有6个不同的时间范围(不多,但少)
每个时间帧簇用分隔;并在普通括号内()


这是我的出发位置。我想要的是提取@和%之间的数字并按时间顺序列出(星期一至星期日,一天中的小时)。

我可以使用该公式提取一周中每一天@和%之间的数字

=MID(B3;SEARCH("Monday@";B3)+7;SEARCH("%";B3)-SEARCH("Monday@";B3)-7)


但这仅在一周的每一天都被提及的情况下才有效。

我不知道每天有更多时间框架时如何使它工作。感谢任何帮助。

谢谢,

拉蒙

最佳答案

您可以使用Excel的“文本到列”功能,并使用)作为分隔符。比将列转置为行可以得到以下内容:

(Monday@125%[00:00-04:00]
;(Monday@90%[04:00-08:00]
;(Monday@90%[08:00-12:00]
;(Monday@115%[12:00-16:00]
;(Monday@120%[16:00-20:00]
...
;(Sunday@115%[20:00-24:00]


然后应用公式。

编辑:

仅使用FindMid即可实现:
excel - 提取字符之间的数字并对其进行排序-LMLPHP

查找和中点背后的想法始终是相同的。
例如查找(的是=FIND("(";[Text])
例如用于提取Day的是=MID([Text];[@[Pos(]]+1;[@[Pos'@]]-[@[Pos(]]-1)

关于excel - 提取字符之间的数字并对其进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41103599/

10-10 18:52