如何从不连续的数字列表中创建范围显示?

问题描述 投票:2回答:1

我制作了一个bash脚本来显示范围内的数字,我想知道是否可以在无脚本的情况下在Sheets中执行相同的操作。

例如,我进入一列数字(例如A)::

001
002
004
012
013
014
...

而且我在单元格中有一个可变前缀(假设B1 =“ PREFIX”)

是否有一种显示结果的方式如下:

PREFIX001-PREFIX002
PREFIX004
PREFIX012-PREFIX014
...

非常感谢您的帮助!

google-sheets google-sheets-formula google-sheets-query
1个回答
2
投票

可以完成。例如,A3:A范围有数字,B1将是前缀,B3:B将有结果行。

enter image description here

[B3中的公式仅是(因为它是数组公式):

=ARRAYFORMULA(
  TRANSPOSE(SPLIT(
    REGEXREPLACE(
      REGEXREPLACE(
        TEXTJOIN(
          ",",
          True, 
            IF(
              NOT(ISNUMBER(A3:A)),
                "",
                IF(
                    NOT(ISNUMBER({""; OFFSET(A3:A, 0, 0, ROWS(A3:A) - 1)}))
                  + NOT(ISNUMBER({A4:A; ""}))
                  + (  ISNUMBER({""; OFFSET(A3:A, 0, 0, ROWS(A3:A) - 1)})
                     * (A3:A <> {""; OFFSET(A3:A, 0, 0, ROWS(A3:A) - 1)} + 1))
                  + (  ISNUMBER({A4:A; ""})
                       * (A3:A <> {A4:A; ""} - 1)),
                    TEXT(A3:A, "00#"),
                    ""
                  )
            )
          & IF(
              ISNUMBER({A4:A; ""})
            * (A3:A = {A4:A; ""} - 1),
              "-",
              ""
          )
        ),
        "(?:-,)+",
        "-"
      ),
      "\d+",
      B1 & "$0"
    ),
    ","
  ))
)

这里是带有解决方案逐步说明的样本表:link

© www.soinside.com 2019 - 2024. All rights reserved.