(Excel) Выбрать критерии формулы / логические и т. Д. Из другой ячейки (ссылка) - PullRequest
0 голосов
/ 28 октября 2018

Я пишу функцию If + Or и хотел бы использовать несколько ссылок на ячейки для различных логических функций в функции вместо записи каждого логического утверждения в оригинале, если + или функция.Есть идеи как решить это?Надеюсь, я не слишком неясен здесь ..

Как пример: вместо записи = If (или (A1 = A2, A3 = A4), A1,0) я хотел бы записать все различные логические значения всписок ячеек, и просто напишите оригинал, если + или формула, как это: = IF (ИЛИ (B1), A1,0), где B1 содержит текст «A1 = A2, A3 = A4»

Спасибоза любую помощь в этом!

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы НЕ МОЖЕТЕ Все Это

Вместо использования =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
0 голосов
/ 29 октября 2018

Вы можете использовать функцию INDIRECT.

Например, если значение в ячейке A6 равно 10, INDIRECT ("A6") = 10. Таким образом, вы можете написать INDIRECT ("A6") = INDIRECT.(«A7») вместо условия A1 = A2 в формуле IF.Если вы хотите, чтобы "A1 = A2" в одной ячейке, вы можете использовать ВЛЕВО и ВПРАВО.

Вот пример: https://docs.google.com/spreadsheets/d/157tRicA55TFKKOi86yYBQScnjaQE6fYxaCHFdZx4uUM/edit?usp=sharing

PS: это решение для Google Sheets, поэтомурешение может немного отличаться, если вы используете Excel, но это должно работать и для Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...