Как мне объединить несколько критериев и значений вместе?

Вопрос или проблема

Например,
Компании ABC: $10
DEF: $12
GHI: $15
JKL: $5
MNO: $10

У меня есть выпадающий список в столбце F: Названия и сколько компаний платить (с использованием VBA кода). Для первой строки я выбрал ABC, DEF и JKL. Мне нужно назначить $10 для ABC, $12 для DEF и $5 для JKL. Кроме того, к назначенной сумме мне нужно добавить сумму за оборудование, канцелярские принадлежности и инструменты. Если в столбце доставки поставлен флажок, мне нужно добавить еще $20 (фиксированная плата). Какие формулы я могу использовать для связывания всего вышеперечисленного (или можно ли это сделать). Я пробовал SUMIF, COUNTIF, но у меня ограниченные знания. Надеюсь, мой вопрос понятен! Спасибо!

Ссылка

Ответ или решение

Чтобы объединить несколько критериев и значений в Excel с использованием VBA и формул, необходимо тщательно продумать структуру данных и логику расчётов. Давайте разберёмся с вашей задачей шаг за шагом.

Шаг 1: Структура данных

У вас есть данные о компаниях и их соответствующих ставках, например:

  • ABC: $10
  • DEF: $12
  • GHI: $15
  • JKL: $5
  • MNO: $10

Также у вас есть выпадающий список в колонке F, где вы можете выбрать названия компаний (например, ABC, DEF, JKL).

Шаг 2: Ввод данных и расчёт значений

  1. Ввод данных: Введите названия компаний в колонку F, например, в ячейках F1, F2 и F3.
  2. Дополнительные расходы: Предположим, у вас есть другие расходы:
    • Оборудование: $X (введите значение в ячейку, например, B1)
    • Канцтовары: $Y (введите значение в ячейку, например, B2)
    • Инструменты: $Z (введите значение в ячейку, например, B3)
    • Проверка доставки: введите TRUE или FALSE в ячейку G1.

Шаг 3: Формулы

Теперь, когда у вас есть все необходимые данные, давайте разберёмся с формулами.

Для расчёта общей суммы, которая будет учитывать как платы за компании, так и дополнительные расходы, вы можете использовать следующую формулу:

=SUMPRODUCT((F1:F3={"ABC","DEF","JKL"})*(10,12,5)) + B1 + B2 + B3 + IF(G1, 20, 0)

Разъяснение формулы:

  • SUMPRODUCT: Эта функция позволяет умножать массивы и потом суммировать результаты. В данном случае она суммирует стоимость выбранных компаний.
  • (F1:F3={"ABC","DEF","JKL"}): Это логическое выражение проверяет, есть ли выбранные компании в диапазоне.
  • *(10,12,5): Используя SUMPRODUCT, вы умножаете логическое выражение на соответствующие значения.
  • + B1 + B2 + B3: Суммируйте дополнительно указанные значения для расходов.
  • IF(G1, 20, 0): Условия, когда добавляется фиксированная плата в случае, если "Доставка" отмечена.

Шаг 4: VBA код

Если вам необходимо создать динамическую функциональность, например, чтобы автоматически заполнять значения в зависимости от выбора из выпадающего списка, вы можете использовать следующий код в редакторе VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim total As Double
    Dim baseCosts As Object
    Set baseCosts = CreateObject("Scripting.Dictionary")

    ' Заполнение стоимости компаний
    baseCosts.Add "ABC", 10
    baseCosts.Add "DEF", 12
    baseCosts.Add "JKL", 5

    If Not Intersect(Target, Me.Range("F1:F3")) Is Nothing Then
        total = 0

        ' Цикл по всем выбранным компаниям
        For Each cell In Me.Range("F1:F3")
            If baseCosts.Exists(cell.Value) Then
                total = total + baseCosts(cell.Value)
            End If
        Next cell

        ' Добавление дополнительных расходов
        total = total + Me.Range("B1").Value + Me.Range("B2").Value + Me.Range("B3").Value
        If Me.Range("G1").Value = True Then
            total = total + 20
        End If

        ' Вывод результата
        Me.Range("H1").Value = total ' Предположим, вы хотите вывести результат в H1
    End If
End Sub

Разъяснение кода:

  • Этот код срабатывает при изменении ячеек F1:F3.
  • Каждое название компании проверяется на наличие в словаре baseCosts, и соответствующее значение добавляется к общему итогу.
  • Также учитываются дополнительные расходы и фиксированная плата в зависимости от отметки в G1.

Заключение

С помощью описанных методов и формул вы сможете динамически объединять несколько критериев и значений в Excel. Изучение этих функций и использование VBA значительно расширит ваши возможности работы с данными. Не забывайте сохранять резервные копии данных и тестировать свои формулы на небольших объёмах данных, прежде чем применять их к большим наборам. Удачи!

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

Капча загружается...