【问题标题】:Extract years from string in Excel从Excel中的字符串中提取年份
【发布时间】:2017-12-25 13:49:35
【问题描述】:

我有一个没有重复模式的覆盖日期列表。例如,我有以下字符串:

Available from 1951 until 1984;

Available from 1964 volume: 2 issue: 1 until 2002 volume: 20 issue: 4;

Available from 1958 volume: 1 issue: 1;

Available from 1970 issue: 24 until 1989 issue: 110;  Available from 1990 volume: 1 issue: 1 until 2001 volume: 12 issue: 4;

我正在尝试仅将年份值提取到 Excel 中的不同列中,例如:

Available from 1951 until 1984; -> 1951 | 1984
Available from 1964 volume: 2 issue: 1 until 2002 volume: 20 issue: 4; -> 1964 | 2002
Available from 1970 issue: 24 until 1989 issue: 110;  Available from 1990 volume: 1 issue: 1 until 2001 volume: 12 issue: 4; -> 1970 | 1989 | 1990 | 2001

(如果可能,每年应该出现在不同的列中) 有没有办法让我提取岁月?我想写一个 VB 代码,但我真的不精通 VB。

谢谢。

【问题讨论】:

    标签: excel text-extraction


    【解决方案1】:

    使用这个数组公式:

    =IFERROR(INDEX(MODE.MULT(IF((TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(ROW($1:$50)-1)*999+1,999))="from")+(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(ROW($1:$50)-1)*999+1,999))="until"),SUBSTITUTE(TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),(ROW($1:$50))*999+1,999)),";","")*{1,1})),COLUMN(A:A)),"")
    

    作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter。

    输入 B1,按 Ctrl-Shift-Enter。然后复制/上下拖动。

    此公式查找fromuntil 并提取下一个“单词”作为返回值。如果该规则不一致,那么这将不起作用。

    【讨论】:

    • 这太棒了!我仍在试图弄清楚它是如何构建的,因为它没有我想使用的任何功能(TRIM 除外)!非常感谢
    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2020-09-18
    • 2021-05-10
    • 2016-06-13
    • 1970-01-01
    • 2021-12-05
    • 2021-05-06
    相关资源
    最近更新 更多