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

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

1 Август 2021, 07:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Сообщений: 2


« Стартовое сообщение: 6 Май 2021, 13:52 »

Здравствуйте.

Пожалуйста, подскажите, как решить эту задачу. Решать нужно срочно, а опыта с Calc у меня почти нет.

Имеется таблица, где необходимо вставить размер скидки в зависимости от страны происхождения (образец1).
Данные о соответствии страны и размера скидки берутся из другой таблицы (60 стран происхождения, 2 вида скидок (образец2)).

Я пробовала сделать с IF, но список названий слишком большой: перечислить во вложенных IF 30 стран невозможно.
Можно ли указать в IF условие типа "если значение данной ячейки (название страны из таблицы образец1) содержится в ячейках A2:A27 таблицы образец2", то в эту строку столбца G таблицы образец1 вставить значение скидки 0,9. Если значение (название страны) содержится в ячейках A28:A37 - то вставить значение скидки 0,8.

Наверно, есть и другой способ.
Буду благодарна за комментарии!


* образец2.ods (16.31 Кб - загружено 9 раз.)
* образец1.ods (19.83 Кб - загружено 8 раз.)
Записан
Bigor
Мастер
*****
Offline Offline

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


« Ответ #1: 6 Май 2021, 14:12 »

Добрый день

Если таблицу со странами перенести на второй лист в книге с основной таблицей, то можно так
Код:
=IF(MATCH(F2;Лист2.$A$2:$A$37;0)<27;0,9;0,8)
нужно еще привести в соответствие название стран в таблицах

* образец_Katya.ods (22.08 Кб - загружено 7 раз.)
« Последнее редактирование: 6 Май 2021, 14:16 от Bigor » Записан

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

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



« Ответ #2: 6 Май 2021, 16:03 »

@Bigor, нет возможности посмотреть файлы, но всё-таки имхо лучше уйти от разделения диапазонов. Добавить поле с видом скидки (1; 2), и искать его по всему диапазону стран. Затем по виду извлечь значение скидки из другого диапазона (всего два IF, а не 30). Использовать имена.
« Последнее редактирование: 6 Май 2021, 16:09 от eeigor » Записан

Ubuntu 18.04 LTS • LO 7.1.3.2 Community
Bigor
Мастер
*****
Offline Offline

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


« Ответ #3: 6 Май 2021, 16:07 »

&eeigor там можно и через ВПР() искать, но в файле числа в текстовом формате и что бы не заморачиваться разбил на диапазоны
Записан

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

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 185


« Ответ #4: 6 Май 2021, 16:16 »

Код:
VLOOKUP(F2;'образец2.ods'#$Sheet1.$A$2:$B$37;2;0)

Эта формула (например, в 'образец1.ods'#$Sheet1.$G$2) даст значение скидки. К сожалению, в виде текста, потому что столбец B в образец2.ods - текст. Можно это уже обернуть в комбинации NUMBERVALUE и IFNA по вкусу. Но на мой взгляд, не стоит ни делать ни проверки номера совпадения (это лишние заморочки), ни дефолтного значения при ненахождении: так проще найти ошибку типа BurkinaFaso вместо Burkina Faso. И преобразовав скидки в числа в исходной таблице, всё станет проще.
Записан

С уважением,
Михаил Каганский
Katya
Новичок
*
Offline Offline

Сообщений: 2


« Ответ #5: 6 Май 2021, 16:33 »

Огромное спасибо за формулы и комментарии! Все получилось!
Страны я уже исправила вручную простой заменой - тех, что без пробелов, не так много.
А почему плохо, что числа в текстовом формате? Ведь результат умножения (скидка х стоимость) получается правильным.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 185


« Ответ #6: 6 Май 2021, 16:36 »

А почему плохо, что числа в текстовом формате? Ведь результат умножения (скидка х стоимость) получается правильным.

А потому что это работает только до тех пор, пока Вы используете программу с русской локалью. Как только у Вас окажется программа, настроенная на другую локаль (скажем, en-UK), всё перестанет считать. Потому что там десятичный разделитель - не запятая.
Записан

С уважением,
Михаил Каганский
Soloman
Новичок
*
Offline Offline

Сообщений: 1


« Ответ #7: 31 Май 2021, 18:41 »

Здравствуйте. Подскажите как решить похожую чем-то задачу.
Требуется сделать копирование строк из одного листа (-ов) в другой лист или даже в отдельный файл по значению в ячейки копируемой строки. Нужно собрать необходимые данные в отдельном листе или файле (что проще не знаю) и чтобы наполнение этого листа (или файла) менялось в зависимости от значений в ячейке исходного (откуда будет происходить копирование) листа (файла).
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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