Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
4 / 4 / 1
Регистрация: 17.09.2015
Сообщений: 64

Варианты решения объединения ячеек

29.10.2015, 22:26. Показов 1599. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть табличка вида (приложение)

подскажите, как покрасивейй сделать макрос по приведению ее (левой многострочной части) в однострочный вид (правая часть для примера) для отдельной красивой таблицы. Количество строк для одной записи справа(выделил цветами) может быть различным(от 2 до 6). я нацелился метки каждой новой записи считать по "dt" в первом столбце.
Спасибо за предложения.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2015, 22:26
Ответы с готовыми решениями:

Макрос объединения ячеек
Добрый вечер! Нужна помощь, необходим макрос который будет объединять строки при условии, что слева уже имеется объединенный блок...

Поиск решения solver, количество изменяемых ячеек больше 200
Всем добрый день. Такая проблема: нужно минимизировать целевую функцию. а количество изменяемых ячеек больше 200. а в excel 2010 количество...

Интерфейс объединения ячеек к таблице
Здравствуйте! Необходимо реализовать простой интерфейс по объединению ячеек таблицы - пользователь выделяет какой-то интервал ячеек в...

7
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
30.10.2015, 23:23
Возможный вариант см. в аттаче. Обратите внимание на то, что если "dt" будет единственной строкой, то полученный результат будет некорректным. Правда с этим можно бороться, если просто проверять значение найденных ячеек, но если строк действительно от 2-х и более, то можно обойтись и проверки.
Вложения
Тип файла: zip Sample_for_Amidi.zip (17.2 Кб, 16 просмотров)
1
4 / 4 / 1
Регистрация: 17.09.2015
Сообщений: 64
01.11.2015, 12:49  [ТС]
примеры классные.
я, грубо говоря, для одной базы решение сделал, но громоздкое, по сравнениию с Вашим. проработаю.

на очереди еще одна база, еще страшней-там нет конкретного dt . как объяснить машине, по чем считать-пока вопрос. ну это уже мои проблемы.
спасибо)

Добавлено через 11 часов 36 минут
офигенный у Вас код. я еще не все понял, но это гниально.

Добавлено через 13 часов 35 минут
Уважаемый pashulka.
Наберусь наглости и спрошу,как бы Вы объяснили машине логику объединения строк в прилагаемом примере (скопировал часть таблицы, несколько условных листов). разброд строк на стыке "условных" листов идет жуткий. бъюсь третий день, пока не очень успешно как-то.
место начала "условного" листа указано в столбце AQ, видимо к нему надо привязываться, когда определяется "съехавшая" строка. Ключевое непрерывное поле тут дата в столбце С, но там никак логику не прописать, мне кажется.
Выделил очень характерные "сдвиги" на стыке листа 6 и на стыке листа 7.
Спасибо за советы.

Добавлено через 59 минут
...или делать привязку на 10 год? конкатенация ячеек по дате, пока последними символами не будут "10". по счетчику получили количество строк?
хотя хотелось бы какое-то универсальное решение конечно.
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
01.11.2015, 13:39
В большинстве случаев - конец строки определяется наличием текста(штата) в столбце G , но, увы, есть и исключения.

p.s. Если отчёт идёт по году, то Ваш вариант, ближе всех к идеалу, тем более, что дату искать можно с помощью Like и указать не конкретный год, а ##
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
01.11.2015, 14:07
Лучший ответ Сообщение было отмечено AAAAAAAmidi как решение

Решение

Ваш вариант с датой см. в аттаче. Обратите внимание на то, что в исходной таблице какая-то ass переместилась из ячейки AN120 в AM120, и в результате, мы получаем неправильные проценты ... можно даже сказать, не совсем проценты
Вложения
Тип файла: zip Sample_for_Amidi2.zip (67.4 Кб, 11 просмотров)
1
4 / 4 / 1
Регистрация: 17.09.2015
Сообщений: 64
01.11.2015, 16:30  [ТС]
до того,как эти данные попали в ексель, они были конвертированы из ПДФ. после чего работал макрос, отыскивающий форматы ячеек с нулями, и переводящий их в текстовый формат с дорисовкой нулей в начале. потом отработал макрос, который искал "сдвоенные" строки и рахзделял их на две. Потому не удивлен, что где-то что-то "съехало". Но за замечание спасибо.

