Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: PadijVD от 08 июля 2015, 05:18:49

Название: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 08 июля 2015, 05:18:49
Добрый день, подскажите возможно ли в QlikView искать определенное слово в ячейке и при нахождение записывать результат в другую ячейку.
Например из ячейки А(Янтарный замок) найти слово замок и записать в ячейку Б(Замки)
Название: Re: Поиск фрагментов текста в ячейке таблицы
Отправлено: admin от 08 июля 2015, 05:29:20
Да,
напишите пример через скрипт
LOAD * INLINE [
    F1, F2, F3
    1, 2, 3
    ];
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: admin от 08 июля 2015, 06:53:57
Похожая тема (https://community.qlik.com/thread/165985?sr=stream&ru=195118)
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 31 июля 2015, 06:39:52
Что-то так и не понял как искать слова из строки
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: admin от 31 июля 2015, 07:12:15
Привет, опиши поподробнее задачу, и небольшой фрагмент данных.
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 02 августа 2015, 08:00:43
Цитата: admin от 31 июля  2015, 07:12:15  
Привет, опиши поподробнее задачу, и небольшой фрагмент данных.
Привет!
Задача банальна допустим в таблицы есть столбец с данными о предмете закупки
столбец А содержит строки типа:
1. Закупка баннеров
2. Приобретение баннера
3. Закупка для нужд ИП Пупкина 20 плакатов

Необходимо в столбец Б записать:
1. Баннеры
2. Баннеры
3. Плакаты

и по возможности сделать так чтобы категории товаров брались из сторонней таблицы, так как групп товаров много.


Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: admin от 02 августа 2015, 11:31:54
День добрый.
О каких размерах идет речь?
Я так понимаю, источником выступает таблица, т.к. в учетной системе эта задача бы не возникла.
Следовательно размер данных не велик, и можно просто перемножить две таблицы, с описанием операции и ключевыми словами с исключением "промахов"
Похожая задача обсуждалась на официальном форуме (https://community.qlik.com/thread/165985?sr=stream&ru=195118)
Пример, чуть позже.
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 02 августа 2015, 01:57:45
На самом деле данных очень много. Анализируются данные по гос. закупкам. А это свыши миллиона файлов.
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 02 августа 2015, 01:59:33
Как только реализуем все задачи с меня полное описание приложения и загрузочный код!)
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: admin от 02 августа 2015, 09:56:10
Доброго времени суток.
Вариантов решения задачи может быть несколько.
Вот самый простой, с условностями.

maptable:
Mapping LOAD * INLINE [
    F1,F2
    баннеров, Баннер
    баннера, Баннер
    плакатов, Плакат
];

table1:
load * Where not Match([Б], 'NoKeyWord');
LOAD *,ApplyMap('maptable',SubField([А],' '),'NoKeyWord') as [Б] INLINE [
    А
    Закупка баннеров
    Приобретение баннера
    закупка плакатов
];
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 13 марта 2016, 12:23:13
Добрый вечер, уважаемый администратор!
Подскажи в чем ошибка в коде

maptable:
Mapping LOAD
     Позиция,
     Категория

FROM
[...\*.xlsx]
(ooxml, embedded labels, table is [Список категорий]);


LOAD A,
ApplyMap('maptable',SubField([A],' '),'Не определена')
as [Категория]
FROM
[...\2.xlsx]
(ooxml, embedded labels, table is Лист1);


Работает на половину категорию определяет но попутно выдает результат "Не определена"
Выкладываю также таблицы
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 16 марта 2016, 06:57:59
Не уже ли ни у кого нет идей...
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: admin от 16 марта 2016, 09:02:19
Цитата: PadijVD от 13 марта  2016, 12:23:13  
Работает на половину категорию определяет но попутно выдает результат "Не определена"
Ну так все правильно.
Вы упустили из моего примера строку:
load * Where not Match([Б], 'NoKeyWord');
SubField() разбивает фразы на слова, естесственно все слова кроме баннеров будут неопределенными.
Название: Re: Поиск фрагментов текста в ячейке таблицы (Qlikview)
Отправлено: PadijVD от 19 марта 2016, 03:46:56
Спасибо! Разобрался!