Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Вынесение резделённых знаком слов из одной ячейки в столбец - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Вынесение резделённых знаком слов из одной ячейки в столбец
1denes1 Дата: Пятница, 30.08.2024, 02:36 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Доброго времени! Есть столбец с датами, рядом столбец с данными. Данные разделены "!" знаком.
Подскажите, как вынести каждую часть данных ячейки разделённых "!" в отдельную ячейку в другой столбец? При этом подставив дату к которой относятся эти данные.
Пример приложил. СПАСИБО!
К сообщению приложен файл: jachejki_v_stolbec_30_08.xlsx (9.8 Kb)
 
Ответить
СообщениеДоброго времени! Есть столбец с датами, рядом столбец с данными. Данные разделены "!" знаком.
Подскажите, как вынести каждую часть данных ячейки разделённых "!" в отдельную ячейку в другой столбец? При этом подставив дату к которой относятся эти данные.
Пример приложил. СПАСИБО!

Автор - 1denes1
Дата добавления - 30.08.2024 в 02:36
китин Дата: Пятница, 30.08.2024, 07:25 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7027
Репутация: 1076 ±
Замечаний: 0% ±

Excel 2007;2010;2016
PQ всемогущий
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type date}, {"Столбец2", type text}}),
    #"Разделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(#"Измененный тип", {{"Столбец2", Splitter.SplitTextByDelimiter("!", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Столбец2"),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Столбец2", type text}}),
    #"Обрезанный текст" = Table.TransformColumns(#"Измененный тип1",{{"Столбец2", Text.Trim, type text}})
in
    #"Обрезанный текст"
[/vba]
К сообщению приложен файл: 1denes1.xlsx (18.7 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
СообщениеPQ всемогущий
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Столбец1", type date}, {"Столбец2", type text}}),
    #"Разделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(#"Измененный тип", {{"Столбец2", Splitter.SplitTextByDelimiter("!", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Столбец2"),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Столбец2", type text}}),
    #"Обрезанный текст" = Table.TransformColumns(#"Измененный тип1",{{"Столбец2", Text.Trim, type text}})
in
    #"Обрезанный текст"
[/vba]

Автор - китин
Дата добавления - 30.08.2024 в 07:25
1denes1 Дата: Суббота, 31.08.2024, 09:41 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Афигеееееть!!!! Столько лет работаю с екселем, и даже не знаю про PQ.
Но таблица не обновляется автоматически при добавлении новых строк с датами и запчастями или при изменении уже имеющихся. Это возможно? Капец прикольная штука ))
 
Ответить
СообщениеАфигеееееть!!!! Столько лет работаю с екселем, и даже не знаю про PQ.
Но таблица не обновляется автоматически при добавлении новых строк с датами и запчастями или при изменении уже имеющихся. Это возможно? Капец прикольная штука ))

Автор - 1denes1
Дата добавления - 31.08.2024 в 09:41
1denes1 Дата: Воскресенье, 01.09.2024, 00:20 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

китин, Дружище, помоги допилить. С меня причитается.
 
Ответить
Сообщениекитин, Дружище, помоги допилить. С меня причитается.

Автор - 1denes1
Дата добавления - 01.09.2024 в 00:20
1denes1 Дата: Воскресенье, 01.09.2024, 00:29 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Или может найдется решение макросом. Оно как-то привычнее ))
 
Ответить
СообщениеИли может найдется решение макросом. Оно как-то привычнее ))

Автор - 1denes1
Дата добавления - 01.09.2024 в 00:29
1denes1 Дата: Воскресенье, 01.09.2024, 00:38 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

В PQ максимум, что получилось - это обновление каждую минуту. Но этого не достаточно, может есть обновление при изменении таблицы? Я не нашел ничего похожего.
 
Ответить
СообщениеВ PQ максимум, что получилось - это обновление каждую минуту. Но этого не достаточно, может есть обновление при изменении таблицы? Я не нашел ничего похожего.

Автор - 1denes1
Дата добавления - 01.09.2024 в 00:38
Pelena Дата: Воскресенье, 01.09.2024, 01:14 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19375
Репутация: 4531 ±
Замечаний: ±

Excel 365 & Mac Excel
может найдется решение макросом

