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

Вход

Регистрация

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

 

= Мир MS Excel/Составление списка (выборка данных) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Составление списка (выборка данных)
Faraway Дата: Четверг, 20.05.2021, 16:00 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте.
Я себе составил таблику, при заполнении которой, в отдельной ячейке строкой заполняются данные. Данные в строке собираются через разделитель "/", а разделитель ";" указывает, что пошли данные соследующей строки. Дополнительная палка в колеса - перед данными с определенной колонки, надо делать вставку "к-во:".
Я написал для этого незамысловатую формулу, которая в принципе работает, но немного криво.
Что именно криво она делает:
1. если нет данных например у примечания, она все равно усьтановит разделитель ;/;
2. она собирает данные со всех линеек, если какие то пустые, формула все равно их забирает, вставляя только разделители и вставку "к-во". Что я имею введу, можно посмотреть в таблице для примера в строке 2.
Есть ли способ чтоб данные собирались только с тех строк, в которых есть информация, и чтоб если какая то ячейка была пустой, например со столбца примечание, чтоб формула это понимала и не втыкала лишний разделитель?
Более наглядно то, что у меня есть и к чему я бы хотел прийдти, я отобразил в Табличке с примером
Спасибо.
 
Ответить
СообщениеЗдравствуйте.
Я себе составил таблику, при заполнении которой, в отдельной ячейке строкой заполняются данные. Данные в строке собираются через разделитель "/", а разделитель ";" указывает, что пошли данные соследующей строки. Дополнительная палка в колеса - перед данными с определенной колонки, надо делать вставку "к-во:".
Я написал для этого незамысловатую формулу, которая в принципе работает, но немного криво.
Что именно криво она делает:
1. если нет данных например у примечания, она все равно усьтановит разделитель ;/;
2. она собирает данные со всех линеек, если какие то пустые, формула все равно их забирает, вставляя только разделители и вставку "к-во". Что я имею введу, можно посмотреть в таблице для примера в строке 2.
Есть ли способ чтоб данные собирались только с тех строк, в которых есть информация, и чтоб если какая то ячейка была пустой, например со столбца примечание, чтоб формула это понимала и не втыкала лишний разделитель?
Более наглядно то, что у меня есть и к чему я бы хотел прийдти, я отобразил в Табличке с примером
Спасибо.

Автор - Faraway
Дата добавления - 20.05.2021 в 16:00
doober Дата: Пятница, 21.05.2021, 00:52 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 983
Репутация: 340 ±
Замечаний: 0% ±

Excel 2010
У Вас же стоит правильная формула в ячейке :D


 
Ответить
СообщениеУ Вас же стоит правильная формула в ячейке :D

Автор - doober
Дата добавления - 21.05.2021 в 00:52
Kashimirush Дата: Пятница, 21.05.2021, 14:50 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Код
=TEXTJOIN("";1;ArrayFormula(REGEXREPLACE(if(B7:B<>"";B7:B&" /к-во: "&C7:C&"/"&G7:G&";";);"/;";";")))

Можно вот так, не элегантная формула правда)


Работа, работа, перейди на Федота...
 
Ответить
Сообщение
Код
=TEXTJOIN("";1;ArrayFormula(REGEXREPLACE(if(B7:B<>"";B7:B&" /к-во: "&C7:C&"/"&G7:G&";";);"/;";";")))

Можно вот так, не элегантная формула правда)

Автор - Kashimirush
Дата добавления - 21.05.2021 в 14:50
Faraway Дата: Вторник, 25.05.2021, 20:52 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Спасибо, хорошие варианты.
интересный вариант со скриптом, но это слишком сложно для меня )
 
Ответить
СообщениеСпасибо, хорошие варианты.
интересный вариант со скриптом, но это слишком сложно для меня )

