Поиск фрагментов текста в ячейке таблицы (Qlikview)

Автор PadijVD, июля 08, 2015, 05:18:49 pm

« предыдущая - следующая »

PadijVD

июля 08, 2015, 05:18:49 pm Последнее редактирование: июля 08, 2015, 05:30:18 pm от admin
Добрый день, подскажите возможно ли в QlikView искать определенное слово в ячейке и при нахождение записывать результат в другую ячейку.
Например из ячейки А(Янтарный замок) найти слово замок и записать в ячейку Б(Замки)

admin

Да,
напишите пример через скрипт
LOAD * INLINE [
    F1, F2, F3
    1, 2, 3
    ];


PadijVD

Что-то так и не понял как искать слова из строки

admin

Привет, опиши поподробнее задачу, и небольшой фрагмент данных.

PadijVD

Цитата: admin от июля 31, 2015, 07:12:15 pm
Привет, опиши поподробнее задачу, и небольшой фрагмент данных.

Привет!
Задача банальна допустим в таблицы есть столбец с данными о предмете закупки
столбец А содержит строки типа:
1. Закупка баннеров
2. Приобретение баннера
3. Закупка для нужд ИП Пупкина 20 плакатов

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

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



admin

День добрый.
О каких размерах идет речь?
Я так понимаю, источником выступает таблица, т.к. в учетной системе эта задача бы не возникла.
Следовательно размер данных не велик, и можно просто перемножить две таблицы, с описанием операции и ключевыми словами с исключением "промахов"
Похожая задача обсуждалась на официальном форуме
Пример, чуть позже.

PadijVD

На самом деле данных очень много. Анализируются данные по гос. закупкам. А это свыши миллиона файлов.

PadijVD

Как только реализуем все задачи с меня полное описание приложения и загрузочный код!)

admin

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

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

table1:
load * Where not Match([Б], 'NoKeyWord');
LOAD *,ApplyMap('maptable',SubField([А],' '),'NoKeyWord') as [Б] INLINE [
    А
    Закупка баннеров
    Приобретение баннера
    закупка плакатов
];

PadijVD

Добрый вечер, уважаемый администратор!
Подскажи в чем ошибка в коде

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);


Работает на половину категорию определяет но попутно выдает результат "Не определена"
Выкладываю также таблицы

PadijVD


admin

Цитата: PadijVD от марта 13, 2016, 12:23:13 am
Работает на половину категорию определяет но попутно выдает результат "Не определена"

Ну так все правильно.
Вы упустили из моего примера строку:
load * Where not Match([Б], 'NoKeyWord');
SubField() разбивает фразы на слова, естесственно все слова кроме баннеров будут неопределенными.

PadijVD


Рейтинг@Mail.ru Яндекс.Метрика