Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Быстрый отчет или подсчет ячеек по нескольким условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Быстрый отчет или подсчет ячеек по нескольким условиям (Макросы/Sub)
Быстрый отчет или подсчет ячеек по нескольким условиям
urlchik Дата: Понедельник, 19.02.2018, 12:15 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте! Я не программист и не студент, задачки придумываю себе сам по мере возникновения идеи или надобности и для самообразования.
Вот возникла надобность в быстром отчете - есть таблица (прилагается), хочу сделать быстрый отчет по подсчету ячеек по нескольким условиям - например: Посчитать количество 725 по полю "модель"; за период от "01.01.2018" до "10.02.2018"; для "Попов". Или Посчитать за определенный период "от" и "до" количество "фб" по полю "Работа" (причем не "замена фб", а именно "фб" - из всего текста надо вычленить "фб", так как может быть "замена впз", а может быть и то и другое, и т.д.).
Вот логику действий понимаю, с помощью формул делаю (при этом торможение Excel наблюдаю), но вот с кодом ВБА у меня огромная проблема... По этому прошу помощи у Вас - знающих и понимающих.
Переключение поля поиска думаю сделать OptionBootton, но если считаете это неудобным, то - форму можно менять на свое усмотрение

Буду очень признателен и заранее благодарю!

срочности нет
К сообщению приложен файл: 0511703.xlsm (22.4 Kb)


Век живи - век учись!
 
Ответить
СообщениеЗдравствуйте! Я не программист и не студент, задачки придумываю себе сам по мере возникновения идеи или надобности и для самообразования.
Вот возникла надобность в быстром отчете - есть таблица (прилагается), хочу сделать быстрый отчет по подсчету ячеек по нескольким условиям - например: Посчитать количество 725 по полю "модель"; за период от "01.01.2018" до "10.02.2018"; для "Попов". Или Посчитать за определенный период "от" и "до" количество "фб" по полю "Работа" (причем не "замена фб", а именно "фб" - из всего текста надо вычленить "фб", так как может быть "замена впз", а может быть и то и другое, и т.д.).
Вот логику действий понимаю, с помощью формул делаю (при этом торможение Excel наблюдаю), но вот с кодом ВБА у меня огромная проблема... По этому прошу помощи у Вас - знающих и понимающих.
Переключение поля поиска думаю сделать OptionBootton, но если считаете это неудобным, то - форму можно менять на свое усмотрение

Буду очень признателен и заранее благодарю!

срочности нет

Автор - urlchik
Дата добавления - 19.02.2018 в 12:15
Manyasha Дата: Понедельник, 19.02.2018, 14:37 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
urlchik, здравствуйте.
Переключение поля поиска думаю сделать OptionBootton

А если потребуется найти Сидорова с работой фб? Сделала без учета OptionBootton.
[vba]
Код
Private Sub CommandButton1_Click()
    Dim lr&, i&, k%
    lr = Cells(Rows.Count, 2).End(xlUp).Row
    
    For i = 2 To lr
        If Cells(i, "b") >= CDate(TextBox1) And Cells(i, "b") <= CDate(TextBox2) And _
            (Cells(i, "e") = TextBox3 Or TextBox3 = "") And _
            (Cells(i, "f") = Val(TextBox4) Or TextBox4 = "") And _
            (Cells(i, "h") Like "*" & TextBox5 & "*" Or TextBox5 = "") Then
            
            k = k + 1
        End If
    Next i
    Label7 = k
End Sub
[/vba]
Проверки не писала (проверки дат, регистр в ФИО и т.д.)

Если все-таки нужно по OptionBootton, раскомментируйте оставшийся код в форме.
К сообщению приложен файл: 0511703-1.xlsm (27.3 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеurlchik, здравствуйте.
Переключение поля поиска думаю сделать OptionBootton

А если потребуется найти Сидорова с работой фб? Сделала без учета OptionBootton.
[vba]
Код
Private Sub CommandButton1_Click()
    Dim lr&, i&, k%
    lr = Cells(Rows.Count, 2).End(xlUp).Row
    
    For i = 2 To lr
        If Cells(i, "b") >= CDate(TextBox1) And Cells(i, "b") <= CDate(TextBox2) And _
            (Cells(i, "e") = TextBox3 Or TextBox3 = "") And _
            (Cells(i, "f") = Val(TextBox4) Or TextBox4 = "") And _
            (Cells(i, "h") Like "*" & TextBox5 & "*" Or TextBox5 = "") Then
            
            k = k + 1
        End If
    Next i
    Label7 = k
End Sub
[/vba]
Проверки не писала (проверки дат, регистр в ФИО и т.д.)

Если все-таки нужно по OptionBootton, раскомментируйте оставшийся код в форме.

Автор - Manyasha
Дата добавления - 19.02.2018 в 14:37
RAN Дата: Понедельник, 19.02.2018, 14:37 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub CommandButton1_Click()
Label7 = Application.CountIfs(Range("B2:B11"), ">" & CDbl(CDate(Me.TextBox1.Text)) _
, Range("B2:B11"), "<" & CDbl(CDate(Me.TextBox2.Text)) _
, Range("F2:F11"), Val(Me.TextBox4.Text), Range("H2:H11"), Me.TextBox5.Text)
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub CommandButton1_Click()
Label7 = Application.CountIfs(Range("B2:B11"), ">" & CDbl(CDate(Me.TextBox1.Text)) _
, Range("B2:B11"), "<" & CDbl(CDate(Me.TextBox2.Text)) _
, Range("F2:F11"), Val(Me.TextBox4.Text), Range("H2:H11"), Me.TextBox5.Text)
End Sub
[/vba]

Автор - RAN
Дата добавления - 19.02.2018 в 14:37
urlchik Дата: Понедельник, 19.02.2018, 15:11 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А если потребуется найти Сидорова с работой фб? Сделала без учета OptionBootton.


Ничего себе!?!?!? Я думал там будет куча всяких if, dim, with - - - а тут так кратко и работает!!! Блин - где бы учителя найти по ВБА? Чем больше вижу тут всяких интересных кодов, тем больше влюбляюсь в Excel...

Спасибо огромное!

Ах да - я так понял, что без дат работать не будет - по всей таблице просчитать 725 у Попова??? Но это не критично!!! Еще раз спасибо!


Век живи - век учись!
 
Ответить
Сообщение
А если потребуется найти Сидорова с работой фб? Сделала без учета OptionBootton.


Ничего себе!?!?!? Я думал там будет куча всяких if, dim, with - - - а тут так кратко и работает!!! Блин - где бы учителя найти по ВБА? Чем больше вижу тут всяких интересных кодов, тем больше влюбляюсь в Excel...

Спасибо огромное!

Ах да - я так понял, что без дат работать не будет - по всей таблице просчитать 725 у Попова??? Но это не критично!!! Еще раз спасибо!

Автор - urlchik
Дата добавления - 19.02.2018 в 15:11
Manyasha Дата: Понедельник, 19.02.2018, 15:22 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
без дат работать не будет

Проверки не писала

можно добавить условия на пустое поле по аналогии с ФИО и др. полями.
Или при активации формы, например, вывести сразу допустимые границы.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
без дат работать не будет

Проверки не писала

можно добавить условия на пустое поле по аналогии с ФИО и др. полями.
Или при активации формы, например, вывести сразу допустимые границы.

Автор - Manyasha
Дата добавления - 19.02.2018 в 15:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Быстрый отчет или подсчет ячеек по нескольким условиям (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!