0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
1
Excel

Макрос подсчета количество элементов в Список1 и Список2...

28.06.2018, 19:58. Показов 3085. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, помогите пожалуйста с решением задачи!
Есть 3 книги Excel: одна основная (Продукты)- в ней перечислены 10 элементов и 2 таблицы (Список1, Список2) в которых указаны эти 10 элементов в разных количествах.

Задача в том, чтобы макрос считал количество элементов в Список1 и Список2 в соответствии со списком в Продукты и добавлял это количество во вторую колонку Продукты напротив наименования элемента.
(т.е. считал, что в Списке1: 3 ед. "Хлеб", в Списке2: 2 ед. "Хлеб" и добавлял в Продукты значение 5 ед.)

Спасибо! надеюсь на Вашу помощь!
Вложения
Тип файла: zip excel.zip (18.3 Кб, 13 просмотров)
0
Лучшие ответы (1)
28.06.2018, 19:58
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.06.2018, 19:58
Ответы с готовыми решениями:

Макрос для подсчета количества необходимых элементов таблицы
Доброго времени суток! Когда-то давно в университете учили писать макросы, думал что не пригодится... Столкнулся с такой проблемой, что...

Макрос подсчета объединенных ячеек
Здравствуйте! Подскажите пожалуйста. Нужно написать конструкцию, чтобы она считала количество объединенных ячеек. Такая вот ...

Макрос подсчета очков в PowerPoint
Добрый день! Взялась сделать полуавтоматизированные слайды для игры 100 к 1 в кругу друзей. Есть табло с 6 строками ответов, три...

15
6991 / 2890 / 554
Регистрация: 19.10.2012
Сообщений: 8,789
28.06.2018, 21:21 2
Как вариант - открыть эту книгу, затем на каждом активном листе источника по Alt+F8 или как угодно выполнить макрос из этой книги.
Вложения
Тип файла: zip Копия Продукты.zip (12.4 Кб, 10 просмотров)
1
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
29.06.2018, 06:37  [ТС] 3
Спасибо за Ваш ответ! Можно ли сделать чтобы Файлы открывались и обрабатывались из макроса? т.к. На практике файлов более 10. Спасибо
0
6991 / 2890 / 554
Регистрация: 19.10.2012
Сообщений: 8,789
29.06.2018, 08:25 4
Можно. Но пока "на практике" нам известны только два файла, да и то они в архиве на форуме, а открывать макросом из архива на форуме - та ещё морока, я пас
Надеюсь Вы меня поняли.
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
29.06.2018, 09:19 5
Vitalii_sh, а вы сами свои файлы смотрели? Где там две таблицы, где количество элементов? Дело то пустяковое - собрать из десятка файлов сумму каждого продукта. Сами не пробовали? А вместо 10 файлов может лучше один с 10 страницами?
0
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
29.06.2018, 09:59  [ТС] 6
Спасибо, буду пробовать сам. Файлики со списками разные и в одной книге забить к сожалению нельзя, потому что их более 50 на самом деле)
0
6991 / 2890 / 554
Регистрация: 19.10.2012
Сообщений: 8,789
29.06.2018, 10:11 7
С таким куцым объяснением можно написать только такой вероятно работающий макрос, как написал я. Да и то я сильно сомневаюсь, что данные действительно в первом столбце использованной области, на практике такое редко бывает.
И я всюду привязывался к активной книге и активному листу - что тоже не факт что юзеры в таком положении книгу и оставят, чтоб позже корректно открыть её кодом.

Добавлено через 2 минуты
Цитата Сообщение от Vitalii_sh Посмотреть сообщение
их более 50 на самом деле
- предлагаю сложить их в один каталог (чтоб ничего лишнего) и показать хоть один приближенный к реальности файл. Тогда уже можно что-то думать конкретное.
1
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
29.06.2018, 10:24  [ТС] 8
Я вечером сделаю лучше пример) спасибо)
0
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
29.06.2018, 20:45  [ТС] 9
Hugo121, я попытался приблизить ситуацию к рабочей. вложил файлик с описанием, надеюсь понятно написал)

