Работа с элементами массива

Автор TanaTiX, 20 марта 2022, 12:26

0 Пользователи и 1 гость просматривают эту тему.

TanaTiX

Собственно как получить доступ к элементу массива?
Массив создается в ячейки примерно в таком виде:
={"aaa";"bbb";"ccc";"ddd";"eee"}
Как мне получить 3й элемент?
В табличном решении от Google есть функция ИНДЕКС(массив;элемент_массива)
Что есть аналогичное в Libre? Или может другой способ?

eeigor

#1
Цитата: TanaTiX от 20 марта 2022, 12:26Массив создается в ячейке...
Тогда в и ячейку попадёт только первый элемент массива.
A2:E2: {={"aaa";"bbb";"ccc";"ddd";"eee"}}
A2:A6: {={"aaa"|"bbb"|"ccc"|"ddd"|"eee"}}

Цитата: TanaTiX от 20 марта 2022, 12:26Как мне получить 3й элемент?
В табличном решении от Google есть функция ИНДЕКС(массив;элемент_массива)
Что есть аналогичное в Libre?
=INDEX({"aaa";"bbb";"ccc";"ddd";"eee"};0;3)
=INDEX({"aaa"|"bbb"|"ccc"|"ddd"|"eee"};3;0)
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

TanaTiX

Не, формула записана в одной ячейке.
INDEX - а какой аналог функции в русском языке?

eeigor

Нет, в ячейке с Вашей формулой будет содержаться только первый элемент массива, что абсолютно верно.
И обращение к этой ячейке (формула выше) приведёт к ошибке "Err:502". Нельзя извлечь то, чего там нет.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

TanaTiX

Все же обычный индекс заработал.
=ИНДЕКС({"aaa";"bbb";"ccc";"ddd";"eee"};0;3)

TanaTiX

Смущает 2й элемент функции.

mikekaganski

Цитата: TanaTiX от 20 марта 2022, 13:28INDEX - а какой аналог функции в русском языке?
Включите английские имена функций в настройках, и не придётся искать русскоязычные аналоги.
С уважением,
Михаил Каганский

eeigor

Цитата: eeigor от 20 марта 2022, 13:11=INDEX({"aaa";"bbb";"ccc";"ddd";"eee"};0;3)
=INDEX({"aaa"|"bbb"|"ccc"|"ddd"|"eee"};3;0)
В первом случае: все строки.
Во втором случае: все столбцы.
0 в обоих случаях можно опустить.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

#8
Цитата: TanaTiX от 20 марта 2022, 12:26В табличном решении от Google есть функция ИНДЕКС(массив;элемент_массива)
Неправда, нет такого. Есть ИНДЕКС(массив;[строка];[столбец]) - см. документацию.
Цитата: TanaTiX от 20 марта 2022, 13:34Смущает 2й элемент функции.
И опять-таки, см. документацию (в дополнение к тому, что "смущает" - вообще ни о чём не говорит, и непонятно, на какой вопрос отвечать).
С уважением,
Михаил Каганский

TanaTiX

Цитата: eeigor от 20 марта 2022, 13:31в ячейке с Вашей формулой будет содержаться только первый элемент массива
А есть возможность поместить в ячейку весь массив? В том же Google делал через split. Или тогда есть смысл делать как помогали в этой теме? https://forumooo.ru/index.php/topic,9070.0.html

eeigor

Цитата: mikekaganski от 20 марта 2022, 13:42и непонятно, на какой вопрос отвечать
Да я, вроде, ответил. Кроме того, эта функция в LibO круче, как и в Excel, поскольку имеет ещё один дополнительный параметр Range, а также может возвращать ссылку (а не скалярную величину) в зависимости от контекста. Google-аналог рядом не стоит.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

Цитата: TanaTiX от 20 марта 2022, 13:45А есть возможность поместить в ячейку весь массив? В том же Google делал через split.
SPLIT не помещает весь массив в одну ячейку. Он размещает результат в разные ячейки.

В Calc нет аналога.
С уважением,
Михаил Каганский

eeigor

Цитата: TanaTiX от 20 марта 2022, 13:45А есть возможность поместить в ячейку весь массив?
Конечно. Придумайте разделитель, чтобы потом "разделять". Даже механизм есть: Текст по столбцам.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

mikekaganski

Цитата: eeigor от 20 марта 2022, 13:47Да я, вроде, ответил.
Да, Вы ответили. Однако это не отменяет того, что задающий вопрос должен стараться быть понятным, а не полагаться на чтение мыслей отвечающим.
С уважением,
Михаил Каганский

TanaTiX