【问题标题】:Inserting formula to cell after every nth row and incrementing the number by +1 in the formula在每第 n 行后将公式插入单元格并在公式中将数字增加 +1
【发布时间】:2024-01-21 12:38:01
【问题描述】:

我想在单元格 A1、A5、A9 等中使用公式 =SUM(B2:B3),但想像 =SUM(B5:B6) 等那样增加公式。

这是我的电子表格链接。

我想做的并不像我最初发布的那么简单,但逻辑应该是一样的。

我在一张表中有两个标签,即“代码”和“股票详细信息”。在代码选项卡中,我按顺序列出了 A 列中的所有代码符号。

在其他选项卡中,我在单元格 B1 '=tickers!A1' 中有公式,它从 Tab Tickers 获取股票代码。

在单元格 A2 和 B2 中,我分别有这个公式

=index(importhtml("https://www.gurufocus.com/stock/"&$B1&"/summary","table",6),,1)

=index(importhtml("https://www.gurufocus.com/stock/"&$B1&"/summary","table",6),,2)

每个代码表填充大约 24-25 行,然后我想对第一个选项卡中的所有代码重复该过程。

我还在这里分享了电子表格链接。

https://docs.google.com/spreadsheets/d/1uyc-KWvg45QLR4l1CvrKAFIMEZFh-dKIyI12t9Hvi5A/edit?usp=sharing

【问题讨论】:

  • 分享您的工作表副本
  • 添加了电子表格副本。
  • 请更新您的示例电子表格并包含所需输出的示例
  • 更新了显示所需输出的表格,希望它能让事情变得清晰

标签: google-sheets google-sheets-formula array-formulas google-sheets-query cumulative-sum


【解决方案1】:

尝试:

=ARRAYFORMULA(IFERROR(IF(B1:B<>"",,QUERY(IF(B1:B="",,
 MMULT(N(TRANSPOSE(IF((TRANSPOSE(ROW(
 INDIRECT("B1:B"&MAX(IF(B1:B="",,ROW(B1:B))))))>=ROW(
 INDIRECT("B1:B"&MAX(IF(B1:B="",,ROW(B1:B))))))*(
 {""; TRANSPOSE(TRIM(SPLIT(QUERY(REPT("♦"&ROW(INDIRECT("B1:B"&COUNTBLANK(
 INDIRECT("B1:B"&MAX(IF(B1:B="",,ROW(B1:B))))))), 2)&"♦",,999^99), "♦")))}=TRANSPOSE(
 {""; TRANSPOSE(TRIM(SPLIT(QUERY(REPT("♦"&ROW(INDIRECT("B1:B"&COUNTBLANK(
 INDIRECT("B1:B"&MAX(IF(B1:B="",,ROW(B1:B))))))), 2)&"♦",,999^99), "♦")))})), 
 INDIRECT("B1:B"&MAX(IF(B1:B="",,ROW(B1:B)))), 0))), ROW(
 INDIRECT("B1:B"&MAX(IF(B1:B="",,ROW(B1:B)))))^0)), "offset 2", 0))))

【讨论】:

    【解决方案2】:

    如果你想拖动公式使用:

    =IF(B1<>"",,SUM(INDIRECT("B"&ROW()+1&":B"&ROW()+2)))
    

    【讨论】:

      【解决方案3】:

      我发现这也有效:

      =ARRAYFORMULA(IF((MOD(ROW(A:A),3)=1)*({B2:B;""}<>""),VLOOKUP(FLOOR(ROW(A:A)-1,3),QUERY({FLOOR(ROW(A:A)-1,3),N(B:B)*(MOD(ROW(B:B)-1,3)>0)},"select Col1,SUM(Col2) group by Col1"),2,0),))
      

      Here is a sample sheet.

      【讨论】:

      • @player0 我是不是误会了什么?
      最近更新 更多