нарисовал громоздкий макрос, который по дате выискивает диапазон одной записи. как раз отработал (15 минут обрабатывал всю базу). но с вашего кода просто по-хорошему фигею.
спасибо

Добавлено через 55 минут
Ваш макрос работает секунд 5 над моей базой. мой - больше 20 минут... я в культурном шоке.
0
4 / 4 / 1
Регистрация: 17.09.2015
Сообщений: 64
09.11.2015, 17:43  [ТС]
Уважаемый, pashulka

Возможно, вопрос и не совсем по этой теме, но интересно, как бы Вы решали проблему.
Конвертер пдф-ексель иногда, как оказалось, съедает часть данных (в основном по пол записи на стыке страниц), более адекватных конвертеров не нашлось (съедаются нули в начале чисел при импорте и прочее и прочее).

Подумалось - а если сделать сохранение пдф-текст и попробовать импортировать (пример в приложении). одна беда - от листа к листу расположение столбцов относительно друг друга меняется, соответственно одним махом импортировать 70 или 250страниц не получится. варианты решения:

1)сохранять пдф постранично, руками импортировать каждую страницу (повеситься сразу)
2)написать программу, которая отконвертирует сразу весь текст. идеально. но!! описать такую логику, мне кажется, очень проблематично.
3)Ваш вариант.

Благодарю за мысли.

Добавлено через 49 минут
Вот подумал - сначала выискиваем по тексту начало и конец страницы (это у нас "-------", соответственно, начинаем работать с диапазоном строк от n1 до n2)после чего, идем по первой строке, если в текущей позиции находимся на символе пробел, то проверяем, под ним на 10 строк (к примеру) тоже пробелы? если да, то считаем, что с символа p1 по p2 в каждой строке содержимое столбца.

Добавлено через 16 минут
Либо страницу загнать построково в массив, 1 элемент - 1 буква. и подобным образом выискиваем "сдвоенный" пробел, после чего делаем проверку на сдвоенность пробела в этом=же месте у последующих элементов массива (строк). если да, то диапазон букв "с - по" копируем в новый массив, как запись.

Добавлено через 3 часа 38 минут
чтобы было наглядней, сделал макрос, который переносить все это безобразие в таблицу ексель по одному символу в каждой ячейке (подобие двумерного массива).
Теперь любуюсь на это и думаю, с какого боку на него залезть.
0
4 / 4 / 1
Регистрация: 17.09.2015
Сообщений: 64
20.11.2015, 21:34  [ТС]
Вы не подумайте. Я не "сделайтезаменя".
я дописал эту байду по перекодированию массива. Правда в четыре подпрограммы. вместо массивов (чтоб наглядней было), использовал отдельный лист ексель. В целом, баги исправляю, но для компании сэкономил 160 баксов. Надеюсь, в свой карман.
всем гуд лак.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.11.2015, 21:34
Помогаю со студенческими работами здесь

Макрос для объединения ячеек с одинаковыми значениями
Здравствуйте. Имеется таблица из 5ти столбцов (№ детали,наименование, кол, цена, фирма). Нужен макрос, который объединил бы одинаковые...

Grid с возможностью объединения ячеек, в том числе и в заголовке
Если количество столбцов велико, хотелось бы выводить во-первых многоуровневый заголовок, ну и сами строки собственно в несколько строк...

Избежать объединения ячеек при вводе текста в несколько столбцов
Здравствуйте. Есть некоторый объемный файл, который по шаблону создается автоматически, затем ручными операциями его приводят к виду, в...

Поделитесь опытом решения объединения двух офисов
Здравствуйте, нарисовал схематично структуру сети. Провайдер один и тот же...

После горизонталного объединения ячеек в таблице Word, перестают вставлятся данные в ячей
Доброе время суток форумчане У меня есть шаблон «*.rtf», в который вместо некоторых слов в шаблоне (после их предварительного поиска...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru