动态添加 "page breaks" 到 Google 工作表或 x 行数的公式

formula(s) to add "page breaks" to Google Sheets or x number of rows dynamically

我有一个样品 GS here

我有一个 GS 有多个订单,每个订单都有不同种类的商品。一个订单可能有 1 个项目或一个订单可能有 200 个项目(行)。

我想找出一种方法来在其自己的页面上打印出每个订单,我想知道是否有办法通过公式来实现。

一个例子可能是,我有 3 个订单,每个订单有 5-10 件商品,因此每个订单都可以整齐地放在一个页面上。我想点击打印一次并打印出 3 页,每个订单一张。

一个更高级的例子可能是,我有 5 个订单。 3 个订单的商品很少,因此每个订单都可以整齐地放在一页上。但是其他订单可能有足够的项目成为多页订单。同样,我想点击一次打印,至少打印 5 页。

有没有办法做这样的事情?我开始尝试做一个查询来计算每个订单的行数,并可能用 Sequence 函数做一些事情,但它很快就超出了我的深度。

尝试:

=INDEX({input!A1:D1; TRIM(SUBSTITUTE(QUERY(""&SPLIT(FLATTEN({
 FLATTEN(QUERY(TRANSPOSE(IF(input!A2:A="",,"×"&input!A2:D&"9E+99")),,9^9)), 
 TEXT(IF(input!A2:A="",,IFNA(VLOOKUP(input!A2:A&" "&
 COUNTIFS(input!A2:A, input!A2:A, ROW(input!A2:A), "<="&ROW(input!A2:A)), {input!A2:A&" "&
 COUNTIFS(input!A2:A, input!A2:A), IF(input!A2:A="",,
 REPT("9E+99 ", COLUMNS(input!A1:D1)))}, 2, 0))), SPLIT(REPT("@×", 
 4 + N("<< number of rows between")), 
 "×")), FLATTEN(QUERY(TRANSPOSE(IF(input!A2:A="",,IFNA(VLOOKUP(input!A2:A&" "&
 COUNTIFS(input!A2:A, input!A2:A, ROW(input!A2:A), "<="&ROW(input!A2:A)), {input!A2:A&" "&
 COUNTIFS(input!A2:A, input!A2:A), IF(input!A2:A="",,input!A1:D1&"9E+99")}, 
 SEQUENCE(1, COLUMNS(input!A:D))+1, 0)))),,9^9))}), "9E+99", 0), 
 "where Col3 is not null limit "&(COUNTUNIQUE(input!A2:A))*(
 4 + N("<< number of rows between"))+COUNTA(input!A2:A), 0), "×", ))})

对于介于两者之间的或多或少的行,同时更改 4s