powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск и суммирование информации на листе
6 сообщений из 6, страница 1 из 1
Поиск и суммирование информации на листе
    #38240201
Евжекий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые коллеги, не могли бы вы мне подсказать с решением одной проблемы, есть "Лист2" на котором есть информация путем поиска необходимой информации я из этого листа на "Лист3" выгружаю информацию, что касается ФИО и страхового номера все нормально, а вот есть три реквизита со статусами: ВЖНР, ВПНР,НР и мне нужно находить каждый статус, и производить сумму одинаковых статусов но столбцам "Разница" (F и I-столбцы), как это можно осуществить, ниже прикреплена моя книга, не могли бы вы мне помочь с решением данной проблемы.
...
Рейтинг: 0 / 0
Поиск и суммирование информации на листе
    #38241009
Евжекий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну что коллеги может кто нибудь подскажет как это можно программно реализовать, как мне найти допустим статус "НР" перебрать все значения через цикл и подсчитать сумму этих значений с одинаковым статусом, в книге это наглядно видно, только там еще надо через Replace точку в запятую преобразовать для суммирования.
...
Рейтинг: 0 / 0
Поиск и суммирование информации на листе
    #38250312
Евжекий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи ну что никто не может помочь или не понятно в чем может заключается суть проблемы?
...
Рейтинг: 0 / 0
Поиск и суммирование информации на листе
    #38250916
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евжекий,

Можно сделать многими способами, например сделать массив для трёх статусов StatSum(2) на 3 элемента (НР, ВЖНР, ВПНР) и в цикле проходить и суммировать туда значении. Удобнее сделать Select Case Cells(i, 3).Value и в кейс для конкретного статуса суммировать в свой элемент массива.
А можно например если вам нужно по фамильно просто сгруппировать суммы по статусам, то используя функцию WorksheetFunction.SumIf - передать ей начальный ренж откуда искать, последний ренж (найти легко например по слову "Итого" и передавать статусы. 3 раза вызовите функцию, и получите 3 числа. Так как нужно произодить замену, то лучше данные предварительно скопипастить программно на другой лист/диапазон предварительно отреплейсив в нужный формат.
Также можно сделать сводную таблицу и также легко просуммировать данные. Сводная где-нибудь на скрытом листе, и потом кодом чисто изменять её размер под новые данные и выполнить метод пересчёта сводной. Потом из неё забирать готовый результат.
...
Рейтинг: 0 / 0
Поиск и суммирование информации на листе
    #38251598
Евжекий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый VSVLAD а вы не могли бы помочь с реализацией, хотя бы одного метода, я приблизительно понял о чем вы говорите, ну в плане моей реализации это затянется на долго, а сроки уже поджимают.
...
Рейтинг: 0 / 0
Поиск и суммирование информации на листе
    #38251741
Дебилоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евжекий,

Вот такую херню вставь и запусти. Набросал на скоруюю руку не думая
Код: vbnet
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.
Sub Евжекий()
Dim ВЖНР As Double, ВПНР  As Double, НР  As Double
Dim i As Long, iFio As Long
Dim fio() As String
iFio = 3
    For i = 3 To 67
        Select Case UCase(Sheets("Лист2").Range("C" & i))
            Case "ИТОГ:"
                Sheets("Лист3").Range("A" & iFio) = fio(0)
                Sheets("Лист3").Range("B" & iFio) = fio(1)
                Sheets("Лист3").Range("C" & iFio) = ВПНР
                Sheets("Лист3").Range("D" & iFio) = ВЖНР
                Sheets("Лист3").Range("E" & iFio) = НР
                ВЖНР = 0
                ВПНР = 0
                НР = 0
                iFio = iFio + 1
            Case "ВЖНР"
                ВЖНР = ВЖНР + Sheets("Лист2").Range("F" & i) + Sheets("Лист2").Range("I" & i)
            Case "ВПНР"
                ВПНР = ВПНР + Sheets("Лист2").Range("F" & i) + Sheets("Лист2").Range("I" & i)
            Case "НР"
                НР = НР + Sheets("Лист2").Range("F" & i) + Sheets("Лист2").Range("I" & i)
            Case Else
                fio = Split(Sheets("Лист2").Range("C" & i), "(")
        End Select
    Next i

End Sub
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск и суммирование информации на листе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]