Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Июнь 21, 2018, 02:46:56 pm

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

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Добрый день, подскажите возможно ли в QlikView искать определенное слово в ячейке и при нахождение записывать результат в другую ячейку.
Например из ячейки А(Янтарный замок) найти слово замок и записать в ячейку Б(Замки)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1138
  • Страна: ru
  • Рейтинг: +125/-0
    • Просмотр профиля
Re: Поиск фрагментов текста в ячейке таблицы
« Ответ #1 : Июль 08, 2015, 05:29:20 pm »
Да,
напишите пример через скрипт
LOAD * INLINE [
    F1, F2, F3
    1, 2, 3
    ];

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1138
  • Страна: ru
  • Рейтинг: +125/-0
    • Просмотр профиля

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


Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Что-то так и не понял как искать слова из строки

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1138
  • Страна: ru
  • Рейтинг: +125/-0
    • Просмотр профиля
Привет, опиши поподробнее задачу, и небольшой фрагмент данных.

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Привет, опиши поподробнее задачу, и небольшой фрагмент данных.
Привет!
Задача банальна допустим в таблицы есть столбец с данными о предмете закупки
столбец А содержит строки типа:
1. Закупка баннеров
2. Приобретение баннера
3. Закупка для нужд ИП Пупкина 20 плакатов

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

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


 

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1138
  • Страна: ru
  • Рейтинг: +125/-0
    • Просмотр профиля
День добрый.
О каких размерах идет речь?
Я так понимаю, источником выступает таблица, т.к. в учетной системе эта задача бы не возникла.
Следовательно размер данных не велик, и можно просто перемножить две таблицы, с описанием операции и ключевыми словами с исключением "промахов"
Похожая задача обсуждалась на официальном форуме
Пример, чуть позже.

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


Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
На самом деле данных очень много. Анализируются данные по гос. закупкам. А это свыши миллиона файлов.

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Как только реализуем все задачи с меня полное описание приложения и загрузочный код!)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1138
  • Страна: ru
  • Рейтинг: +125/-0
    • Просмотр профиля
Доброго времени суток.
Вариантов решения задачи может быть несколько.
Вот самый простой, с условностями.
maptable:
Mapping LOAD * INLINE [
    F1,F2
    баннеров, Баннер
    баннера, Баннер
    плакатов, Плакат
];

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

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Добрый вечер, уважаемый администратор!
Подскажи в чем ошибка в коде

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

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Не уже ли ни у кого нет идей...

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1138
  • Страна: ru
  • Рейтинг: +125/-0
    • Просмотр профиля
Работает на половину категорию определяет но попутно выдает результат "Не определена"
Ну так все правильно.
Вы упустили из моего примера строку:
load * Where not Match([Б], 'NoKeyWord');SubField() разбивает фразы на слова, естесственно все слова кроме баннеров будут неопределенными.

Оффлайн PadijVD

  • Наставник
  • **
  • Сообщений: 52
  • Рейтинг: +5/-0
    • Просмотр профиля
Спасибо! Разобрался!