1

我正在编写一个 If+Or 函数,并希望对函数中的不同逻辑使用多个单元格引用,而不是在原始 if+or 函数中编写每个逻辑语句。关于如何解决这个问题的任何想法?希望我在这里不要太不清楚..

例如:而不是写 =If(or(A1=A2,A3=A4),A1,0) 我想在一个单元格列表中写出所有不同的逻辑值,然后只写原始的 if+or 公式像这样: =IF(OR(B1),A1,0) 其中 B1 包含文本“A1=A2,A3=A4”

感谢您对此的任何帮助!

4

2 回答 2

0

你不能拥有一切

而不是使用=IF(OR(B1),A1,0)你必须使用

例如=IFOR(B1,A1)(我更喜欢""而不是0,抱歉)
或者=IFOR(B1,A1,0)如果你(更喜欢0而不是""),
或者将声明中的ElseValue更改为0
那么你可以使用=IFOR(B1,A1)来获取0

Function IFOR(IfOrCell As Range, ThenCell As Range, _
    Optional ElseValue As Variant = "", _
    Optional SplitDelimiter As String = ",") As Variant
'Description:
  'Pending...

  'Recalculation
  Application.Volatile

  'Variables
  Dim arrIfOr As Variant
  Dim iIfOr As Integer
  Dim blnIfOr As Boolean

  'The Array: The Split
  If InStr(IfOrCell.Value2, SplitDelimiter) = 0 Then Exit Function
  arrIfOr = Split(IfOrCell.Value2, SplitDelimiter)

  'An Additional Split Introducing the Boolean
  For iIfOr = LBound(arrIfOr) To UBound(arrIfOr)
    If InStr(arrIfOr(iIfOr), "=") <> 0 Then
      If Range(Split(arrIfOr(iIfOr), "=")(0)).Value2 _
          = Range(Split(arrIfOr(iIfOr), "=")(1)).Value2 Then
        blnIfOr = True
        Exit For
      End If
    End If
  Next

  'Output
  If blnIfOr = True Then
    IFOR = ThenCell.Value2
   Else
    IFOR = ElseValue
  End If

End Function
于 2018-10-29T16:16:25.217 回答
0

您可以使用间接功能。

例如,如果单元格 A6 中的值为 10,则 INDIRECT("A6") = 10。所以基本上您可以在 IF 公式中编写 INDIRECT("A6")=INDIRECT("A7") 而不是 A1=A2 条件. 如果您想在一个单元格中包含“A1=A2”,您可以使用 LEFT 和 RIGHT。

这是一个示例:https ://docs.google.com/spreadsheets/d/157tRicA55TFKKOi86yYBQScnjaQE6fYxaCHFdZx4uUM/edit?usp=sharing

PS:此解决方案适用于 Google 表格,因此如果您使用 Excel,该解决方案可能会有所不同,但这也适用于 Excel。

于 2018-10-28T21:18:58.777 回答