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

Вход

Регистрация

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

 

= Мир MS Excel/=СЦЕПИТЬ(A1:An;", ") - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин  
=СЦЕПИТЬ(A1:An;", ")
Понравился вопрос?
Serge_007 Дата: Пятница, 07.06.2013, 23:18 | Сообщение № 1
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Друзья!
Я понимаю, лето, отпуска и всё такое, но как-то интересных задач поубавилось что-ли...

Думаю что моя задача будет не сложной и достаточно очевидной, но я почему-то никогда не встречал подобного решения в интернетах

Задача проста: Необходимо конкатенировать одномерный диапазон А1:Аn (в примере n=20) в текстовую строку, например через запятую, т.е в С1 получить значения А1:А20 (из файла всё станет понятно). Естественно речь идёт не о ручном перечислении ячеек через амперсанд или функцию СЦЕПИТЬ() Этот вариант не рассматривается, особенно если n = 1 000 000

Ограничений только два:
1. Нельзя использовать не Excel'евские средства (VBA, SQL, MSQuery и проч)
2. Нельзя использовать дополнительные ячейки

Решение у меня есть. Тех, у кого оно тоже есть, прошу сразу не выкладывать (даже под спойлером), а просто написать о том что оно есть

Для "особенно продвинутых" есть третье условие, но оно несложное по любым меркам

