Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск и суммирование информации на листе / 6 сообщений из 6, страница 1 из 1
25.04.2013, 16:05
    #38240201
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск и суммирование информации на листе
Здравствуйте уважаемые коллеги, не могли бы вы мне подсказать с решением одной проблемы, есть "Лист2" на котором есть информация путем поиска необходимой информации я из этого листа на "Лист3" выгружаю информацию, что касается ФИО и страхового номера все нормально, а вот есть три реквизита со статусами: ВЖНР, ВПНР,НР и мне нужно находить каждый статус, и производить сумму одинаковых статусов но столбцам "Разница" (F и I-столбцы), как это можно осуществить, ниже прикреплена моя книга, не могли бы вы мне помочь с решением данной проблемы.
...
Рейтинг: 0 / 0
26.04.2013, 09:48
    #38241009
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск и суммирование информации на листе
Ну что коллеги может кто нибудь подскажет как это можно программно реализовать, как мне найти допустим статус "НР" перебрать все значения через цикл и подсчитать сумму этих значений с одинаковым статусом, в книге это наглядно видно, только там еще надо через Replace точку в запятую преобразовать для суммирования.
...
Рейтинг: 0 / 0
07.05.2013, 14:12
    #38250312
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск и суммирование информации на листе
Товарищи ну что никто не может помочь или не понятно в чем может заключается суть проблемы?
...
Рейтинг: 0 / 0
07.05.2013, 20:47
    #38250916
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск и суммирование информации на листе
Евжекий,

Можно сделать многими способами, например сделать массив для трёх статусов StatSum(2) на 3 элемента (НР, ВЖНР, ВПНР) и в цикле проходить и суммировать туда значении. Удобнее сделать Select Case Cells(i, 3).Value и в кейс для конкретного статуса суммировать в свой элемент массива.
А можно например если вам нужно по фамильно просто сгруппировать суммы по статусам, то используя функцию WorksheetFunction.SumIf - передать ей начальный ренж откуда искать, последний ренж (найти легко например по слову "Итого" и передавать статусы. 3 раза вызовите функцию, и получите 3 числа. Так как нужно произодить замену, то лучше данные предварительно скопипастить программно на другой лист/диапазон предварительно отреплейсив в нужный формат.
Также можно сделать сводную таблицу и также легко просуммировать данные. Сводная где-нибудь на скрытом листе, и потом кодом чисто изменять её размер под новые данные и выполнить метод пересчёта сводной. Потом из неё забирать готовый результат.
...
Рейтинг: 0 / 0
08.05.2013, 12:35
    #38251598
Евжекий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск и суммирование информации на листе
Уважаемый VSVLAD а вы не могли бы помочь с реализацией, хотя бы одного метода, я приблизительно понял о чем вы говорите, ну в плане моей реализации это затянется на долго, а сроки уже поджимают.
...
Рейтинг: 0 / 0
08.05.2013, 13:47
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск и суммирование информации на листе / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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