Excel IF 条件,如果作为数组公式输入则计算结果为 TRUE,否则计算结果为 FALSE
Excel IF condition that will evaluate to TRUE if entered as an array formula, and FALSE if not
我正在尝试让我交给其他人的仪表板万无一失,它包含一些数组公式。如果有人编辑了一个数组公式而忘记点击 Ctrl+Shift+Enter
,现在所发生的只是公式开始 returning 结果以一种微妙的方式不正确。
我想要的是某种 IF
检查我可以添加到公式中,如果他们忘记将它作为数组公式输入,我可以 return 一个明确的错误。
类似于:
=IF(IsArrayFormula, NormalFormula, "Ctrl+Shift+Enter Required")
VBA 对我来说不是一个选择,但如果您想为没有该限制的人留下 VBA 解决方案,我不会投反对票。
您可以像这样在条件中使用 MATCH:
=IF(SUM(IFERROR(MATCH({1,2},{2},0),0)),NormalFormula,"Ctrl+Shift+Enter Required")
如果不使用 Ctrl + Shift + Enter 输入公式,则匹配只会尝试在 {2,2}
数组中查找 1
,而不会查找 return 一个错误。
此错误将 return 0
触发 False 条件的 IF 条件。
如果输入正确,它将从错误中添加 0
,然后在第一个位置找到 2
,然后 return 将 1
的总和添加到条件中。
这将 return 为真,正常公式将触发。
只是因为你打开它 vba。
如果用户忘记了,这会自动将公式转换为数组公式:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G25")) Is Nothing Then
If Not Target.HasArray Then
Target.FormulaArray = Target.Formula
End If
End If
End Sub
当然,当确保只检查应包含数组公式的单元格时,这可能会变得复杂。我只检查G25.
我正在尝试让我交给其他人的仪表板万无一失,它包含一些数组公式。如果有人编辑了一个数组公式而忘记点击 Ctrl+Shift+Enter
,现在所发生的只是公式开始 returning 结果以一种微妙的方式不正确。
我想要的是某种 IF
检查我可以添加到公式中,如果他们忘记将它作为数组公式输入,我可以 return 一个明确的错误。
类似于:
=IF(IsArrayFormula, NormalFormula, "Ctrl+Shift+Enter Required")
VBA 对我来说不是一个选择,但如果您想为没有该限制的人留下 VBA 解决方案,我不会投反对票。
您可以像这样在条件中使用 MATCH:
=IF(SUM(IFERROR(MATCH({1,2},{2},0),0)),NormalFormula,"Ctrl+Shift+Enter Required")
如果不使用 Ctrl + Shift + Enter 输入公式,则匹配只会尝试在 {2,2}
数组中查找 1
,而不会查找 return 一个错误。
此错误将 return 0
触发 False 条件的 IF 条件。
如果输入正确,它将从错误中添加 0
,然后在第一个位置找到 2
,然后 return 将 1
的总和添加到条件中。
这将 return 为真,正常公式将触发。
只是因为你打开它 vba。
如果用户忘记了,这会自动将公式转换为数组公式:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G25")) Is Nothing Then
If Not Target.HasArray Then
Target.FormulaArray = Target.Formula
End If
End If
End Sub
当然,当确保只检查应包含数组公式的单元格时,这可能会变得复杂。我只检查G25.