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,则得到倒数第三名、倒数第四名等。我不知道这是否有帮助。