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

Вход

Регистрация

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

 

= Мир MS Excel/Подсчет параметров - Мир MS Excel

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

Excel 2010
Доброго времени суток. Есть книга с n количеством листов. Каждый лист по количеству столбцов одинаков, но строки с параметрами ТС, ТИ могут отличаться. Стоит задача по столбцу С "Категория" рассчитать количество ТС, ТИ в каждом листе. Подскажите как можно автоматизировать данный процесс, не заходя в каждый лист и вручную высчитать параметры ТС,ТИ. Для примера приложил файл с малым количеством параметров и листов
К сообщению приложен файл: 5635559.xlsx (147.4 Kb)
 
Ответить
СообщениеДоброго времени суток. Есть книга с n количеством листов. Каждый лист по количеству столбцов одинаков, но строки с параметрами ТС, ТИ могут отличаться. Стоит задача по столбцу С "Категория" рассчитать количество ТС, ТИ в каждом листе. Подскажите как можно автоматизировать данный процесс, не заходя в каждый лист и вручную высчитать параметры ТС,ТИ. Для примера приложил файл с малым количеством параметров и листов

Автор - rinat_n
Дата добавления - 26.08.2020 в 12:15
Nic70y Дата: Среда, 26.08.2020, 12:38 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8712
Репутация: 2262 ±
Замечаний: 0% ±

Excel 2010
результат куда выгружать?


ЮMoney 41001841029809
 
Ответить
Сообщениерезультат куда выгружать?

