【问题标题】:Can you copy an array formula down without having to hit Ctrl+Shift+Enter?您可以复制数组公式而无需按 Ctrl+Shift+Enter 吗?
【发布时间】:2015-07-16 20:18:31
【问题描述】:

我尝试了类似“excel array formula: not have to 'ctrl-shift-enter'?”下的修复,这是我的公式:

=(0*0)+SUM(IF(A10=Bundle!$B$2:$B$58233,1/(COUNTIFS(Bundle!$B$2:$B$58233,A10,Bundle!$N$2:$N$58233,Bundle!$N$2:$N$58233)),0))

“修复前”公式有效,但是行数很多,Ctrl + Shift + 回车需要很长时间 共 2624 次。我按照建议添加了代码和上面的0*0,但它没有用。我必须做些什么来激活代码吗?

这篇文章和其他几篇在线帖子表明数组公式只会填充,但这也不起作用。

【问题讨论】:

  • 您应该能够像其他任何方法一样向下拖动公式。当你这样做时会发生什么?另外,建议在哪里做(0 * 0)?我并不是说这是不正确的,只是看起来你从某个地方得到了一些提示,我只是好奇在哪里。 (即理解你的意思是“修复之前”)。另外,this question on SO 有帮助吗?
  • 您会想到一个 Google-Docs 工作表,它会自动填充输入数组类型函数的单元格下方的单元格。
  • 你提到的问题是我从哪里得到的(0 * 0)。它有以下代码: Option Explicit Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 将单元格作为目标中的每个单元格的范围 If Target.Cells.Count = 1 Then If InStr(1, Target.公式, "(0*0)+", vbTextCompare) And _ Target.HasArray = False Then Target.FormulaArray = Target.Formula End If End If End If Next cell End Sub
  • 您可能还想研究一种替代解决方案,该解决方案不会使用引用 58232 行数据的数组公式填充 2625 行。
  • 这是我找到的唯一解决方案,而不是手动计算每个客户帐户(捆绑列 B)中的每个位置(捆绑列 N)。对我的客户来说,这是一个价值 1000 万美元的问题,所以我想弄清楚。我将尝试仅提取我需要的列,然后进行小计。它可能在没有其他列存在的情况下工作(以前没有)。

标签: arrays excel


【解决方案1】:

如果数组公式在单元格 B2 中,并且您想将公式复制并粘贴到单元格 B3:B10,您可以将公式粘贴到单元格 B3:B10强>。粘贴公式时不能包含单元格 B2,否则会收到“您无法更改数组的一部分”错误消息。

【讨论】:

  • 有趣的是,多年来我一直在填写和复制数组公式。只有当它最初被放入多个单元格时,我才会遇到麻烦。
猜你喜欢
  • 2018-12-19
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 2010-10-10
  • 2022-01-14
  • 2015-03-07
相关资源
最近更新 更多