Пожалуйста, помогите с отчётом! Которые сутки уже не сплю, весь интернет перерыл. Ума не приложу как вывести итоги за сутки, когда в сутках может быть несколько позиций.
Есть таблица с данными, в ней колонки типа: №, Дата, № ТТН, Отправитель, Получатель, Объём-м³; значения из таблицы загоняю в двумерный массив, предварительно сделав отбор по выбранным из формы критериям, затем сортирую этот массив по колонке с датами, после чего вывожу маассив на лист "Отчёт". [vba]
Код
iTable = 2 For i = 1 To UBound(Arr, 1) Report.Cells(i + iTable, "A").Value = i ' № позиции Report.Cells(i + iTable, "B").Value = Arr(i, 1) ' Дата Report.Cells(i + iTable, "C").Value = Arr(i, 2) ' № ТТН Report.Cells(i + iTable, "D").Value = Arr(i, 3) ' Отправитель Report.Cells(i + iTable, "E").Value = Arr(i, 4) ' Получатель Report.Cells(i + iTable, "F").Value = Arr(i, 5) ' Объём м3 Next i
[/vba] На этом этапе всё вроде нормально, получилось! Но что это за отчет без промежуточных и общих итогов? Вы наверное скажите, "Воспользуйся встроенными в Excel инструментами для этих предназначений"! Возможно, я бы лично так и поступил. Но, по ряду причин это не совсем то что нужно, хотелось бы получить на выходе решение как в моём примере который я прилагаю к этой теме. Задача, вывести значения из массива на лист таким образом, чтобы таблица строилась уже с промежуточным и общим итогом в колонке "F" "Объем", относительно колонки "B" "Дата", если дата повторяется, то это будет уже группа по которой надо рассчитать промежуточный итог. Как вставить эту самую стоку промежуточного итога по условию к примеру если Arr(i, 1) < Arr(i+1, 1)... то выводим итог и т.п.. ???
Спасите мой мозг от разрушения, направьте меня в нужное русло! Или покажите пример как поступают в похожих ситуациях.
Был бы признателен вам за любую помощь! Очень надеюсь на вас!
Пожалуйста, помогите с отчётом! Которые сутки уже не сплю, весь интернет перерыл. Ума не приложу как вывести итоги за сутки, когда в сутках может быть несколько позиций.
Есть таблица с данными, в ней колонки типа: №, Дата, № ТТН, Отправитель, Получатель, Объём-м³; значения из таблицы загоняю в двумерный массив, предварительно сделав отбор по выбранным из формы критериям, затем сортирую этот массив по колонке с датами, после чего вывожу маассив на лист "Отчёт". [vba]
Код
iTable = 2 For i = 1 To UBound(Arr, 1) Report.Cells(i + iTable, "A").Value = i ' № позиции Report.Cells(i + iTable, "B").Value = Arr(i, 1) ' Дата Report.Cells(i + iTable, "C").Value = Arr(i, 2) ' № ТТН Report.Cells(i + iTable, "D").Value = Arr(i, 3) ' Отправитель Report.Cells(i + iTable, "E").Value = Arr(i, 4) ' Получатель Report.Cells(i + iTable, "F").Value = Arr(i, 5) ' Объём м3 Next i
[/vba] На этом этапе всё вроде нормально, получилось! Но что это за отчет без промежуточных и общих итогов? Вы наверное скажите, "Воспользуйся встроенными в Excel инструментами для этих предназначений"! Возможно, я бы лично так и поступил. Но, по ряду причин это не совсем то что нужно, хотелось бы получить на выходе решение как в моём примере который я прилагаю к этой теме. Задача, вывести значения из массива на лист таким образом, чтобы таблица строилась уже с промежуточным и общим итогом в колонке "F" "Объем", относительно колонки "B" "Дата", если дата повторяется, то это будет уже группа по которой надо рассчитать промежуточный итог. Как вставить эту самую стоку промежуточного итога по условию к примеру если Arr(i, 1) < Arr(i+1, 1)... то выводим итог и т.п.. ???
Спасите мой мозг от разрушения, направьте меня в нужное русло! Или покажите пример как поступают в похожих ситуациях.
Был бы признателен вам за любую помощь! Очень надеюсь на вас!KAMEPOH
Конечно, в принципе он делает похожее, но строку к примеру "03.12.2012 Итог" нужно превратить в "Итого за сутки" и разместить в другой колонке, это принципиально важно в моём случае! Вы пример смотрели, что скажете? Можно реализовать тоже самое как в примере с помощью "Промежуточный итог", подскажите как лучше и правильно сделать?
Конечно, в принципе он делает похожее, но строку к примеру "03.12.2012 Итог" нужно превратить в "Итого за сутки" и разместить в другой колонке, это принципиально важно в моём случае! Вы пример смотрели, что скажете? Можно реализовать тоже самое как в примере с помощью "Промежуточный итог", подскажите как лучше и правильно сделать?KAMEPOH
Сообщение отредактировал KAMEPOH - Воскресенье, 31.05.2020, 23:57
Применение инструмента "промежуточные итоги" делает основную часть работы - разбивает на группы, и производит вычисления. А того, что этот инструмент будет делать все украшательства, я не говорил. Для удаления структуры, переименования и перемещения ячеек, вставки дополнительные строк требуется отдельный код.
Применение инструмента "промежуточные итоги" делает основную часть работы - разбивает на группы, и производит вычисления. А того, что этот инструмент будет делать все украшательства, я не говорил. Для удаления структуры, переименования и перемещения ячеек, вставки дополнительные строк требуется отдельный код.RAN
А может быть сводной попробовать, форма таблицы чуть другая, но имеет множество преимуществ. Можно выбрать год, месяц, день, объект и т.д., а главное не надо заморачиваться написанием макросов под разные задачи.
А может быть сводной попробовать, форма таблицы чуть другая, но имеет множество преимуществ. Можно выбрать год, месяц, день, объект и т.д., а главное не надо заморачиваться написанием макросов под разные задачи.gling
Спасибо вам большое, что пытаетесь мне помочь, но у меня пока нет возможности получить ваши файлы, т.к. нахожусь на вахте за рабочим компьютером, антивирус скачать не дает! Я вам в личку сообщение отправил.
делает основную часть работы - разбивает на группы, и производит вычисления
Скорее всего я этого и хотел в своей задаче, тогда не пришлось бы заниматься удалением структуры, переименованием и перемещением ячеек, и написанием отдельного кода для разных манипуляций.
Спасибо вам большое, что пытаетесь мне помочь, но у меня пока нет возможности получить ваши файлы, т.к. нахожусь на вахте за рабочим компьютером, антивирус скачать не дает! Я вам в личку сообщение отправил.
делает основную часть работы - разбивает на группы, и производит вычисления
Скорее всего я этого и хотел в своей задаче, тогда не пришлось бы заниматься удалением структуры, переименованием и перемещением ячеек, и написанием отдельного кода для разных манипуляций.KAMEPOH
Да, да, и еще раз да!!! Это то что нужно прохожий2019, вы мне здорово помогли, выручили! Принцип понятен, дальше я сам, украсить, подправить где то, настроить, я смогу. Большое вам человеческое СПАСИБО!!! Дружище!
Да, да, и еще раз да!!! Это то что нужно прохожий2019, вы мне здорово помогли, выручили! Принцип понятен, дальше я сам, украсить, подправить где то, настроить, я смогу. Большое вам человеческое СПАСИБО!!! Дружище!KAMEPOH