Возможно ли в Ecxel создать такую формулу? Сумма данных в зависимости от значения в ячейке

 

Вопрос от подписчика: Возможно ли в Ecxel создать такую формулу? Сумма данных в зависимости от значения в ячейке

 

Здравствуйте  ! Мое имя Сергей. Нужна Ваша помощь в задаче:

1) Все вычисления будут выполнятся на одном листе. Учет долгов клиентов с отображением общей суммы в закрепленной области листа.

2) В Ячейках А1, A2, A3, A4 будут находится постоянные текстовые записи (Паша, Маша, Даша, Коля) .  Эти стоки являются закрепленной областью экрана в верхней части листа.

3) Ячейки сбоку от этих записей (B1, B2, B3, B4) будут зависимыми ячейками и будут суммировать долг из ячейки. Например В10. Тогда как ячейка А10 будет содержать выпадающий список — Паша, Маша, Даша, Коля.

4) В зависимости от того что будет выбрано в ячейке А10 — к примеру «Маша», заданные цифровые данные из ячейки В10 должны быть прибавлены к ячейке  в закрепленной области в Ячейку В2 т. к. А2 Содержит Запись- «Маша». И соответственно Если выбрать в ячейке А10 — «Коля» , то данные из ячейки В10 будут прибавлены к ячейке В4.

5) Таких ячеек как А10 и В10 будет 40 в листе, но ячейки в закрепленной области должны из них суммировать данные в ячейки В1, В2, В3 или В4. В зависимости от выбора из выпадающего списка.

Реально ли такое вычисление задать в электронных таблицах ?  Буду благодарен за образец формулы для ячеек из столбца В*.

Ответ:

Для решения данной задачи следует выполнить следующие действия:

  •  Закрепить область со списком сверху листа, как показано на рисунке ниже:

    Закрепить области в Excel
    Закрепить области в Excel
  • Создать выпадающий список, как показано на рисунке ниже или описано в статье «Как сделать раскрывающийся список в excel«:

    Выпадающий список в Excel
    Выпадающий список в Excel
  • Добавить макрос проверки данных и суммирования значений:Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As RangeSet KeyCells = Range(«A10»)If Not Application.Intersect(KeyCells, Range(Target.Address)) _
    Is Nothing Then
    Dim a As String
    Dim r As Integer
    Dim c As Integer

    a = Target.Value
    r = 20
    c = 20

    For Each Cell In Range(«Лист1!A1:A4»)
    If Cell.Value = Target.Value Then

    r = Cell.Row
    c = Cell.Column

    Cells(r, (c + 1)).Value = Cells(r, (c + 1)).Value + Cells(10, 2).Value

    End If
    Next

    End If
    End Sub

    Записать макрос в Excel
    Записать макрос в Excel

    Принцип работы макроса:

  • В ячейку B10 вноситься число
  • В ячейке A10 выбирается имя
  • При изменении ячейки A10 происходит  сравнение ее значения с перечнем в ячейках A1-A4 и при совпадении суммирование с ячейками B1-B4 .
Пример файла с макросом можно скачать по ссылке: http://ruexcel.ru/goodfiles-summ/

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *