Здравствуйте, дорогие профессионалы! Столкнулся со следующей задачей: нужно взять из отчета в формате htm табличный отчет (повлиять на входные данные, их формат и прочее не имею возможности), и грамотно экспортировав скопировав содержимое в excel получить некий суммарный итог. Таблица имеет примерно такой вид (в приложение добавил): A1. Группа событий 1. (объединенная строка) A2. Событие 1 в группе 1; B2. Дата начала события (формат ДД:ММ:ГГГГ чч:мм); С2. Дата окончания события; D2. место возникновения; E2-G2 - дополнительные параметры, не имеющие значения. A3. Событие 2 в группе 1. ----//---- A4. Событие n в группе 1. ----//---- A5. Группа событий 2. (и всё в том же роде)
Мне нужно получить следующие вещи в разрезе мест возникновения события (перечень мест известен заранее, вычислять не нужно): а. Количество событий всего б. Количество событий по группам (группы известны заранее, но событий в группе может и не быть, тогда в исходном файле она не появится). в. Количество событий с длительностью более суток всего. г. Количество событий с длительностью более суток по группам.
Есть еще одна сложность - дата окончания может быть не проставлена (пустая ячейка) и тогда событие нужно засчитывать как незавершенное (отдельным итогом).
В общем то, из всего этого не могу понять ход решения в 2 местах: 1. Как при подсчете определить, какой диапазон необходимо будет обработать (делаю просто с запасом). 2. Как при такой компоновке разбить итоги по группам (как объяснить программе, что если событие находится в диапазоне ниже одной группы, но выше какой-то другой, то надо накручивать счетчик в такой то ячейке - я же не смогу определить четкие границы).
Если уйти от конкретики, то суть решения я понимаю таким: 1. Выводим в дополнительный столбик (массив), по возможности: разницу часов, либо значение "не завершено", либо название группы событий. 2. Для каждого итога проходим этот столбик поэлементно, реагируя на "правильные" группу и место событий: если попали в нужную группу, то начинаем считать (+1 если совпадет место), если попали в ненужную группу, то пропускаем всё до следующей.
Как подобное лучше реализовать?
Здравствуйте, дорогие профессионалы! Столкнулся со следующей задачей: нужно взять из отчета в формате htm табличный отчет (повлиять на входные данные, их формат и прочее не имею возможности), и грамотно экспортировав скопировав содержимое в excel получить некий суммарный итог. Таблица имеет примерно такой вид (в приложение добавил): A1. Группа событий 1. (объединенная строка) A2. Событие 1 в группе 1; B2. Дата начала события (формат ДД:ММ:ГГГГ чч:мм); С2. Дата окончания события; D2. место возникновения; E2-G2 - дополнительные параметры, не имеющие значения. A3. Событие 2 в группе 1. ----//---- A4. Событие n в группе 1. ----//---- A5. Группа событий 2. (и всё в том же роде)
Мне нужно получить следующие вещи в разрезе мест возникновения события (перечень мест известен заранее, вычислять не нужно): а. Количество событий всего б. Количество событий по группам (группы известны заранее, но событий в группе может и не быть, тогда в исходном файле она не появится). в. Количество событий с длительностью более суток всего. г. Количество событий с длительностью более суток по группам.
Есть еще одна сложность - дата окончания может быть не проставлена (пустая ячейка) и тогда событие нужно засчитывать как незавершенное (отдельным итогом).
В общем то, из всего этого не могу понять ход решения в 2 местах: 1. Как при подсчете определить, какой диапазон необходимо будет обработать (делаю просто с запасом). 2. Как при такой компоновке разбить итоги по группам (как объяснить программе, что если событие находится в диапазоне ниже одной группы, но выше какой-то другой, то надо накручивать счетчик в такой то ячейке - я же не смогу определить четкие границы).
Если уйти от конкретики, то суть решения я понимаю таким: 1. Выводим в дополнительный столбик (массив), по возможности: разницу часов, либо значение "не завершено", либо название группы событий. 2. Для каждого итога проходим этот столбик поэлементно, реагируя на "правильные" группу и место событий: если попали в нужную группу, то начинаем считать (+1 если совпадет место), если попали в ненужную группу, то пропускаем всё до следующей.
Проблема тут в том, что Вы хотите сгруппировать по городам, но в приложенном файле идет город1адрес1 и необходимо эти данные разносить. Тут бы пример как адрес реально выглядит, чтоб была зацепка для разделения.
Проблема тут в том, что Вы хотите сгруппировать по городам, но в приложенном файле идет город1адрес1 и необходимо эти данные разносить. Тут бы пример как адрес реально выглядит, чтоб была зацепка для разделения.sboy
sboy, Я, к сожалению, не могу реальных данных выкладывать из этой программы. Строка идет конкатенацией, хотя пробел все же имеется (я случайно удалил в примере), т.е. Точное значение ячейки Город,[пробел]г.[пробел]Строка с 1 адресом[пробел]Строка со 2 адресом .
sboy, Я, к сожалению, не могу реальных данных выкладывать из этой программы. Строка идет конкатенацией, хотя пробел все же имеется (я случайно удалил в примере), т.е. Точное значение ячейки Город,[пробел]г.[пробел]Строка с 1 адресом[пробел]Строка со 2 адресом .arttemko
Вариант реализации на Power Query(для 2010 устанавливается как отдельная бесплатная надстройка) Не "причесывал" запросы, т.к. это только для примера как надо делать для реальных данных
Вариант реализации на Power Query(для 2010 устанавливается как отдельная бесплатная надстройка) Не "причесывал" запросы, т.к. это только для примера как надо делать для реальных данныхsboy
sboy, Здорово, разобрался, довел до нужного результата. А возможно ли не выводить результат в виде готовой таблицы, а ссылаться в нужных местах непосредственно к своду PowerQuery? Это мне для того чтобы не рисовать в запросах оформление выходных данных и не править пути при небольших изменениях.
sboy, Здорово, разобрался, довел до нужного результата. А возможно ли не выводить результат в виде готовой таблицы, а ссылаться в нужных местах непосредственно к своду PowerQuery? Это мне для того чтобы не рисовать в запросах оформление выходных данных и не править пути при небольших изменениях.arttemko