Спасибо!
Вложения
Тип файла: zip excel.zip (45.6 Кб, 12 просмотров)
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.06.2018, 11:42 10
Vitalii_sh, ещё один вариант, в котором будут поочерёдно вызываться файлы, начинающиеся на Список. Первая строка во всех файлах, включая продукцию, Наименование столбца. Информация начинается со второй строки, я так привык, можете переделать. В файлах Список установите автофильтры, можно сделать и программно. Все файлы должны находиться в одной папке, но и это преодолимо. Первая строка зафиксирована во всех файлах
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub proba()
Dim I As Integer, Last As Integer, sFile As String, S As String, Lr As String
Dim Rg As Range
Last = Cells(Rows.Count, 1).End(xlUp).Row
sFile = Dir(ThisWorkbook.Path & "\Список*.xls*")
Range("B2:B" & Last).ClearContents
With Workbooks("Product.xls").Sheets(1)
  Do While sFile <> ""
    Workbooks.Open ThisWorkbook.Path & "\" & sFile, ReadOnly:=True
    Lr = Cells(Rows.Count, 1).End(xlUp).Row
    For I = 2 To Last
      S = .Cells(I, 1)
      Set Rg = Range("A2:A" & Lr)
      ActiveSheet.Range("A2:A" & Lr).AutoFilter Field:=1, Criteria1:=S
      .Cells(I, 2) = .Cells(I, 2) + WorksheetFunction.Subtotal(3, Rg)
    Next
    Workbooks(sFile).Saved = True
    Workbooks(sFile).Close
    sFile = Dir()
  Loop
End With
End Sub
Добавлено через 6 минут
Vitalii_sh, замените в 7 строке английское название файла (привычка) на свои Продукты и расширение тоже
1
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
30.06.2018, 18:18  [ТС] 11
Очень круто, Спасибо!!!
а можно еще как-то разделить их по колонкам в зависимости от имени человека?
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.06.2018, 19:25 12
Vitalii_sh, конечно можно, я делал это по вашему первому файлу, на последний не посмотрел. Завтра нарисую, сегодня пора отдыхать.

Добавлено через 18 минут
А Юра2 и Юра1 это один и тот же Юра? А для Спасибо есть ещё и кнопочка справа внизу сообщения

Добавлено через 17 минут
так что у продавцов товар может стоять не обязательно в первом столбце и не обязательно со второй строки?
1
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
30.06.2018, 22:23 13
Лучший ответ Сообщение было отмечено Vitalii_sh как решение

Решение

Если предположить, что Юра1 и Юра2 это один Юра, то как вариант:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub pr()
    Dim c(), i&, j&, sFile$, NameP$
    Application.ScreenUpdating = False
    sFile = Dir(ThisWorkbook.Path & "\Список*.xls*")
    Set SDName = CreateObject("Scripting.Dictionary")
    Set SDPrd = CreateObject("Scripting.Dictionary")
    With CreateObject("Scripting.Dictionary")
        Do While sFile <> ""
            Workbooks.Open ThisWorkbook.Path & "\" & sFile, ReadOnly:=True
            a = ActiveSheet.UsedRange
            Workbooks(sFile).Close
            NameP = Replace(Split(sFile, ".")(0), "Список", "")
            For i = Len(NameP) To 1 Step -1
                If Not IsNumeric(Mid(NameP, i, 1)) Then NameP = Mid(NameP, 1, i): Exit For
            Next
            SDName(NameP) = SDName(NameP) + 1
            For Each x In a
                If Not IsEmpty(x) Then
                    SDPrd(x) = SDPrd(x) + 1
                    .Item(x & NameP) = .Item(x & NameP) + 1
                End If
            Next
            sFile = Dir()
        Loop
        ReDim c(1 To SDPrd.Count, 1 To SDName.Count)
        i = 1
        For Each kp In SDPrd.keys
            j = 1
            For Each kn In SDName.keys
                c(i, j) = .Item(kp & kn)
                j = j + 1
            Next
            i = i + 1
        Next
        Sheets.Add
        Cells(1) = "Продукт"
        Cells(1, 2).Resize(, SDName.Count) = SDName.keys
        Cells(2, 1).Resize(SDPrd.Count, 1) = Application.Transpose(SDPrd.keys)
        Cells(2, 2).Resize(UBound(c), UBound(c, 2)) = c
    End With
    Application.ScreenUpdating = True
End Sub
1
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
01.07.2018, 18:27  [ТС] 14
Burk так то с Юрами замудрил, просто нужно чтобы определял Юра или не Юра там) да строки и столбцы не одинаковые, но у каждого продавца зафиксирована колонка в которой будет информация.
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
01.07.2018, 19:25 15
Vitalii_sh, а вы код toiai пробовали? Если он вас устраивает, то может мне не дописывать свой? Или хотите посмотреть?
Цитата Сообщение от Vitalii_sh Посмотреть сообщение
но у каждого продавца зафиксирована колонка в которой будет информация.
То есть у каждого продавца свой файл, но зачем-то надо чтобы заполнение шло в разные столбцы, непонятно зачем?
0
0 / 0 / 0
Регистрация: 22.02.2018
Сообщений: 37
02.07.2018, 07:53  [ТС] 16
Burk честно не добрался до ноутбука чтобы опробовать вариант toiai
Я имел ввиду, что в файлах колонки расположены не обязательно в первом столбце. Но например у Юры они точно будут в 1й, у другого точно будет во второй и тп.
Спасибо

