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

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

25 Ноябрь 2020, 14:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 28


« Стартовое сообщение: 16 Ноябрь 2020, 17:10 »

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

Сообщений: 3 091



« Ответ #1: 16 Ноябрь 2020, 17:33 »

Может потому, что они обрабатывают текстовую строку?
Записан

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

Сообщений: 28


« Ответ #2: 16 Ноябрь 2020, 17:40 »

Может потому, что они обрабатывают текстовую строку?
Из любого числа выдаёт результат в виде текста.
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 222


WWW
« Ответ #3: 16 Ноябрь 2020, 20:38 »

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

=--ЛЕВ(A1;1)
Записан

Владимир.
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 015


« Ответ #4: 16 Ноябрь 2020, 20:39 »

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

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 170



« Ответ #5: 16 Ноябрь 2020, 20:44 »

Чтобы отделить что-то слева или справа от числа, надо сначала число преобразовать в строку. Эта операция выполняется неявно за вас.
=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 соответственно как числа
« Последнее редактирование: 16 Ноябрь 2020, 20:47 от eeigor » Записан
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 170



« Ответ #6: 16 Ноябрь 2020, 20:51 »

=--ЛЕВ(A1;1)
или то же самое:
=ЦЕЛОЕ(ЛЕВ(A1;1))
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 015


« Ответ #7: 16 Ноябрь 2020, 21:27 »

=ЦЕЛОЕ(ЛЕВ(A1;1))
точнее =ЗНАЧ(ЛЕВ(A1;1))
Записан

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

Сообщений: 28


« Ответ #8: 16 Ноябрь 2020, 21:30 »

=ЦЕЛОЕ(ЛЕВ(A1;1))
точнее =ЗНАЧ(ЛЕВ(A1;1))

Спасибо, помогло. Я думал может версия Калька глючнутая.
Записан
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 170



« Ответ #9: 16 Ноябрь 2020, 21:32 »

Именно так, без округления. В примере выше я использовал Val().
Записан
eeigor
Ubuntu 18.04 LTS • LO 7.0.2.2
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 170



« Ответ #10: 16 Ноябрь 2020, 21:37 »

kokosergei, но использование двух минусов подряд - это большая сила, и если думаете вникать глубоко, то берите на вооружение.
Минус первый вызывает операцию преобразования в число, и оно будет отрицательным. Минус второй восстанавливает знак числа. Это самый быстрый вариант и самый короткий по длине.
Записан
kokosergei
Участник
**
Offline Offline

Сообщений: 28


« Ответ #11: 16 Ноябрь 2020, 22:23 »

kokosergei, но использование двух минусов подряд - это большая сила, и если думаете вникать глубоко, то берите на вооружение.
Минус первый вызывает операцию преобразования в число, и оно будет отрицательным. Минус второй восстанавливает знак числа. Это самый быстрый вариант и самый короткий по длине.
Да, заметил, спасибо.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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