Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Преобразование данных

Автор Олег Корзников, 11.10.2012, 20:14

« назад - далее »

Олег Корзников

Уважаемы гуру
у меня есть  таблица из 2 столбцов но очень много строк
1 столбец текст
2 столбец дата (даты могут повторяться)
строк очень много
мне надо сформировать таблицу
наименование каждого столбца месяц под ним должны располагаться все текстовые значения
пример в приложении
вторая таблица должна обновляться по мере изменения дат в первой таблице
заранее благодарен
NULL

sergo44441

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

Олег Корзников

#2
почему то не работает пишет ошибку в коде макроса

не найден макрос 'Н/Д'

While WorksheetFunction.EDate(mindat, t) <= maxdat
NULL

Poltava

Кнопка привязана к несуществующему макросу! нажмите ПКМ на кнопке затем назначить макрос и выберите "перенос"
Не пытайтесь спорить с дебилом. Иначе вы опуститесь до его уровня. Где он задавит вас своим опытом.

Олег Корзников

Цитата: Poltava от 11.10.2012, 21:50
Кнопка привязана к несуществующему макросу! нажмите ПКМ на кнопке затем назначить макрос и выберите "перенос"
спасибо сделал
кнопка стала работать
но выдаёт следующую ошибку

While WorksheetFunction.EDate(mindat, t) <= maxdat
NULL

sergo44441

Приложите пример ваших данных. Может,что-то изменилось в названиях листов, расположении столбцов...
Не торопись, и все успеешь намного быстрее

IKor

предлагаю вариант решения задачи формулами (с дополнительным столбцом)

sergo44441

отличное решение с формулами, только вот почему макрос не сработал? У меня возникла такая мысль: а вдруг в датах, на которых пользователь пытался его применить - опечатка, например, вместо 2012 года - 2021, а используется 2003 эксель, который в итоге только 21 год сможет вместить. Хочется выявить причину ошибки
Не торопись, и все успеешь намного быстрее

Wasilic

#8
Макрос и формула.  :)  Проще не бывает!
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

sergo44441

"Макрос и формула.    Проще не бывает!"
Только  если появится новая дата с месяцем, которого раньше не было (например 5 сентября 2012), то нужно будет добавить вручную добавить данные о ней на 2 лист. Wasilic,нужно добавить в ваш макрос автодобавление периодов, тогда будет все замечательно.
Не торопись, и все успеешь намного быстрее

Wasilic

Цитата: sergo44441 от 13.10.2012, 12:59
Только  если появится новая дата с месяцем, которого раньше не было (например 5 сентября 2012), то нужно будет добавить вручную добавить данные о ней на 2 лист. Wasilic,нужно добавить в ваш макрос автодобавление периодов, тогда будет все замечательно.
Все написано в соответствии с примером! Всех ньюансов задачи я не знаю.
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

kriptograff

приношу свои извинения, у меня на часах 4.00 ночи и уже не совсем соображаю. Вопрос по преобразованих данных, может кто сталкивался:
Есть прайс-лист. в нём порядка 10000 позиций, где каждой присвоен артикул в цифровом формате. (Артикул идет колонкой сверху-вниз). Сменилась немного учетная политика на предприятии и теперь требуется к каждому артикулу вида "001234" добавить префикс "KCN-" что бы артикул имел вид "KCN-001234".  Будьте добры, может кто сталкивался? Как решить задачу?

sergo44441

сделайте с помощью формулы сцепить
=сцепить("KCN-";A2)
Только лучше создавать свою тему
Не торопись, и все успеешь намного быстрее