Автор - Faraway
Дата добавления - 25.05.2021 в 20:52
Faraway Дата: Среда, 26.05.2021, 10:45 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Kashimirush, я только теперь увидел, что забыл одну деталь. Можно ли еще сделать так, чтоб собирались только данные с тех строк, которые были заполнены (это уже сделано) и еще те, где в столбике "да/нет" указано "да"?, т.е. откинуть те, где стоит НЕТ.
Я попробовал вашу формулу изменить до такого вида:
[vba]
Код
=TEXTJOIN("";1;ArrayFormula(REGEXREPLACE(ЕСЛИ(И(B8:B<>"";F8:F="да");B8:B&" /к-во: "&C8:C&"/"&G8:G&";";);"/;";";")))
[/vba]
т.е. я к [vba]
Код
(ЕСЛИ(B8:B<>"";
[/vba]
добавил
(ЕСЛИ(B8:B<>"";F8:F="да");
Формула перестала работать. По логике должна бы сделать что хотел, а реально - не делает ничего. Подскажите пожалуйста где я ошибся.
Извеняюсь и в любом случае спасибо.


Сообщение отредактировал Faraway - Среда, 26.05.2021, 10:57
 
Ответить
СообщениеKashimirush, я только теперь увидел, что забыл одну деталь. Можно ли еще сделать так, чтоб собирались только данные с тех строк, которые были заполнены (это уже сделано) и еще те, где в столбике "да/нет" указано "да"?, т.е. откинуть те, где стоит НЕТ.
Я попробовал вашу формулу изменить до такого вида:
[vba]
Код
=TEXTJOIN("";1;ArrayFormula(REGEXREPLACE(ЕСЛИ(И(B8:B<>"";F8:F="да");B8:B&" /к-во: "&C8:C&"/"&G8:G&";";);"/;";";")))
[/vba]
т.е. я к [vba]
Код
(ЕСЛИ(B8:B<>"";
[/vba]
добавил
(ЕСЛИ(B8:B<>"";F8:F="да");
Формула перестала работать. По логике должна бы сделать что хотел, а реально - не делает ничего. Подскажите пожалуйста где я ошибся.
Извеняюсь и в любом случае спасибо.

Автор - Faraway
Дата добавления - 26.05.2021 в 10:45
Kashimirush Дата: Среда, 26.05.2021, 15:09 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Faraway, Там не нужно AND, TEXTJOIN обрезает пустые строки, плюс условие поставили не туда, надо после Arrayformula ставить условия , вы не правильное количество параметров указали в Regesplase.
Код
=TEXTJOIN("";1;ArrayFormula(IF(F8:F = "да";
REGEXREPLACE(if(B8:B<>"";B8:B&" /к-во: "&C8:C&"/"&G8:G&";";);"/;";";");)))


Работа, работа, перейди на Федота...
 
Ответить
СообщениеFaraway, Там не нужно AND, TEXTJOIN обрезает пустые строки, плюс условие поставили не туда, надо после Arrayformula ставить условия , вы не правильное количество параметров указали в Regesplase.
Код
=TEXTJOIN("";1;ArrayFormula(IF(F8:F = "да";
REGEXREPLACE(if(B8:B<>"";B8:B&" /к-во: "&C8:C&"/"&G8:G&";";);"/;";";");)))

Автор - Kashimirush
Дата добавления - 26.05.2021 в 15:09
Faraway Дата: Четверг, 27.05.2021, 10:03 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 72
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Kashimirush, да, спасибо, то что надо.
 
Ответить
СообщениеKashimirush, да, спасибо, то что надо.

Автор - Faraway
Дата добавления - 27.05.2021 в 10:03
Kashimirush Дата: Четверг, 27.05.2021, 11:42 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 240
Репутация: 41 ±
Замечаний: 0% ±

Excel 2010
Faraway, Благодарность плюсом в репутацию ощущается гораздо благодарнее, чем в комментариях)))


Работа, работа, перейди на Федота...
 
Ответить
СообщениеFaraway, Благодарность плюсом в репутацию ощущается гораздо благодарнее, чем в комментариях)))

Автор - Kashimirush
Дата добавления - 27.05.2021 в 11:42
  • Страница 1 из 1
  • 1
Поиск:

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