Многокритериальный подсчет Excel для всей таблицы

#excel #vba #countif

#excel #vba #подсчет

Вопрос:

Я пытаюсь подсчитать количество вхождений в таблицу на основе двух критериев. Приведенная ниже формула, похоже, работает, когда я меняю второй диапазон критериев с F3: S7 на один столбец F3: F7. Я попытался создать диапазон dim и установить диапазон для are и включить его в формулу, но это тоже не работает. Как я могу заставить второй критерий принимать диапазон из нескольких столбцов вместо одного?

 Sub Count_number_of_occurrences_with_multiple_criteria()

'declare a variable

Dim ws As Worksheet

Set ws = Worksheets("CountPrep2 (2)")

'count the number of occurrences with two criteria

ws.Range("B10") = Application.WorksheetFunction.CountIfs(ws.Range("B3:B7"), ws.Range("B9"), ws.Range("F3:S7"), ws.Range("A10"))

End Sub
 

Ответ №1:

Согласно документации Microsoft о CountIfs, каждый дополнительный диапазон должен иметь такое же количество строк и столбцов, что и Range1.

Мое предложение состояло бы в том, чтобы воссоздать эффект проверки критериев с использованием циклов For, которые проходят через требуемые диапазоны. Вот так:

 Sub Count_number_of_occurrences_with_multiple_criteria()

    'declare a variable
    
    Dim ws As Worksheet, _
        rng1 As Range, rng2 As Range, _
        r1Cell As Range, r2Cell As Range, _
        counter As Integer
    
    Set ws = Worksheets("CountPrep2 (2)")
    
    Set rng1 = ws.Range("B3:B7")
    Set rng2 = ws.Range("F3:S7")
    
    For Each r1Cell In rng1
        If r1Cell = ws.Range("B9") Then
            For Each r2Cell In rng2
                If r2Cell = ws.Range("A10") Then
                    counter = counter   1
                End If
            Next r2Cell
        End If
    Next r1Cell
    'count the number of occurrences with two criteria
    
    MsgBox counter
End Sub
 

Примечание: я не знаю особенностей ваших данных или формата файла, поэтому метод, с помощью которого я проверяю критерии, вероятно, неточно подсчитывает количество вхождений. Это всего лишь пример того, как вы можете достичь желаемых результатов.

Комментарии:

1. Спасибо, Тоддлсон. Да, это довольно забавно. В моей исходной таблице есть столбец с местоположением (критерий 1) и несколько столбцов с ответами на такие вопросы, как да, нет, нет и т. Д. (критерий 2). Например, я пытаюсь подсчитать количество «да» в таблице для местоположения 1, и он считывает критерии местоположения и ответа из b9 и a10. Я использую обычный рабочий лист Excel. Если я подсчитаю количество строк и столбцов, смогу ли я использовать что-то более похожее на мою исходную формулу в формате цикла, заменив строки и столбцы чем-то вроде (C[3]) вместо range(«F3: F7») ?