переименовать название страны в текстовом объекте

У меня есть файл qlikview, в котором есть текстовый объект, показывающий страны, выражение для текстового объекта, извлекающего страны,

=[FIN-AP-Текст страны с кодом компании]

теперь в исходных данных есть некоторые страны, которые не названы правильно, что теперь мне делать в файле qlikview, чтобы название страны было переименовано в правильное имя

Current Name                    Rename to 
Utd.Arab Emir.                  United Arab Emirates 
Bahráin                         Bahrain 
Rep.of                          Congo Republic of Congo 
Cote d'Ivoire                   Ivory Coast 
Camerún                         Cameroon 
Argelia                         Algeria 
Gabón                           Gabon 
Guinea Ecuatori                 Equatorial Guinea 
Jordania                        Jordan 
Níger                           Niger 
Omán                            Oman 
Sudáfrica                       South Africa 

person mb1987    schedule 23.10.2015    source источник


Ответы (2)


Если вы не можете выполнить перезагрузку, вложите несколько команд «Заменить» вокруг выражения.

Заменить(s, fromstring,tostring)

Возвращает строку после замены всех вхождений заданной подстроки в строке s другой подстрокой. Функция нерекурсивная и работает слева направо.

s — исходная строка.

fromstring – это строка, которая может встречаться в строке один или несколько раз.

tostring — это строка, которая заменит все вхождения fromstring в строке.

Пример: replace('abccde','cc','xyz') возвращает 'abxyzde'

person fchukoskie    schedule 23.10.2015
comment
большое спасибо, я попытался с =Replace(Replace(Replace([FIN-AP-Текст страны кода компании],'Бахрейн','Бахрейн'),'Габон','Габон'),'Иордания','Иордания' ) и похоже, что он работает, единственный, с которым у меня проблемы, - это Кот-д'Ивуар, поскольку он имеет ' в строке, интересно, есть ли какой-либо символ пропуска в qlikview - person mb1987; 23.10.2015
comment
PurgeChar удалит подстроки (или одинарные кавычки) из строк. В противном случае пусть поиск ищет этот escape-символ. community.qlik.com/blogs/qlikviewdesignblog/2015/06/ 08/ - person fchukoskie; 23.10.2015

Вы можете использовать функцию ApplyMap() в сценарии, чтобы изменить имена.

CountryMapping:
Mapping
Load * Inline [
  OldName        , NewName
  Utd.Arab Emir. , United Arab Emirates 
  Bahráin        , Bahrain 
  Rep.of Congo   , Republic of Congo 
];

А затем в части скрипта, где загружается поле страны:

ApplyMap('CountryMapping', [FIN-AP-Company Code Country Text] ) as [FIN-AP-Company Code Country Text]

Это изменит названия только для стран, указанных в таблице CountryMapping. Все остальные значения останутся как есть.

person Stefan Stoichev    schedule 23.10.2015
comment
Спасибо stefen за ответ, я не могу снова загрузить данные файла, так как люди, создавшие файл, находятся в другой стране, все, что я могу сделать в данный момент, это изменить код выражения, мне было интересно, есть ли другой способ без загрузки данные - person mb1987; 23.10.2015
comment
Вы можете скопировать текущий файл под новым именем. Удалите весь скрипт. Сделайте бинарную загрузку из исходного файла. Добавьте таблицу сопоставления. Создайте новую таблицу путем резидентной загрузки из таблицы, в которой находится поле страны, но добавьте карту применения в поле страны (не забудьте использовать функцию NoConcatenate), а затем удалите исходную таблицу. Я думаю, что это более безопасный способ сделать это и не будет путаться с выражением (я?). Я могу загрузить небольшой пример qvw, если он не ясен. - person Stefan Stoichev; 23.10.2015