【问题标题】:EXCEL: automatically apply the same formula to a range of cellsEXCEL:自动将相同的公式应用于一系列单元格
【发布时间】:2022-12-12 11:58:03
【问题描述】:

我相信有某种自动方法可以将相同的公式应用于一系列单元格。一列很好,但更复杂的范围将不胜感激。

例如,假设我们有

    A       B     C           D       E        F          G
1  alice   bob    A+B               elias   Franckie    A+..+F
2  10       33    (formula)         15       22        (copy)
3  20       33    (copy)            15       15        (copy)      
4  15       33    (copy)            15       15        (copy)

我想编辑 C2 中的公式:SUM($A2:B2)(注意相对和绝对的混合),当我按回车键时,将其扩展到整个 C 列(理想情况下也是 G 列)

语境:我的目标是写一个复杂的带查找的公式(同时使用相对和绝对引用),并依靠一致性检查进行调试;没有手动复制粘贴到多个地方的麻烦(和错误)

注1:谷歌搜索不断给出诸如“使用复制粘贴”或“拖动单元格一角的小手柄”之类的答案。这还不够:我正在寻找一种在我按下回车键时自动更新整个范围的方法

笔记2: 绝对理想的是USE_A_COPY_OF_FORMULA_WRITTEN_IN($C$2),但我怀疑它是否存在

注3: 在最后一个资源上我会写一个复制粘贴宏,但我真的很想让我的工作表没有宏

【问题讨论】:

  • 使用表格(插入 > 表格)然后整列自动更新
  • @Ike:似乎适用于单个范围 (C2:C5),但不适用于复杂范围 (C2:C5,H2:H5)。但这是向前迈出的一大步

标签: excel-formula


【解决方案1】:

像这样的东西怎么样:

=LET(range,DROP(HSTACK(A:A,B:B,D:D,E:E),1),
     TAKE(
          SCAN(0,
               FILTER(range,
                      TAKE(range,,-1)<>""),
               LAMBDA(a,b,
                      a+SUM(b)))
          ,,-1))

HSTACK 用于堆叠您想要累计求和的任何列。

我引用了整行,并使用 DROP 不包括标题,但最好将范围缩小到例如 A2:A5,B2:B5, ..

SCAN 逐行处理累计和单元格。它生成一个数组,用于求和的范围的高度和宽度。 (2nd) TAKE 确保只会溢出累积数组的最后一列。

1st TAKE 确保仅当最后一列的值不为空时才添加行的累计和。 请注意,如果最后一列中的任何单元格未提交,则总计行将按照现在的书写方式被省略。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    相关资源
    最近更新 更多