Обзор
Этот расширенный сценарий описывает, как можно эффективно использовать комбинацию функций pick и match для сопоставления текстовых строк. В терминах программирования такой сценарий выполняет ту же функцию, что и оператор Case. Сценарий описывает эту функциональность, сопоставляя названия стран с региональными эквивалентами; по умолчанию возвращается значение Region для всех строк Country, у которых ранее не было сопоставлений.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
Скрипт загрузки
Countries:
LOAD * INLINE [
Country
"USA"
"Canada"
"Germany"
"Japan"
"Australia"
"South Africa"
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
Создайте следующую меру:
-
=Pick(1+match(Country,'USA','Canada','Germany','Japan','Australia'), 'Unmapped', 'North America', 'North America', 'Europe', 'Asia', 'Australia')
Функция match вернет индекс совпадений с представленным списком альтернативных вариантов, разделенных запятыми, начиная с 1 = ‘USA’, 2 = ‘Canada’ и так далее. Если совпадений не найдено, возвращается ноль. Затем этот результат увеличивается на 1 и передается в функцию pick, а затем 1 = default value, если совпадений не найдено, 2 = ‘USA’, 3 = ‘Canada’ и так далее.
Комбинируя вызовы функций Match и Pick, затем можно преобразовать совпадающие имена Country в соответствующие эквивалентные имена Region. В случае отсутствия сопоставления со значением Country будет возвращено значение по умолчанию Region, Unmapped.
Результирующая таблица
| Country | Pick(1+match(Country,'USA','Canada','Germany','Japan','Australia'), 'Unmapped', 'North America', 'North America', 'Europe', 'Asia', 'Australia') |
|---|
| Australia | Australia |
| Canada | North America |
| Germany | Europe |
| Japan | Asia |
| South Africa | Unmapped |
| USA | North America |