Добавлено через 12 часов 11 минут
toiai все круто работает!! Спасибо!
Burk тоже спасибо за помощь!
0
02.07.2018, 07:53
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.07.2018, 07:53
Помогаю со студенческими работами здесь

Макрос, определяющий максимальное количество одинаковых элементов массива
Нужна помощь с решением одной простенькой задачей, на паскале или delphi проблем не возникло бы, но вот макрос написать не получится,...

Макрос для подсчета суммы с условиями
Добрый евчер! Я с макросами пока на вы и поэтому прошу помочь. Задача такая: &quot;Написать макрос, результатом работы которого будет...

Макрос для подсчета сумм по строкам
Всем привет, проблема вот в чем: В Excel для одной строки на каждую ячейку сделал свою кнопку с макросом, т.е. A1 считает свою сумму, B1...

Написать макрос подсчета символов в ячейке
Добрый день! Уважаемые форумчане, не могли бы вы подсказать макрос, который может подсчитать количество символов в ячейке и если их...

Определить предикат раздвоение (Список1, Список2)
определить предикат раздвоение(Список1,Список2),истинный тогда и только тогда,когда Список2 получается из Списка1 заменой всех его четных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Сообщение Git "Pulling without specifying how to reconcile divergent branches is discouraged"
hw_wired 14.02.2025
При работе с системой контроля версий Git многие разработчики сталкиваются с предупреждающим сообщением "Pulling without specifying how to reconcile divergent branches is discouraged". Это. . .
Как настроить количество пробелов в отступах табов в Visual Studio Code
hw_wired 14.02.2025
Visual Studio Code предоставляет несколько гибких способов настройки табуляции, каждый из которых имеет свои преимущества. Самый простой и наглядный метод - через графический интерфейс настроек, где. . .
Что означает знак восклицания в TypeScript
hw_wired 14.02.2025
TypeScript - удивительный язык программирования, который предоставляет множество возможностей для работы с типами данных. Особый интерес вызывает оператор утверждения ненулевого значения, который. . .
Как свернуть/скрыть секции кода в Visual Studio Code
hw_wired 14.02.2025
Ежедневно мы работам с файлами, содержащими сотни и тысячи строк кода. Навигация по такому объему становится настоящим испытанием, особенно когда нужно быстро найти нужный метод или переменную. . . .
Автоматическое создание файла requirements.tx­t в Python
hw_wired 14.02.2025
Дружелюбная среда для разработки на Python, один из самых широко используемых языков программирования, состоит не только из самого кода, но и целого ряда важных компонентов. И если вы когда-нибудь. . .
Передача переменных окружения в контейнер Docker
hw_wired 14.02.2025
При работе с Docker контейнерами возникает необходимость передать различные настройки и конфигурационные параметры - от строк подключения к базам данных до API ключей. И хотя можно жестко прописать. . .
Отличия Constructor и ngOnInit в Angular
hw_wired 14.02.2025
Разработка компонентов в Angular - непростая задача, особенно когда дело доходит до правильной инициализации и управления их жизненным циклом. Каждый разработчик рано или поздно сталкивается с. . .
Ошибка "Transport security has blocked a cleartext HTTP" в iOS
hw_wired 14.02.2025
В iOS-разработке часто возникают неожиданные препятствия, и одним из самых распространенных является сообщение об ошибке "Transport security has blocked a cleartext HTTP". Эта ошибка появляется,. . .
Ошибка "Cleartext HTTP traffic not permitted" в Android
hw_wired 13.02.2025
При разработке Android-приложений можно столнуться с неприятной ошибкой "Cleartext HTTP traffic not permitted", которая может серьезно затруднить отладку и тестирование. Эта проблема особенно. . .
Изменение версии по умолчанию в NVM
hw_wired 13.02.2025
Node Version Manager, или коротко NVM - незаменимый инструмент для разработчиков, использующих Node. js. Многие сталкивались с ситуацией, когда разные проекты требуют различных версий Node. js,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru