Здравствуйте уважаемые форумчане. Необходим макрос подсчета строк в которых выполнено условие совпадения в нескольких столбцах, эквивалент функции СЧЕТЕСЛИМН. Данный макрос считает количество совпадений "Маша" в первом столбце: [vba]
Код
Sub Подсчет() i = Application.WorksheetFunction.CountIf(Sheets("Лист1").Columns(1), "Маша") Sheets("Лист2").Cells(10, 1) = i End Sub
[/vba] Как подсчитать количество строк в которых "Маша" в первом столбце, "июнь" во втором, "1" в третьем? Заранее спасибо.
Здравствуйте уважаемые форумчане. Необходим макрос подсчета строк в которых выполнено условие совпадения в нескольких столбцах, эквивалент функции СЧЕТЕСЛИМН. Данный макрос считает количество совпадений "Маша" в первом столбце: [vba]
Код
Sub Подсчет() i = Application.WorksheetFunction.CountIf(Sheets("Лист1").Columns(1), "Маша") Sheets("Лист2").Cells(10, 1) = i End Sub
[/vba] Как подсчитать количество строк в которых "Маша" в первом столбце, "июнь" во втором, "1" в третьем? Заранее спасибо.Sashagor1982
Один из простейших способов - без массивов, коллекций и т.п. (чтобы Вас не грузить лишний раз и не путать) [vba]
Код
Sub tt() x1_ = "Маша" x2_ = "июнь" x3_ = 1 r_ = Range("A" & Rows.Count).End(xlUp).Row 'Ищем последнюю заполненную строку в столбце А 'Или просто 'r_=30 For i = 1 To r_ If Range("A" & i) = x1_ Then If Range("B" & i) = x2_ Then If Range("C" & i) = x3_ Then n_ = n_ + 1 End If End If End If Next i Sheets("Лист2").Cells(10, 1) = n_ End Sub
[/vba] Функцией (если не нравится СУММЕСЛИМН) можно так
Один из простейших способов - без массивов, коллекций и т.п. (чтобы Вас не грузить лишний раз и не путать) [vba]
Код
Sub tt() x1_ = "Маша" x2_ = "июнь" x3_ = 1 r_ = Range("A" & Rows.Count).End(xlUp).Row 'Ищем последнюю заполненную строку в столбце А 'Или просто 'r_=30 For i = 1 To r_ If Range("A" & i) = x1_ Then If Range("B" & i) = x2_ Then If Range("C" & i) = x3_ Then n_ = n_ + 1 End If End If End If Next i Sheets("Лист2").Cells(10, 1) = n_ End Sub
[/vba] Функцией (если не нравится СУММЕСЛИМН) можно так
через подобное Application.WorksheetFunction.CountIf можно?
А Вам не кажется, что об этом было бы неплохо написать в первом сообщении, а? Это так, на будущее - вдруг еще вопросы появятся. Ну, раз Вам хочется так, держите [vba]
Код
Sub tt() Sheets("Лист2").Cells(10, 1).FormulaR1C1 = "=SUMPRODUCT((Лист1!C=""Маша"")*(Лист1!C[1]=""июнь"")*(Лист1!C[2]=1))" Sheets("Лист2").Cells(10, 1) = Sheets("Лист2").Cells(10, 1).Value End Sub
через подобное Application.WorksheetFunction.CountIf можно?
А Вам не кажется, что об этом было бы неплохо написать в первом сообщении, а? Это так, на будущее - вдруг еще вопросы появятся. Ну, раз Вам хочется так, держите [vba]
Код
Sub tt() Sheets("Лист2").Cells(10, 1).FormulaR1C1 = "=SUMPRODUCT((Лист1!C=""Маша"")*(Лист1!C[1]=""июнь"")*(Лист1!C[2]=1))" Sheets("Лист2").Cells(10, 1) = Sheets("Лист2").Cells(10, 1).Value End Sub
[/vba] Кстати, а чем Вам так циклы не угодили?_Boroda_