К сообщению приложен файл: Concatenate.xls (25.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеДрузья!
Я понимаю, лето, отпуска и всё такое, но как-то интересных задач поубавилось что-ли...

Думаю что моя задача будет не сложной и достаточно очевидной, но я почему-то никогда не встречал подобного решения в интернетах

Задача проста: Необходимо конкатенировать одномерный диапазон А1:Аn (в примере n=20) в текстовую строку, например через запятую, т.е в С1 получить значения А1:А20 (из файла всё станет понятно). Естественно речь идёт не о ручном перечислении ячеек через амперсанд или функцию СЦЕПИТЬ() Этот вариант не рассматривается, особенно если n = 1 000 000

Ограничений только два:
1. Нельзя использовать не Excel'евские средства (VBA, SQL, MSQuery и проч)
2. Нельзя использовать дополнительные ячейки

Решение у меня есть. Тех, у кого оно тоже есть, прошу сразу не выкладывать (даже под спойлером), а просто написать о том что оно есть

Для "особенно продвинутых" есть третье условие, но оно несложное по любым меркам


Автор - Serge_007
Дата добавления - 07.06.2013 в 23:18
AndreTM Дата: Пятница, 07.06.2013, 23:39 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Serge_007, я именно про это спрашивал там. Получается, ты решил всё же этот вопрос... cool


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 07.06.2013, 23:43
 
Ответить
Сообщение Serge_007, я именно про это спрашивал там. Получается, ты решил всё же этот вопрос... cool

Автор - AndreTM
Дата добавления - 07.06.2013 в 23:39
Serge_007 Дата: Пятница, 07.06.2013, 23:47 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Не, Андрей, там совершенно другой вопрос. Я ту тему вообще не помню - ответил и забыл (после первого ответа я в ней и не появлялся больше). Сейчас по ссылке посмотрел - там требуется по условию выбрать данные и разнести их по нескольким строкам. В моей текущей задаче ничего подобного нет


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНе, Андрей, там совершенно другой вопрос. Я ту тему вообще не помню - ответил и забыл (после первого ответа я в ней и не появлялся больше). Сейчас по ссылке посмотрел - там требуется по условию выбрать данные и разнести их по нескольким строкам. В моей текущей задаче ничего подобного нет

Автор - Serge_007
Дата добавления - 07.06.2013 в 23:47
AndreTM Дата: Суббота, 08.06.2013, 00:12 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Цитата (Serge_007)
там требуется по условию выбрать данные и разнести их по нескольким строкам
Неверно посмотрел (у меня же в ответе есть UDF). Там надо отбирать данные, для заданного условия - и возвращать каждый результат в виде строки через запятую. Как раз то, о чём ты и завёл разговор.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Цитата (Serge_007)
там требуется по условию выбрать данные и разнести их по нескольким строкам
Неверно посмотрел (у меня же в ответе есть UDF). Там надо отбирать данные, для заданного условия - и возвращать каждый результат в виде строки через запятую. Как раз то, о чём ты и завёл разговор.

Автор - AndreTM
Дата добавления - 08.06.2013 в 00:12
vikttur Дата: Суббота, 08.06.2013, 00:13 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Цитата (Serge_007)
Нельзя использовать не Excel'евские средства (VBA,...

Значит, макрофункции - тоже нельзя?
 
Ответить
Сообщение
Цитата (Serge_007)
Нельзя использовать не Excel'евские средства (VBA,...

Значит, макрофункции - тоже нельзя?

Автор - vikttur
Дата добавления - 08.06.2013 в 00:13
Serge_007 Дата: Суббота, 08.06.2013, 00:19 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Вить, а ты что хотел предложить?
Приветствуются любые решения

Добавлено (08.06.2013, 00:19)
---------------------------------------------
Цитата (AndreTM)
то, о чём ты и завёл разговор
У тебя есть решение моей задачи? ИМХО - моя и та задачи - разные


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВить, а ты что хотел предложить?
Приветствуются любые решения

Добавлено (08.06.2013, 00:19)
---------------------------------------------
Цитата (AndreTM)
то, о чём ты и завёл разговор
У тебя есть решение моей задачи? ИМХО - моя и та задачи - разные

Автор - Serge_007
Дата добавления - 08.06.2013 в 00:19
vikttur Дата: Суббота, 08.06.2013, 00:30 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Я хотел предложить вопрос. Предложил smile
 
Ответить
СообщениеЯ хотел предложить вопрос. Предложил smile

Автор - vikttur
Дата добавления - 08.06.2013 в 00:30
Serge_007 Дата: Суббота, 08.06.2013, 00:32 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Я думал ты решение на XLM знаешь sad


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЯ думал ты решение на XLM знаешь sad

Автор - Serge_007
Дата добавления - 08.06.2013 в 00:32
vikttur Дата: Суббота, 08.06.2013, 00:48 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Цитата (Serge_007)
просто написать о том что оно есть

Оно есть. Вряд ли такое же, но под условия задачи подходит.
 
Ответить
Сообщение
Цитата (Serge_007)
просто написать о том что оно есть

Оно есть. Вряд ли такое же, но под условия задачи подходит.

Автор - vikttur
Дата добавления - 08.06.2013 в 00:48
Serge_007 Дата: Суббота, 08.06.2013, 09:42 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Пиши в личку

Добавлено (08.06.2013, 09:42)
---------------------------------------------
Есть решение Виктора и на мой взгляд - оно достаточно простое и интересное. Витя - тебе заслуженный плюс!
Но оно использует итерации, а хотелось бы "чистого Excel", без использования его настроек. Ну и что бы не жать на F9 миллион раз (макросы-то запрещены smile )


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПиши в личку

Добавлено (08.06.2013, 09:42)
---------------------------------------------
Есть решение Виктора и на мой взгляд - оно достаточно простое и интересное. Витя - тебе заслуженный плюс!
Но оно использует итерации, а хотелось бы "чистого Excel", без использования его настроек. Ну и что бы не жать на F9 миллион раз (макросы-то запрещены smile )

Автор - Serge_007
Дата добавления - 08.06.2013 в 09:42
Pelena Дата: Суббота, 08.06.2013, 13:35 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19403
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
В правильности решения сомневаюсь, но результат получен


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВ правильности решения сомневаюсь, но результат получен

Автор - Pelena
Дата добавления - 08.06.2013 в 13:35
Serge_007 Дата: Суббота, 08.06.2013, 19:18 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Всё, я понял что имели ввиду Зорро и Пелена: Нет, исходные данные изменять нельзя!
Я подразумевал что доп. ячейки - это ЛЮБЫЕ ячейки, кроме С1


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВсё, я понял что имели ввиду Зорро и Пелена: Нет, исходные данные изменять нельзя!
Я подразумевал что доп. ячейки - это ЛЮБЫЕ ячейки, кроме С1

Автор - Serge_007
Дата добавления - 08.06.2013 в 19:18
DV Дата: Суббота, 08.06.2013, 19:38 | Сообщение № 13
Группа: Друзья
Ранг: Обитатель
Сообщений: 286
Репутация: 194 ±
Замечаний: 0% ±

Excel 2010 RUS
Ручками за 11 действий такое делается biggrin
 
Ответить
СообщениеРучками за 11 действий такое делается biggrin

Автор - DV
Дата добавления - 08.06.2013 в 19:38
Serge_007 Дата: Суббота, 08.06.2013, 21:09 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Пиши в личку smile

Добавлено (08.06.2013, 19:53)
---------------------------------------------
Это верно, Дима сделал именно так, как я и предполагал smile
Первое правильное решение есть, Дима - в плюс smile

Добавлено (08.06.2013, 20:24)
---------------------------------------------
Раз уж решение есть, то добавлю третье условие - нельзя использовать домашних любимцев (мышек, птичек, собачек и иже с ними smile )

Добавлено (08.06.2013, 20:47)
---------------------------------------------
У меня получилось smile

Добавлено (08.06.2013, 21:09)
---------------------------------------------
По итогам - запишу видео и выложу smile



ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПиши в личку smile

Добавлено (08.06.2013, 19:53)
---------------------------------------------
Это верно, Дима сделал именно так, как я и предполагал smile
Первое правильное решение есть, Дима - в плюс smile

Добавлено (08.06.2013, 20:24)
---------------------------------------------
Раз уж решение есть, то добавлю третье условие - нельзя использовать домашних любимцев (мышек, птичек, собачек и иже с ними smile )

Добавлено (08.06.2013, 20:47)
---------------------------------------------
У меня получилось smile

Добавлено (08.06.2013, 21:09)
---------------------------------------------
По итогам - запишу видео и выложу smile


Автор - Serge_007
Дата добавления - 08.06.2013 в 21:09
Rustem Дата: Суббота, 08.06.2013, 23:29 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 281
Репутация: 48 ±
Замечаний: 0% ±

Excel 2013
Есть вариант решения, отправил в ЛС.


WMR: R183220163895
 
Ответить
СообщениеЕсть вариант решения, отправил в ЛС.

Автор - Rustem
Дата добавления - 08.06.2013 в 23:29
Serge_007 Дата: Воскресенье, 09.06.2013, 08:41 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Да Rustem, практически то же самое smile
Мой вариант немного короче

Добавлено (09.06.2013, 08:41)
---------------------------------------------
И всё-таки получается что я первый smile
Есть ссылки на другие решения (спасибо Rustem), однако они длиннее



ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеДа Rustem, практически то же самое smile
Мой вариант немного короче

Добавлено (09.06.2013, 08:41)
---------------------------------------------
И всё-таки получается что я первый smile
Есть ссылки на другие решения (спасибо Rustem), однако они длиннее


Автор - Serge_007
Дата добавления - 09.06.2013 в 08:41
MCH Дата: Воскресенье, 09.06.2013, 09:25 | Сообщение № 17
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Только что увидел тему, сразу же вопросы:
1. При формульном решении можно использовать итерации?
2. Задача решается не обязательно формулами, а любыми стандартными средствами Excel?
 
Ответить
СообщениеТолько что увидел тему, сразу же вопросы:
1. При формульном решении можно использовать итерации?
2. Задача решается не обязательно формулами, а любыми стандартными средствами Excel?

Автор - MCH
Дата добавления - 09.06.2013 в 09:25
Serge_007 Дата: Воскресенье, 09.06.2013, 12:20 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (MCH)
можно использовать итерации?

Цитата (Serge_007)
Есть решение Виктора и на мой взгляд - оно достаточно простое и интересное. Витя - тебе заслуженный плюс!
Но оно использует итерации, а хотелось бы "чистого Excel", без использования его настроек. Ну и что бы не жать на F9 миллион раз (макросы-то запрещены smile )


Цитата (MCH)
Задача решается не обязательно формулами, а любыми стандартными средствами Excel?

Да

ЗЫ Решения уже есть smile

Добавлено (09.06.2013, 12:20)
---------------------------------------------
Вот и решение:
БЕЗ использования мышки smile

Другие варианты:
1. С использованием итераций:
Код
=ЕСЛИ(ДЛСТР(C1)-ДЛСТР(ПОДСТАВИТЬ(C1;",";))=20;C1;ЕСЛИ(ДЛСТР(C1)>1;C1&",";",")&ИНДЕКС($A$1:$A$20;1+ДЛСТР(C1)-ДЛСТР(ПОДСТАВИТЬ(C1;",";))))

2. Используя функции листа:
Код
=СЦЕПИТЬ(ТРАНСП(A1:A20&", "))
, после чего жмём на F9 smile
http://www.get-digital-help.com/2011....n-excel


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (MCH)
можно использовать итерации?

Цитата (Serge_007)
Есть решение Виктора и на мой взгляд - оно достаточно простое и интересное. Витя - тебе заслуженный плюс!
Но оно использует итерации, а хотелось бы "чистого Excel", без использования его настроек. Ну и что бы не жать на F9 миллион раз (макросы-то запрещены smile )


Цитата (MCH)
Задача решается не обязательно формулами, а любыми стандартными средствами Excel?

Да

ЗЫ Решения уже есть smile

Добавлено (09.06.2013, 12:20)
---------------------------------------------
Вот и решение:
БЕЗ использования мышки smile

Другие варианты:
1. С использованием итераций:
Код
=ЕСЛИ(ДЛСТР(C1)-ДЛСТР(ПОДСТАВИТЬ(C1;",";))=20;C1;ЕСЛИ(ДЛСТР(C1)>1;C1&",";",")&ИНДЕКС($A$1:$A$20;1+ДЛСТР(C1)-ДЛСТР(ПОДСТАВИТЬ(C1;",";))))

2. Используя функции листа:
Код
=СЦЕПИТЬ(ТРАНСП(A1:A20&", "))
, после чего жмём на F9 smile
http://www.get-digital-help.com/2011....n-excel

Автор - Serge_007
Дата добавления - 09.06.2013 в 12:20
MCH Дата: Воскресенье, 09.06.2013, 12:49 | Сообщение № 19
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Цитата (Serge_007)
ЗЫ Решения уже есть

а зачем скобки удалять заменой, они с помощью Backspace удаляются значительно быстрее
 
Ответить
Сообщение
Цитата (Serge_007)
ЗЫ Решения уже есть

а зачем скобки удалять заменой, они с помощью Backspace удаляются значительно быстрее

Автор - MCH
Дата добавления - 09.06.2013 в 12:49
Serge_007 Дата: Воскресенье, 09.06.2013, 12:52 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Это не принципиально, думаю smile
Да и как быстрее может быть, и так сотые доли секунды...
Я медленно специально записывал, что бы понятно было, в реальности это в разы быстрее


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЭто не принципиально, думаю smile
Да и как быстрее может быть, и так сотые доли секунды...
Я медленно специально записывал, что бы понятно было, в реальности это в разы быстрее

Автор - Serge_007
Дата добавления - 09.06.2013 в 12:52
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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