Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

20 Март 2019, 12:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Конкатенация массивов  (Прочитано 1539 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Placidus
Участник
**
Offline Offline

Сообщений: 17


« Стартовое сообщение: 3 Август 2016, 21:26 »

Всем добра!
Подскажите, пожалуйста, каким образом можно один массив добавить в конец другого? Например имеем два диапазона name1 на лист1 и name2 на лист2. Есть ли к.л. вариант создать массив name3 соединяющий в себе данные из обоих массивов? Оператор & даёт новый массив с конкатенированными данными по типу: name3[0] = name1[0]+name2[0] etc. Т.е. он просто обходит параллельно два массива и конкатенирует данные в каждой ячейке (оператор + даёт такой же эффект только данные он складывает)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 727


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 3 Август 2016, 22:26 »

Ты наверняка назовёшь это очередным костылём...
Код:
{=IF(ROW()<=ROWS(name1);name1;name2)}
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Placidus
Участник
**
Offline Offline

Сообщений: 17


« Ответ #2: 3 Август 2016, 22:45 »

{=IF(ROW()<=ROWS(name1);name1;name2)}
Выглядит как костыль Улыбка Но у меня не сработало для моей задачи. Расширяю пояснение: Есть два листа с данными: индекс; ФИО. На одном листе мужчины, на другом листе женщины. На третьем листе нужно вставлять по индексу ФИО из массива как мужчин, так и женщин. Хочу сделать с помощью выпадающего списка, но там надо задавать диапазон с данными. Так не работает: женщины.А1:B100;мужчины.A1:B100. Следовательно мне нужно и мужчин и женщин объединить в один массив и скормить его в диалог создания списка.
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 727


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 4 Август 2016, 11:47 »

Но у меня не сработало для моей задачи.
Это, наверное, из-за неправильного применения. Предполагалось, что эта формула будет вписана в A1 вспомогательного листа и растянута на нужную высоту
Расширяю пояснение: Есть два листа с данными: индекс; ФИО. На одном листе мужчины, на другом листе женщины. На третьем листе нужно вставлять по индексу ФИО из массива как мужчин, так и женщин.
Хочу сделать с помощью выпадающего списка
Так в выпадающем списке должны быть ФИО или индексы?
там надо задавать диапазон с данными. Так не работает: женщины.А1:B100;мужчины.A1:B100. Следовательно мне нужно и мужчин и женщин объединить в один массив и скормить его в диалог создания списка.
Ну да, и формула на вспомогательном листе именно это и должна сделать.
Если же уже есть индекс и просто "нужно вставлять по индексу ФИО из массива", то формула
Код:
=IFERROR(VLOOKUP($A$2;name1;2;0);IFERROR(VLOOKUP($A$2;name2;2;0);"Не найден"))
должна с этой задачей справиться. Здесь подразумевается, что в A2 внесен какой-то индекс, в именованном диапазоне name1 лежат индексы и ФИО из женщины.А1:B100, а в name2 - мужчины.A1:B100

А вообще-то, задача как-то вывернута наоборот - почему бы не слить вместе два листа, поставив в третьей колонке признак "Пол"? Всё стало бы намного проще... А уж если бы понадобился лист только с М или только с Ж, то разделить их было бы тоже не очень сложно

И в следующий раз, пожалуйста, не скромничай - пиши задачу сразу же "как есть". Ну, попробуй перечитать первое сообщение - где там речь о выпадающих списках?
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Placidus
Участник
**
Offline Offline

Сообщений: 17


« Ответ #4: 4 Август 2016, 12:30 »

Но у меня не сработало для моей задачи.
Это, наверное, из-за неправильного применения. Предполагалось, что эта формула будет вписана в A1 вспомогательного листа и растянута на нужную высоту
Расширяю пояснение: Есть два листа с данными: индекс; ФИО. На одном листе мужчины, на другом листе женщины. На третьем листе нужно вставлять по индексу ФИО из массива как мужчин, так и женщин.
Хочу сделать с помощью выпадающего списка
Так в выпадающем списке должны быть ФИО или индексы?
там надо задавать диапазон с данными. Так не работает: женщины.А1:B100;мужчины.A1:B100. Следовательно мне нужно и мужчин и женщин объединить в один массив и скормить его в диалог создания списка.
Ну да, и формула на вспомогательном листе именно это и должна сделать.
Если же уже есть индекс и просто "нужно вставлять по индексу ФИО из массива", то формула
Код:
=IFERROR(VLOOKUP($A$2;name1;2;0);IFERROR(VLOOKUP($A$2;name2;2;0);"Не найден"))
должна с этой задачей справиться. Здесь подразумевается, что в A2 внесен какой-то индекс, в именованном диапазоне name1 лежат индексы и ФИО из женщины.А1:B100, а в name2 - мужчины.A1:B100

А вообще-то, задача как-то вывернута наоборот - почему бы не слить вместе два листа, поставив в третьей колонке признак "Пол"? Всё стало бы намного проще... А уж если бы понадобился лист только с М или только с Ж, то разделить их было бы тоже не очень сложно

И в следующий раз, пожалуйста, не скромничай - пиши задачу сразу же "как есть". Ну, попробуй перечитать первое сообщение - где там речь о выпадающих списках?
Спасибо! Конечно, можно смешать всех в один список, не хотелось добавлять лишнее поле, но скорее всего это лучший вариант.
По задаче: согласен, про выпадающие списки нет. Сначала хотел порешать "малой кровью" Улыбка по сути объединение массивов задача тривиальная (оказалось что не в ЛО)
По индексам: сначала у меня и было так сделано как ты предлагаешь, но хочется сделать более юзерфрендли. Т.е. юзеру сначала придётся лезть на страничку со списком, искать Фамилию, запоминать индекс... меня пользователь проклянёт до третьего колена! (да не произойдёт сие зло!) Хотелось сделать красиво, чтобы пользователь выбирал Фамилию, а вставлялся индекс (пока задачу не решил). Задача в сухом "итого": Есть список людей с соответствующими атрибутами на одном листе, на другом листе этим же людям надо добавлять другие изменяемые атрибуты. (условно: лист1 список студентов, лист2 табель посещаемости. В табеле представлен не весь список студентов, т.е. их надо выбирать из листа1.)
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!