根据 google 工作表中给定的 if 条件重复行 N 次

Repeat rows N of times based on a given if condition in google sheets

所以我有一列包含以下行

7-A
9-B
10-C

我想做的是“如果左起第一个数字是7重复6次,如果左起第一个数字是9重复8次,如果10重复9次,”

我可以用下面的公式做到这一点,但它只适用于一种重复设置

=sort(trim(transpose(split(query(arrayformula(REPT(A2:A600&"*",6)),,9999),"*"))),1,0)

但我需要根据上述条件更改重复次数

如果有一种方法可以用脚本编辑器来完成,那也很棒

欣赏

尝试:

=ARRAYFORMULA(QUERY(FLATTEN(IFNA(SPLIT(REPT(IF(A2:A="",,A2:A&"♀"), 
 REGEXEXTRACT(A2:A, "\d+")-1), "♀"))), "where Col1 is not null", 0))


更新:

=ARRAYFORMULA(QUERY(FLATTEN(IFNA(SPLIT(REPT(IF(A2:A="",,A2:A&"♀"), 
 VLOOKUP(REGEXEXTRACT(A2:A, "\d+")*1, 
 {5, 6; 6, 6; 7, 6; 8, 6; 9, 8; 10, 9; 11, 9}, 2, 0)), "♀"))), 
 "where Col1 is not NULL", 0))

REPT 可以接受匹配的参数数组。在您的代码中,使用 regexextract

添加一个可变的第二个参数
=sort(trim(transpose(split(query(arrayformula(REPT(A1:A3&"*",REGEXEXTRACT(A1:A3,"\d+")-1)),,9999),"*"))),1,0)