簡體   English   中英

(Excel)從另一個單元格中選擇公式標准/邏輯等(參考)

[英](Excel) Pick formula criteria/logical etc from another cell(reference)

我正在編寫一個If + Or函數,並希望對該函數中的不同邏輯使用多個單元格引用,而不是在原始的if + or函數中編寫每個邏輯語句。 關於如何解決這個問題的任何想法? 希望我在這里不太清楚。

例如:我不想寫= If(or(A1 = A2,A3 = A4),A1,0),而是想在單元格列表中寫出所有不同的邏輯值,只寫原始的if + or公式像這樣:= IF(OR(B1),A1,0)其中B1包含文本“ A1 = A2,A3 = A4”

感謝您的幫助!

您可以使用INDIRECT函數。

例如,如果單元格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

附注:此解決方案適用於Google表格,因此,如果您使用的是Excel,則該解決方案可能會有所不同,但也適用於Excel。

你不能擁有全部

不必使用=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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM