Я хочу написать формулу Excel, которая может рассчитывать комиссию, используя простую процентную ставку. Поля будут:

  1. Количество
  2. процент
  3. Комиссия взимается

Как мне написать формулу, которая может дать ответы на любое поле после заполнения двух других полей?

2 ответа2

2

Как мне написать формулу, которая может дать ответы на любое поле после заполнения двух других полей?

Ты не можешь.

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

Поскольку у вас всего 3 параметра, вы можете легко установить различные диапазоны для расчета параметров.

Или просто используйте настройку, как показано ниже:

2

Скажем, мы начинаем с:

Таким образом, A1 и B1 имеют константы, а C1 имеет формулу. Поместите этот макрос в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range, B As Range, C As Range, AC As Range

    Set A = Range("A1")
    Set B = Range("B1")
    Set C = Range("C1")
    Set AC = Union(A, B, C)

    With Application
        If Intersect(AC, Target) Is Nothing Then Exit Sub
        If .WorksheetFunction.CountBlank(AC) <> 1 Then Exit Sub
        .EnableEvents = False
            If A = "" Then
                A = C / B
            ElseIf B = "" Then
                B = C / A
            Else
                C = A * B
            End If
        .EnableEvents = True
    End With
End Sub

Затем очистите A1 - C1 (как блок).
Затем введите любые два значения.

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите View Code - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. вызвать окна VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код листа), см .:

http://www.mvps.org/dmcritchie/excel/event.htm

Макросы должны быть включены, чтобы это работало!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .