Google Sheets - 相当于一个 FOR 循环

Google Sheets - Equivalent of a FOR loop

A1 = 8
A2 = 14

我不知道 Google 表格中是否存在与此等效的内容,但我想做的是,对于 A1 中每 5 的倍数,我想减去 5 A2 并使其成为 A3 中的一个字符串。所以在这个例子中 A3 = 14/9 如果 A1 = 12; A3 = 14/9/4 这甚至应该在 A1 = 16; A3 = 14/9/4/-1

的情况下进入底片

最终我想尽可能避免使用 API/Script 系统。现在我能想到的唯一方法是大量 IF() 处理程序。

这是我目前正在使用的公式,但可以理解它是一团糟,当 IF() 的 运行 出来时它就停止工作了。

=A2&
  IF(A1>5, 
   "/"&A2-5&
   IF(A1>10, 
    "/"&A2-10&
    IF(A1>15, 
     "/"&A2-15&
     IF(A1>20, 
      "/"&A2-20
     , "")
    , "")
   , "")
  , "")

试试这样:

=A2-QUOTIENT(A1, 5)*5

=ARRAYFORMULA(QUERY(IF(ROW(INDIRECT("A1:A"&QUOTIENT(A1, 5)+1)),
 MMULT(TRANSPOSE((     ROW(INDIRECT("A2:A"&QUOTIENT(A1, 5)+2))<=
       TRANSPOSE(      ROW(INDIRECT("A2:A"&QUOTIENT(A1, 5)+2))))*
      {A2; TRANSPOSE(SPLIT(REPT(5*-1&"♦",  QUOTIENT(A1, 5)), "♦"))}), 
 SIGN({A2; TRANSPOSE(SPLIT(REPT(5*-1&"♦",  QUOTIENT(A1, 5)), "♦"))})^2), 
 IFERROR(1/0)), "limit "&QUOTIENT(A1, 5)&" offset 1"))

=IFERROR(ARRAYFORMULA(TO_TEXT(JOIN("/", 
                   IF(ROW(INDIRECT("A1:A"&QUOTIENT(A1, 5)+1)),
 MMULT(TRANSPOSE((    ROW(INDIRECT("A2:A"&QUOTIENT(A1, 5)+2))<=
       TRANSPOSE(     ROW(INDIRECT("A2:A"&QUOTIENT(A1, 5)+2))))*
      {A2; TRANSPOSE(SPLIT(REPT(5*-1&"♣", QUOTIENT(A1, 5)), "♣"))}), 
 SIGN({A2; TRANSPOSE(SPLIT(REPT(5*-1&"♣", QUOTIENT(A1, 5)), "♣"))})^2), 
 IFERROR(1/0))))))