【问题标题】:Is it possible in google sheets to convert a list of numbers into a sequence of numbers and ranges?谷歌表格中是否可以将数字列表转换为数字和范围序列?
【发布时间】:2021-02-11 23:04:09
【问题描述】:

我有一张表,其中一列包含一大堆数字(从 000 到 999 的任意位置),但并未列出所有数字。我用一个公式:

=regexreplace(regexreplace(trim(join(",", sort($C$4:$C))),",+", ","),",$","")

转换数字列,如:

001
006
005
000
008
023
007

进入排序的逗号分隔列表:

000,001,005,006,007,008,023

这一切都很好,但是当输入越来越多的数字时它开始变得相当冗长,我很想找到一种方法来通过数字范围来压缩它,例如:

000,001,005-008,023

有没有办法在谷歌表格中做到这一点?

如果它是一个函数 - 如果你指出哪个函数我会很高兴,我会查看它的帮助,我只是想不出它会被称为什么(我已经看过“序列”和查看似乎与“范围”匹配的所有内容的列表 - 但没有看到任何看起来可以满足我想要的东西)

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    尝试:

    =ARRAYFORMULA(JOIN(",", SUBSTITUTE(TEXT(REGEXREPLACE(REGEXREPLACE(
     TO_TEXT(SPLIT(REGEXREPLACE("×"&JOIN("×", 
     TEXT(SEQUENCE(MAX(A1:A*1)+1, 1, 0), "000")), JOIN("|", FILTER(
     TEXT(SEQUENCE(MAX(A1:A*1), 1, 0), "000"), NOT(COUNTIF(A1:A, 
     TEXT(SEQUENCE(MAX(A1:A*1), 1, 0), "000"))))), ), "××", 0)), 
     "^×|×$", ), "×(.+)×", "-"), "000"), "×", ",")))
    

    【讨论】:

    • 哇!出色的!我不知道我是否会自己想出这个。我将不得不花一些时间来理解所有的部分,这样我的工具箱里就会有更多的东西,但这是完美的。非常感谢!
    猜你喜欢
    • 2017-10-02
    • 1970-01-01
    • 2012-04-08
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多