Разрешить двум ячейкам зависеть друг от друга - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь написать формулу, которая позволяет мне вычислить формулу, которая имеет две переменные.Я хочу иметь возможность ввести любую переменную A и вычислить ее B, ИЛИ ввести переменную B и вычислить A.

Формула для расчета моих переменных:

  • Значение = NOI/ CAP
  • CAP = NOI / Значение

  • Значение находится в ячейке A1

  • NOI находится в ячейке A2
  • CAP находится в ячейке A3

NOI - известное значение.Я хочу иметь отдельные ячейки для Value и CAP и иметь возможность вводить данные в любую ячейку и выполнять вычисления в другой ячейке на основе моего ввода данных.

Я собирался попробовать функцию IF сISBLANK, но я не уверен, как это сделать, чтобы не переписать формулу.

Ответы [ 2 ]

4 голосов
/ 25 июня 2019

Вы можете иметь формулу или ввести значение, но вы не можете сделать и то, и другое. Обходной путь должен использовать событие Worksheet_change для мониторинга каждой из двух ячеек и установки другой в соответствии с любым введенным значением.

Это будет указано в модуле кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)

    On Error Goto haveError:

    If Target.Address = "$A$2" Then
        Application.EnableEvents = False
        Me.Range("A3").Value = 'set value in A3
        Application.EnableEvents = True
    End If
    If Target.Address = "$A$3" Then
        Application.EnableEvents = False
        Me.Range("A2").Value = 'set value in A3
        Application.EnableEvents = True
    End If
    Exit sub

haveError:
    'make sure events are re-enabled if an error occurs
    Application.EnableEvents = True
End Sub
0 голосов
/ 26 июня 2019

В качестве альтернативного подхода вы можете ввести число в ячейку A1. В ячейке A2 State, если это Cap или Value. В ячейке A3 разместите свой NOI. Поскольку формула, по сути, одинакова для обоих случаев, вы можете просто использовать следующее в A4:

=A3/A1

В B4 я бы поместил следующее, чтобы указать, какое значение это было:

=IF(A2="Value", "CAP", IF(A2="CAP","Value", "Enter Type in A2"))

Однако, если вы абсолютно хотите ввести данные в A1 или A2, а затем рассчитать другую ячейку, тогда ваш единственный подход - VBA, как указал Тим Уильямс.

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