Google sheets Google电子表格:拆分字符串并返回最后N个元素

Google sheets Google电子表格:拆分字符串并返回最后N个元素,google-sheets,Google Sheets,我在一列中有字符串(“-”)分隔的数据(字母数字,可变长度),其格式为 Column A "aaa-bbb-ccc" "ddd-bbb-eee" "aaa-fff-ggg" 我已经能够在其他地方使用返回部分数据,但是从数组开始到数组结束,这是N个元素,所以我可以 aaa (num_cols = 1) aaa-bbb (num_cols = 2) aaa-bbb-ccc (num_cols = 3) 我希望从拆分数据中获取最后N个元素

我在一列中有字符串(“-”)分隔的数据(字母数字,可变长度),其格式为

Column A
"aaa-bbb-ccc"
"ddd-bbb-eee"
"aaa-fff-ggg"
我已经能够在其他地方使用返回部分数据,但是从数组开始到数组结束,这是N个元素,所以我可以

aaa               (num_cols = 1)
aaa-bbb           (num_cols = 2)
aaa-bbb-ccc       (num_cols = 3)
我希望从拆分数据中获取最后N个元素,以便

bbb-ccc   OR 
ccc
num_cols只从数组的开头到后面,所以这对我的场景没有好处

对于一个类似的问题,我建议使用来检索最后一个值,如果我的RegEx-Foo更强,那么也许我可以在正确的方向上稍微推动它

我知道可以使用它,但它一次只能从拆分数据返回一个元素,因此会变得混乱/低效


所以问题是,有人知道如何从数组返回最后N个元素吗?普通排序不起作用,但反转数组可能起作用。

没有
反转功能。我认为有两种方式:

  • 写小函数是sctipt:反向数组
  • 使用丑陋的巨大公式
  • 庞大的公式样本

    =JOIN(“-”),QUERY({ArrayFormula(行(间接(“A1:A”)和COUNTA(拆分(A1,“-”))))),TRANSPOSE(拆分(A1,“-”),“按列1描述限制2选择列2顺序”)

    更改公式末尾的
    限制2
    ,以获得N个最后的元素


    脚本示例

    试试这个:

    function reverseLine(line) {
      return line[0].reverse();
    } 
    
    用作自定义公式:
    =reverseLine(B1:D1)
    对于行:
    aaa bbb ccc
    返回:

    ccc
    bbb
    aaa
    

    如果可变长度仅来自附加在前三个字符后的
    -aaa
    格式的集合数量,则可通过以下方式从前面去除这三个字符以及所需的更多集合:

    =replace(A1,1,find("-",A1)*B1,"")
    

    其中,A1包含
    aaa bbb ccc
    和B1等,即除前三个要删除的字符外,再加上一个字符的集合数

    我不知道这在谷歌表单中是否有效,或者我是否理解您的意图,但是
    =TRIM(RIGHT(replacement(A1,“-”,REPT(“-”,100))
    获取文本的最后一位,
    =TRIM(LEFT(RIGHT(replacement(A1,“-”,REPT(“-”,40)),60),40))
    得到倒数第二名,如果将60增加80到120,则得到倒数第三名、倒数第四名等。我不知道这是否有帮助。