решение макросом
К сообщению приложен файл: jachejki_v_stolbec_30_08.xlsm (19.6 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
может найдется решение макросом

решение макросом

Автор - Pelena
Дата добавления - 01.09.2024 в 01:14
1denes1 Дата: Воскресенье, 01.09.2024, 02:39 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Добавил в макрос Pelena запуск при изменение ячеек из указанного диапазона, Леночка вы моё спасение!

Прописываем 2 макроса:
1. Вспомогательный макрос на листе в котором должен автоматически запускаться нужный макрос при внесении изменений в ячейках.
2. Макрос который должен запускаться автоматически прописываем в модуле книги.

Вспомогательный макрос:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

'Переменная KeyCells содержит ячейки при изменении которых будет запускаться макрос
Set KeyCells = Range("A1:C10")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then

' Указываем имя макроса записанного в модуле:
ИмяМакроса

End If
End Sub
[/vba]
 
Ответить
СообщениеДобавил в макрос Pelena запуск при изменение ячеек из указанного диапазона, Леночка вы моё спасение!

Прописываем 2 макроса:
1. Вспомогательный макрос на листе в котором должен автоматически запускаться нужный макрос при внесении изменений в ячейках.
2. Макрос который должен запускаться автоматически прописываем в модуле книги.

Вспомогательный макрос:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

'Переменная KeyCells содержит ячейки при изменении которых будет запускаться макрос
Set KeyCells = Range("A1:C10")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then

' Указываем имя макроса записанного в модуле:
ИмяМакроса

End If
End Sub
[/vba]

Автор - 1denes1
Дата добавления - 01.09.2024 в 02:39
1denes1 Дата: Воскресенье, 01.09.2024, 02:40 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Лена отправил вам спасибо на Юмани! Спасибо!
 
Ответить
СообщениеЛена отправил вам спасибо на Юмани! Спасибо!

Автор - 1denes1
Дата добавления - 01.09.2024 в 02:40
Pelena Дата: Воскресенье, 01.09.2024, 08:45 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19375
Репутация: 4531 ±
Замечаний: ±

Excel 365 & Mac Excel
Спасибо, получила)
[vba]
Код
If Not Application.Intersect(KeyCells, Range(Target.Address))
[/vba]
можно заменить на
[vba]
Код
If Not Application.Intersect(KeyCells, Target))
[/vba]

Ну и при таком раскладе можно передать KeyCells в рабочий макрос и уже цикл сделать именно по этому диапазону


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСпасибо, получила)
[vba]
Код
If Not Application.Intersect(KeyCells, Range(Target.Address))
[/vba]
можно заменить на
[vba]
Код
If Not Application.Intersect(KeyCells, Target))
[/vba]

Ну и при таком раскладе можно передать KeyCells в рабочий макрос и уже цикл сделать именно по этому диапазону

Автор - Pelena
Дата добавления - 01.09.2024 в 08:45
Hugo Дата: Воскресенье, 01.09.2024, 09:42 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3604
Репутация: 780 ±
Замечаний: 0% ±

365
1denes1, на какой версии Экселя работаете?
Если есть динамические диапазоны - удобный вариант массивная UDF, не нужно кнопок и событий, можно без допработы применять где угодно, введя в одну ячейку =функция(диапазон).
Можно и в старых использовать такую UDF, но сложнее применять.
P.S. Вот добавил в файл, специально оставил первый столбец как есть датой, но не обработанной форматом ячейки. Но если выводить форматированным текстом то будет визуально как зададите.
К сообщению приложен файл: 4198861.xlsm (23.6 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Воскресенье, 01.09.2024, 10:44
 
Ответить
Сообщение1denes1, на какой версии Экселя работаете?
Если есть динамические диапазоны - удобный вариант массивная UDF, не нужно кнопок и событий, можно без допработы применять где угодно, введя в одну ячейку =функция(диапазон).
Можно и в старых использовать такую UDF, но сложнее применять.
P.S. Вот добавил в файл, специально оставил первый столбец как есть датой, но не обработанной форматом ячейки. Но если выводить форматированным текстом то будет визуально как зададите.

Автор - Hugo
Дата добавления - 01.09.2024 в 09:42
1denes1 Дата: Воскресенье, 15.09.2024, 00:55 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Да потрясающе. Это то что нужно!!!
Наверное успешная тема всегда заканчивается такими словами )))
 
Ответить
СообщениеДа потрясающе. Это то что нужно!!!
Наверное успешная тема всегда заканчивается такими словами )))

Автор - 1denes1
Дата добавления - 15.09.2024 в 00:55
прохожий2019 Дата: Воскресенье, 15.09.2024, 12:53 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 1288
Репутация: 322 ±
Замечаний: 0% ±

365 Beta Channel
мало ли, 365 на борту...
[vba]
Код
=REDUCE(Таблица[#Заголовки];ПОСЛЕД(ЧСТРОК(Таблица));LAMBDA(s;y;LET(z;ИНДЕКС(Таблица;y;2);d;ТЕКСТРАЗД(z;;" ! ");ВСТОЛБИК(s;ГСТОЛБИК(ПОСЛЕД(ЧСТРОК(d);;ИНДЕКС(Таблица;y;1);0);d)))))
[/vba]
К сообщению приложен файл: 0455062.xlsx (18.6 Kb)


Сообщение отредактировал прохожий2019 - Воскресенье, 15.09.2024, 12:54
 
Ответить
Сообщениемало ли, 365 на борту...
[vba]
Код
=REDUCE(Таблица[#Заголовки];ПОСЛЕД(ЧСТРОК(Таблица));LAMBDA(s;y;LET(z;ИНДЕКС(Таблица;y;2);d;ТЕКСТРАЗД(z;;" ! ");ВСТОЛБИК(s;ГСТОЛБИК(ПОСЛЕД(ЧСТРОК(d);;ИНДЕКС(Таблица;y;1);0);d)))))
[/vba]

Автор - прохожий2019
Дата добавления - 15.09.2024 в 12:53
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!