我有一個包含以下日期的范圍 (B1:B7)
1-Jan 1-Jan 1-Jan 2-Jan 2-Jan 2-Jan 3-Jan
我希望此范圍根據單元格值重復 N 次,并且每次重復該范圍時,還將該范圍的每個值增加 7。
例如:如果單元格 A1 中的值 = 3,我希望日期范圍從單元格 A2 開始重復 3 次,每次重復時將值增加 7。
預期結果:1-Jan 1-Jan 1-Jan 2-Jan 2-Jan 2-Jan 3-Jan 8-Jan 8-Jan 8-Jan 9-Jan 9-Jan 9-Jan 10-Jan 15-Jan 15- 1月15日-1月16日-1月16日-1月16日-1月17日-1月
下面是我用來重復范圍的公式。但是當范圍每次重復時,我找不到將值增加 7 的方法。
=query(flatten(transpose(ARRAYFORMULA(split(rept(B1:B7&" ",A1)," ")))),"其中 Col1 不為空")
結果 : 1-Jan 1-Jan 1-Jan 2-Jan 2-Jan 2-Jan 3-Jan 1-Jan 1-Jan 1-Jan 2-Jan 2-Jan 2-Jan 3-Jan 1-Jan 1-Jan 1-Jan 2-Jan 2-Jan 2-Jan 3-Jan
uj5u.com熱心網友回復:
鑒于您帖子中的確切范圍和規格,此公式應該適用于 A2:
=ArrayFormula(FLATTEN(TRANSPOSE(FILTER(B:B,B:B<>"") SEQUENCE(1,A1,0,7))))
FILTER 從 B1:B 創建一個僅包含非空行的虛擬陣列。
到這些日期將被添加一個SEQUENCE由[數A1]的列,從0開始,并通過7.跳過在張貼例子,其中A1 = 3,然后,這個數字的第1行SEQUENCE:將如下所示0 7 14(在每一個單獨的虛擬柱子)。
這些數字將添加到 中的每個日期FILTER以形成一個網格,該網格的行數與日期一樣多,列數與 A1 中的數字一樣多。
這個網格TRANSPOSE在下一步之前是d,以保持日期按照原始垂直串列的順序,而不是推遲到每個的水平添加。
然后將網格FLATTEN編入一列。
公式被包裹起來是ArrayFormula( )因為它正在處理陣列而不是單個單元格。
請記住,您可能需要以您選擇的日期格式格式化結果范圍(即 A2:A)。否則,您可能會看到原始日期,即 44000-45000 范圍內的數字。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/372941.html
上一篇:陣列列重復
