Добрый день. Помогите решить такую задачу. есть таблица данных: Фио Клиент Адрес Сумма 1 Петров Клиент1 Адрес1 100р 2 Петров Клиент1 Адрес1 50р 3 Петров Клиент2 Адрес2 100р
Нужно в итоге получить 1 Петров Клиент1 Адрес1 150р 2 Петров Клиент2 Адрес2 100р
Добрый день. Помогите решить такую задачу. есть таблица данных: Фио Клиент Адрес Сумма 1 Петров Клиент1 Адрес1 100р 2 Петров Клиент1 Адрес1 50р 3 Петров Клиент2 Адрес2 100р
Нужно в итоге получить 1 Петров Клиент1 Адрес1 150р 2 Петров Клиент2 Адрес2 100рsboy
Файл приложил Сводной таблицей не правильно считает количество адресов Проблема решается при формировании сводной с результатом по сумме(без промежуточных итогов), заполнении пустых ячеек, копировании и сохранении сводной как значений, что не очень удобно и занимает много времени...
Файл приложил Сводной таблицей не правильно считает количество адресов Проблема решается при формировании сводной с результатом по сумме(без промежуточных итогов), заполнении пустых ячеек, копировании и сохранении сводной как значений, что не очень удобно и занимает много времени...sboy
Попробую подробней объяснить. Исходные данные получаю из запроса SQL с сервера БД Там строки выгружаются из документов Мне нужно эту информацию преобразовать в таблицу за определенный период (месяц, квартал) из которой с помощью сводной таблицы делать аналитику
Количество адресов. показал в файле
Попробую подробней объяснить. Исходные данные получаю из запроса SQL с сервера БД Там строки выгружаются из документов Мне нужно эту информацию преобразовать в таблицу за определенный период (месяц, квартал) из которой с помощью сводной таблицы делать аналитикуsboy
Sub yyy() Dim objRegExp As Object, z(), j%, i%, m%, t$ z = Range("B1:E" & Range("B" & Rows.Count).End(xlUp).Row).Value Set objRegExp = CreateObject("VBScript.RegExp"): objRegExp.Pattern = "\d+" For i = 1 To UBound(z): z(i, 4) = CInt(objRegExp.Execute(z(i, 4))(0)): Next With CreateObject("scripting.dictionary") For i = 1 To UBound(z): t = z(i, 1) & z(i, 2) If Not .exists(t) Then m = m + 1: .Item(t) = m: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next Else z(.Item(t), 4) = z(.Item(t), 4) + z(i, 4) End If Next Range("I1").Resize(.Count, UBound(z, 2)) = z Range("L1:L" & .Count).NumberFormat = "#,##$" For i = 1 To .Count: Range("G" & i) = i: Next End With End Sub
Sub yyy() Dim objRegExp As Object, z(), j%, i%, m%, t$ z = Range("B1:E" & Range("B" & Rows.Count).End(xlUp).Row).Value Set objRegExp = CreateObject("VBScript.RegExp"): objRegExp.Pattern = "\d+" For i = 1 To UBound(z): z(i, 4) = CInt(objRegExp.Execute(z(i, 4))(0)): Next With CreateObject("scripting.dictionary") For i = 1 To UBound(z): t = z(i, 1) & z(i, 2) If Not .exists(t) Then m = m + 1: .Item(t) = m: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next Else z(.Item(t), 4) = z(.Item(t), 4) + z(i, 4) End If Next Range("I1").Resize(.Count, UBound(z, 2)) = z Range("L1:L" & .Count).NumberFormat = "#,##$" For i = 1 To .Count: Range("G" & i) = i: Next End With End Sub
sv2014, Добрый день. Вставил в ваш пример свои данные (2500 строк), получил ошибку 6 Overflow. Путем научного тыка, выявил строку, после которой выдает ошибку - 358 строка. И при суммировании откидывается дробная часть(((
sv2014, Добрый день. Вставил в ваш пример свои данные (2500 строк), получил ошибку 6 Overflow. Путем научного тыка, выявил строку, после которой выдает ошибку - 358 строка. И при суммировании откидывается дробная часть(((sboy
Яндекс: 410016850021169
Сообщение отредактировал sboy - Понедельник, 30.11.2015, 15:37
_Boroda_, видимо я туповат) но я не могу использовать ваш файл, т.к. эта задача не единоразовая, а повторяется с разными исходными данными (разное количество столбцов, разные параметры). Мне необходимо понять как делать сводную из сводной, или в вашу сводную подключать другие источники данных.
_Boroda_, видимо я туповат) но я не могу использовать ваш файл, т.к. эта задача не единоразовая, а повторяется с разными исходными данными (разное количество столбцов, разные параметры). Мне необходимо понять как делать сводную из сводной, или в вашу сводную подключать другие источники данных.sboy
Да всё также, как и обычную сводную. Вот у Вас есть исходник, выделяете его с запасом строк (например, на 99999 строк) или делаете динамический именованный диапазон и строите обычную сводную. Но только не ниже исходника, а рядом или на другом листе. Затем выделяете полученную сводную (тоже или с запасом, или делаете динамический диапазон) и строите еще одну сводную, опять же или сбоку, или на другом листе. Для каждого типа файлов (с разными количеством столбцов и значениями шапки таблицы) просто нужно сделать отдельный шаблон, состоящий из 2-х таких сводных. Затем просто вставляете новые данные на место исходника и обновляете сводные таблицы.
Да всё также, как и обычную сводную. Вот у Вас есть исходник, выделяете его с запасом строк (например, на 99999 строк) или делаете динамический именованный диапазон и строите обычную сводную. Но только не ниже исходника, а рядом или на другом листе. Затем выделяете полученную сводную (тоже или с запасом, или делаете динамический диапазон) и строите еще одну сводную, опять же или сбоку, или на другом листе. Для каждого типа файлов (с разными количеством столбцов и значениями шапки таблицы) просто нужно сделать отдельный шаблон, состоящий из 2-х таких сводных. Затем просто вставляете новые данные на место исходника и обновляете сводные таблицы._Boroda_
Исходные данные получаю из запроса SQL с сервера БД
А почему бы не выгружать требуемые данные в том виде как это нужно с сервера БД? Можно и аналитику с сервера получать. Не понятно только, чего вы хотите на самом деле.
Доброе время суток
Цитата
Исходные данные получаю из запроса SQL с сервера БД
А почему бы не выгружать требуемые данные в том виде как это нужно с сервера БД? Можно и аналитику с сервера получать. Не понятно только, чего вы хотите на самом деле.anvg
прошу помочь - при клику на флажок в розовой ячейке, сумма напротив складывалась в общую в верху желтеньком окошечке, спасибо большое [moder]Читаем Правила форума, создаём свою тему[/moder]
прошу помочь - при клику на флажок в розовой ячейке, сумма напротив складывалась в общую в верху желтеньком окошечке, спасибо большое [moder]Читаем Правила форума, создаём свою тему[/moder]IgorLuPro
sv2014, Добрый день. Пишу с телефона, пока не могу выложить файл. Админы забанили мне доступ на этот форум. Пытаюсь доказать, что он мне необходим по рабочим вопросам)))
sv2014, Добрый день. Пишу с телефона, пока не могу выложить файл. Админы забанили мне доступ на этот форум. Пытаюсь доказать, что он мне необходим по рабочим вопросам)))sboy