# Очистка данных

При загрузке данных из разных таблиц обратите внимание на то, что значения полей, обозначающие одно и то же, не всегда имеют одинаковые имена. Поскольку такая разнородность не только раздражает, но и препятствует связыванию, подобную проблему необходимо решать. Это можно сделать достаточно просто, создав таблицу сопоставления для сравнения значений полей.

## Таблицы сопоставления

Таблицы, загружаемые с помощью оператора mapping load или mapping select, обрабатываются отлично от других таблиц. Они сортируются в отдельной области памяти и используются только в качестве таблиц сопоставления в ходе выполнения скрипта. После выполнения скрипта они автоматически исключаются.

### Правила:

* Таблица сопоставления должна состоять из двух столбцов, первый из которых содержит значения, используемые для сравнения, а второй — желаемые значения для сопоставления.
* Двум столбцам следует присвоить имена, но имена сами по себе не важны. Имена столбцов не связаны с именами полей в обычных внутренних таблицах.

## Использование таблиц сопоставления

При загрузке нескольких таблиц, содержащих список стран, можно обнаружить, что одна и та же страна имеет разные названия. В этом примере США указано как US, U.S. и United States.

Чтобы избежать трех разных записей, обозначающих США в объединенной таблице, создайте таблицу, подобную показанной, и загрузите ее в качестве таблицы сопоставления.

Скрипт должен выглядеть следующим образом:

`CountryMap:` `Mapping LOAD x,y from MappingTable.txt` `(ansi, txt, delimiter is ',', embedded` `labels);` `Map Country using CountryMap;` `LOAD Country,City from CountryA.txt` `(ansi, txt, delimiter is ',', embedded labels);` `LOAD Country, City from CountryB.txt` `(ansi, txt, delimiter is ',', embedded labels);`

Оператор mapping загружает файл MappingTable.txt в качестве таблицы сопоставления с меткой CountryMap.

Оператор map разрешает сопоставление поля Country с помощью ранее загруженной таблицы сопоставления CountryMap.

Операторы LOAD загружают таблицы CountryA и CountryB. Эти таблицы, которые будут объединены вследствие того, что имеют одинаковый набор полей, включают поле Country, значения которого будут сравниваться со значениями в первом столбце таблицы сопоставления. Будут найдены значения полей US, U.S. и United States и заменены значениями из второго столбца таблицы сопоставления, т. е. USA.

Автоматическое сопоставление в цепочке событий, заканчивающейся сохранением поля в таблице программы QlikView, выполняется в последнюю очередь. Примерный порядок событий для стандартных операторов LOAD или SELECT показан ниже:

1. Расчет выражений.
2. Изменение имен полей с помощью оператора as.
3. Изменение имен полей с помощью оператора alias.
4. Квалификация имени таблицы, если применимо.
5. Сопоставление данных, если совпадает имя поля.

Таким образом, сопоставление выполняется не при каждом появлении имени поля как части выражения, а тогда, когда значение сохраняется в таблице программы QlikView под определенным именем поля.

Чтобы отключить сопоставление, используйте оператор unmap.

Для сопоставления на уровне выражения используйте функцию applymap.

Для сопоставления на уровне подстроки используйте функцию mapsubstring.

## Подробнее

* [Mapping](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptPrefixes/Mapping.htm)
* [Map](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Map.htm)
* [Unmap](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptRegularStatements/Unmap.htm)
* [Функции сопоставления](https://help.qlik.com/ru-RU/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/MappingFunctions/mapping-functions.htm)