簡體   English   中英

根據 Google 表格中的列值重復整行 N 次

[英]Repeat whole row N times based on column value in Google Sheets

輸入:

Order No    Textbook    Grade       Time          No of times to be repeated
1234        Biology       6      16:30-17:30               2
1235        Physics       7      20:00-21:00               3

希望 Output:-

1234        Biology       6      16:30-17:30
1234        Biology       6      16:30-17:30
1235        Physics       7      20:00-21:00
1235        Physics       7      20:00-21:00
1235        Physics       7      20:00-21:00

試試下面的公式-

=INDEX(SPLIT(FLATTEN(SPLIT(JOIN("",INDEX(REPT(BYROW(A2:D3,LAMBDA(x,TEXTJOIN("|",0,x)))&"@",E2:E3))),"@")),"|"))

在此處輸入圖像描述

要使其成為動態溢出數組,請使用 -

=INDEX(SPLIT(FLATTEN(SPLIT(JOIN("",INDEX(REPT(BYROW(A2:INDEX(D2:D,MATCH("zzz",D2:D)),LAMBDA(x,TEXTJOIN("|",0,x)))&"@",E2:INDEX(E2:E,MATCH(9^9,E2:E))))),"@")),"|"))

在此處輸入圖像描述

輸入:

命令 教科書 年級 時間
1234 生物學 6個 16:30-17:30 3個
1235 物理 7 20:00-21:00 1個

解決方案:

使用SEQUENCE創建一個循環,為每次迭代返回當前行。 循環是通過REDUCE完成的:

=REDUCE(A1:D1,E2:INDEX(E:E,COUNTA(E:E)),
  LAMBDA(a,c,
    LAMBDA(row,
      {
        a;
        IF(c > 1,
          REDUCE(row,SEQUENCE(c-1),LAMBDA(a_,c_,{a_;row})),
          row
        )
      }
    )(OFFSET(c,0,-4,1,4))
  )
)

Output:

命令 教科書 年級
1234 生物學 6個 16:30-17:30
1234 生物學 6個 16:30-17:30
1234 生物學 6個 16:30-17:30
1235 物理 7 20:00-21:00

優勢:

沒有更多的字符串操作和表情符號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM