Функция ЛЕВ и ПРАВ - тестовый формат.

Автор kokosergei, 16 ноября 2020, 17:10

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

kokosergei

Почему эти функции извлекают данные в текстовом формате и как с этим бороться?

kompilainenn

Может потому, что они обрабатывают текстовую строку?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kokosergei

Цитата: kompilainenn от 16 ноября 2020, 17:33
Может потому, что они обрабатывают текстовую строку?
Из любого числа выдаёт результат в виде текста.

sokol92

Если нужно число, то можно так:

=--ЛЕВ(A1;1)
Владимир.

bigor

Ну может быть потому что это текстовые функции. Для перевода в число умножьте получившееся значение функции на 1.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

eeigor

#5
Чтобы отделить что-то слева или справа от числа, надо сначала число преобразовать в строку. Эта операция выполняется неявно за вас.
=Right(100, 2)   возвращает "00". А что, надо вернуть 1?
Python, к примеру, не допускает неявного преобразования: вы бы сначала преобразовали число 100 в строку "100", а потом её обработали. Полученный результат надо самостоятельно преобразовать к другому типу данных, если требуется.
dim a&, lval, rval
a = 100
lval = Left(a, 1): rval = Right(a, 2)
lval = Val(lval): rval = Val(rval)


Получаем 1 и 0 соответственно как числа
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

bigor

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

kokosergei

Цитата: Bigor от 16 ноября 2020, 21:27
Цитата: eeigor от 16 ноября 2020, 20:51=ЦЕЛОЕ(ЛЕВ(A1;1))
точнее =ЗНАЧ(ЛЕВ(A1;1))

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

eeigor

Именно так, без округления. В примере выше я использовал Val().
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

eeigor

kokosergei, но использование двух минусов подряд - это большая сила, и если думаете вникать глубоко, то берите на вооружение.
Минус первый вызывает операцию преобразования в число, и оно будет отрицательным. Минус второй восстанавливает знак числа. Это самый быстрый вариант и самый короткий по длине.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

kokosergei

Цитата: eeigor от 16 ноября 2020, 21:37
kokosergei, но использование двух минусов подряд - это большая сила, и если думаете вникать глубоко, то берите на вооружение.
Минус первый вызывает операцию преобразования в число, и оно будет отрицательным. Минус второй восстанавливает знак числа. Это самый быстрый вариант и самый короткий по длине.
Да, заметил, спасибо.