Автор - Nic70y
Дата добавления - 26.08.2020 в 12:38
прохожий2019 Дата: Среда, 26.08.2020, 12:40 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
PQ [vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="adres"]}[Content]{0}[Column1],
    file=Excel.Workbook(File.Contents(from)),
    filtr = Table.SelectRows(file, each ([Kind] = "Sheet") and ([Item] <> "сводка"))[[Item],[Data]],
    f=(t)=>[    a = Table.PromoteHeaders(t),
                b = Table.SelectRows(a,each [#"Категория (ТИ/ТС)"]<>null),
                c = Table.Group(b,"Категория (ТИ/ТС)",{"Количество", each Table.RowCount(_) })][c],
    group = Table.TransformColumns(filtr,{"Data",f}),
    to = Table.ExpandTableColumn(group, "Data", {"Категория (ТИ/ТС)", "Количество"})
in
    to
[/vba]
К сообщению приложен файл: 2913430.xlsx (151.9 Kb)
 
Ответить
СообщениеPQ [vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="adres"]}[Content]{0}[Column1],
    file=Excel.Workbook(File.Contents(from)),
    filtr = Table.SelectRows(file, each ([Kind] = "Sheet") and ([Item] <> "сводка"))[[Item],[Data]],
    f=(t)=>[    a = Table.PromoteHeaders(t),
                b = Table.SelectRows(a,each [#"Категория (ТИ/ТС)"]<>null),
                c = Table.Group(b,"Категория (ТИ/ТС)",{"Количество", each Table.RowCount(_) })][c],
    group = Table.TransformColumns(filtr,{"Data",f}),
    to = Table.ExpandTableColumn(group, "Data", {"Категория (ТИ/ТС)", "Количество"})
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 26.08.2020 в 12:40
rinat_n Дата: Среда, 26.08.2020, 21:09 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
результат куда выгружать?

Nic70y Результат выгружать в отдельный лист. При этом при добавлении новых листов (например 100 листов) можно получить результат по всем 100 листам в отдельном листе?


Сообщение отредактировал rinat_n - Среда, 26.08.2020, 21:39
 
Ответить
Сообщение
результат куда выгружать?

Nic70y Результат выгружать в отдельный лист. При этом при добавлении новых листов (например 100 листов) можно получить результат по всем 100 листам в отдельном листе?

Автор - rinat_n
Дата добавления - 26.08.2020 в 21:09
rinat_n Дата: Среда, 26.08.2020, 21:14 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Излишнее цитирование удалено администрацией
Спасибо Прохожий2019. Вопрос при добавлении в книгу еще 95 листов (общее 100 листов) как вывести результат в добавленных листов в сводный лист?


Сообщение отредактировал Pelena - Среда, 26.08.2020, 21:22
 
Ответить
СообщениеИзлишнее цитирование удалено администрацией
Спасибо Прохожий2019. Вопрос при добавлении в книгу еще 95 листов (общее 100 листов) как вывести результат в добавленных листов в сводный лист?

Автор - rinat_n
Дата добавления - 26.08.2020 в 21:14
прохожий2019 Дата: Среда, 26.08.2020, 21:41 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
1. Ctrl + S (сохранить файл)
2. Ctrl+Alt+F5 (обновить всё)
 
Ответить
Сообщение1. Ctrl + S (сохранить файл)
2. Ctrl+Alt+F5 (обновить всё)

Автор - прохожий2019
Дата добавления - 26.08.2020 в 21:41
rinat_n Дата: Среда, 26.08.2020, 22:15 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Цитата прохожий2019, 26.08.2020 в 21:41, в сообщении № 6 ()
1. Ctrl + S (сохранить файл)
2. Ctrl+Alt+F5 (обновить всё)

После добавления листа сохранил и обновил книгу, но в сводном листе ничего не появилось. Подскажите как автоматизировать данный процесс?
 
Ответить
Сообщение
Цитата прохожий2019, 26.08.2020 в 21:41, в сообщении № 6 ()
1. Ctrl + S (сохранить файл)
2. Ctrl+Alt+F5 (обновить всё)

После добавления листа сохранил и обновил книгу, но в сводном листе ничего не появилось. Подскажите как автоматизировать данный процесс?

Автор - rinat_n
Дата добавления - 26.08.2020 в 22:15
прохожий2019 Дата: Среда, 26.08.2020, 22:39 | Сообщение № 8
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
показывайте файл
 
Ответить
Сообщениепоказывайте файл

Автор - прохожий2019
Дата добавления - 26.08.2020 в 22:39
rinat_n Дата: Четверг, 27.08.2020, 06:57 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 33
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Цитата прохожий2019, 26.08.2020 в 22:39, в сообщении № 8 ()
показывайте файл

Прохожий2019, прикладываю файл с добавлением двух листов. Дополнительно при изменении имени листов в сводном листе будут изменяться наименование? Подскажите код прописывается в VBA? В каком разделе?
К сообщению приложен файл: 3089266.xlsx (218.5 Kb)


Сообщение отредактировал rinat_n - Четверг, 27.08.2020, 07:23
 
Ответить
Сообщение
Цитата прохожий2019, 26.08.2020 в 22:39, в сообщении № 8 ()
показывайте файл

Прохожий2019, прикладываю файл с добавлением двух листов. Дополнительно при изменении имени листов в сводном листе будут изменяться наименование? Подскажите код прописывается в VBA? В каком разделе?

Автор - rinat_n
Дата добавления - 27.08.2020 в 06:57
прохожий2019 Дата: Четверг, 27.08.2020, 07:32 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
ну приложили, обновил, всё обновилось
при изменении имени листов в сводном листе будут изменяться наименование?
да, разумеется
код прописывается в VBA?
нет, я же написал
Цитата прохожий2019, 26.08.2020 в 12:40, в сообщении № 3 ()
PQ
К сообщению приложен файл: 1203211.xlsx (219.9 Kb)
 
Ответить
Сообщениену приложили, обновил, всё обновилось
при изменении имени листов в сводном листе будут изменяться наименование?
да, разумеется
код прописывается в VBA?
нет, я же написал
Цитата прохожий2019, 26.08.2020 в 12:40, в сообщении № 3 ()
PQ

Автор - прохожий2019
Дата добавления - 27.08.2020 в 07:32
Nic70y Дата: Суббота, 29.08.2020, 09:36 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 8712
Репутация: 2262 ±
Замечаний: 0% ±

Excel 2010
код прописывается в VBA
вариант:
[vba]
Код
Sub u_111()
    Application.ScreenUpdating = False
    u_0 = Sheets("сводный").Cells(Rows.Count, "a").End(xlUp).Row
    If u_0 = 1 Then u_0 = 2
    Sheets("сводный").Range("a2:c" & u_0).ClearContents
    u_1 = 2
    For u_2 = 1 To Sheets.Count - 1
        Sheets("сводный").Cells(u_1, 1) = "'" & Sheets(u_2).Name
        u_3 = Sheets("сводный").Range("b1").Value
        u_4 = Sheets("сводный").Range("c1").Value
        u_5 = Application.CountIf(Sheets(u_2).Range("c:c"), u_3)
        u_6 = Application.CountIf(Sheets(u_2).Range("c:c"), u_4)
        Sheets("сводный").Cells(u_1, 2) = u_5
        Sheets("сводный").Cells(u_1, 3) = u_6
        u_1 = u_1 + 1
    Next u_2
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 5635559.xlsm (166.6 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
код прописывается в VBA
вариант:
[vba]
Код
Sub u_111()
    Application.ScreenUpdating = False
    u_0 = Sheets("сводный").Cells(Rows.Count, "a").End(xlUp).Row
    If u_0 = 1 Then u_0 = 2
    Sheets("сводный").Range("a2:c" & u_0).ClearContents
    u_1 = 2
    For u_2 = 1 To Sheets.Count - 1
        Sheets("сводный").Cells(u_1, 1) = "'" & Sheets(u_2).Name
        u_3 = Sheets("сводный").Range("b1").Value
        u_4 = Sheets("сводный").Range("c1").Value
        u_5 = Application.CountIf(Sheets(u_2).Range("c:c"), u_3)
        u_6 = Application.CountIf(Sheets(u_2).Range("c:c"), u_4)
        Sheets("сводный").Cells(u_1, 2) = u_5
        Sheets("сводный").Cells(u_1, 3) = u_6
        u_1 = u_1 + 1
    Next u_2
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 29.08.2020 в 09:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет параметров (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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