【问题标题】:Identify cells without array formulas识别没有数组公式的单元格
【发布时间】:2015-11-23 18:40:51
【问题描述】:

我想找出没有输入数组公式的单元格。这将帮助我确定数组公式“丢失”的位置,因为我错误地退出了单元格并且没有按 CTRL+SHIFT+ENTER。最初我正在考虑使用条件格式来突出显示没有大括号 { 或 } 的单元格,但这似乎是不可能的。对另一种方式有什么想法吗?提前致谢!

【问题讨论】:

  • AFAIK 你将无法执行条件。使用括号作为条件进行格式化。 Excel 不会将括号放在单元格本身中,因此它永远不会看到一个。您可以通过在 A1 中执行数组公式来测试这一点,然后使用返回 0=COUNTIF(A1,"*}*")。您愿意接受 VBA 选项吗?让我们考虑相反的情况——如果没有输入数组公式,那么单元格中的内容是什么?如果为空,您可以使用IsBlank() 查找没有公式的。
  • 你知道你输入的数组公式的语法吗?表格中是否有许多具有相同(或相似)语法的公式?

标签: arrays excel excel-formula


【解决方案1】:

您可以使用命名公式来做到这一点。

选择工作表中的所有单元格。

打开名称管理器 (Ctrl+F3) 并单击“新建...”按钮。

对于“名称”字段,输入:ShowArrays

对于“参考”字段,输入:

=GET.CELL(49,A1)

点击“确定”,然后点击“关闭”。

现在对于条件格式输入这个公式:

=ShowArrays

注意:GET.CELL 是 VBA 的古老(但仍包括在内)前身 Excel4 宏语言的一个函数。一些 Excel4 宏函数可以在名称管理器的命名公式中使用。参数 49 指示函数返回 True/False 单元格是否是数组公式的一部分。

【讨论】:

  • 是的,你不能就这样丢下一个知识炸弹而不多解释一下。这是怎么回事?!
  • 这里是 some helpful information ... 但 MSDN 链接已失效
  • 哇。感谢 Excel 英雄。这真是太棒了,而且效果很好!
  • @ScottHoltzman 查看我的类似文章here 包含一些指向 XLM 技术的有用链接。
  • 谢谢@brettdj - 非常有用:)
【解决方案2】:

通过巧妙的IF 检查,您可以让您的公式自行识别它们是否已作为数组公式输入。这是我想出的一个相当简洁的方法:

=IF(SUM(1*CHOOSE({1,2},-1,1)), "Error: You must use an array formula (Ctrl+Shift+Enter)", (Array Formula Here))


它的工作方式是CHOOSE 公式总是返回数组(或列表),但是当作为常规公式输入时,除了第一个数组元素之外的所有元素都会被静默地切掉。作为常规公式,它只会返回第一个数字 (-1),但作为数组公式,它将返回一个包含两个数字 {-1,1} 的列表。当SUM 作用于formuer 时,结果为-1,IF 将其视为“TRUE”(IF 实际上将任何非零值视为“TRUE”)。

SUM 得到列表{-1,1} 时,将两者相加返回0,IF 将其视为FALSE,因此我们知道这是输入了一个数组公式,可以继续执行真正的公式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    相关资源
    最近更新 更多