Конечная цель и контекст
Привет всем, спасибо за чтение! Конечный продукт на моем листе Qlik должен иметь таблицу, в которой отображается столбец «% Covered». Это то, каков процент предметов в отделе, инвентарь которых больше или равен требованию.
Вот пример того, как должна выглядеть конечная таблица (Поле Percent Covered - вычисляемое поле:
| Department | Count of Products | Percent Covered |
|------------|-------------------|-----------------|
| Bio | 34858 | 89.40% |
| Mech | 50119 | 92.05% |
| Admin | 560 | 98.22% |
Чтобы, надеюсь, лучше проиллюстрировать это, выглядело бы это так, если бы вы применили расчет к таблице номеров продуктов:
| Product Number | Inventory | Requirement | Percent Covered |
|----------------|-----------|-------------|-----------------|
| 444391 | 112 | 113 | 99.11% |
| 444569 | 86 | 350 | 24.57% |
| 443551 | 12 | 11 | 109.09% |
Проблема
Хотя работает при тестировании с небольшими объемами данных , при загрузке с реальными данными Qlik слишком много обрабатывает в выражениях на самих диаграммах и выдает ошибки тайм-аута:
Count({<ProductNumber = {"=[Inventory] >= [Requirement]"}>} ProductNumber) / Count(ProductNumber)
Чтобы обойти это, я пытался выполнить вышеуказанную работу в скрипте загрузки данных. С помощью документации и сообщества Qlik это, по-видимому, должно сработать:В скрипте загрузчика данных: If([Inventory] >= [Requirement], 1, 0) as Flag
В выражении: Count({<Flag = {'1'}>} ProductNumber)/Count(ProductNumber)
Проблема в том, что независимо от того, где я помещаю это в скрипт, выдает ошибкуs.
Что я пробовал
Я пробовал все эти комбинации с точкой с запятой и без нее.
[MyAwesomeSheet]:
If([Inventory] >= [Requirement], 1, 0) as Flag
LOAD
[ProductNumber],
[Requirement],
[Inventory],
[Department],
FROM [lib://Desktop/fake-example-data.xlsx]
(ooxml, embedded labels, table is [MyAwesomeTable]);
Ошибка: "Данныене был загруженПожалуйста, исправьте ошибку и попробуйте загрузить снова. "
[MyAwesomeSheet]:
LOAD
[ProductNumber],
[Requirement],
[Inventory],
[Department],
FROM [lib://Desktop/fake-example-data.xlsx]
If([Inventory] >= [Requirement], 1, 0) as Flag
(ooxml, embedded labels, table is [MyAwesomeTable]);
Ошибка:" Данные не были загружены. Пожалуйста, исправьте ошибку и попробуйте загрузить снова. "
[MyAwesomeSheet]:
LOAD
[ProductNumber],
[Requirement],
[Inventory],
[Department],
FROM [lib://Desktop/fake-example-data.xlsx]
(ooxml, embedded labels, table is [MyAwesomeTable]);
If([Inventory] >= [Requirement], 1, 0) as Flag
Ошибка:" Неожиданный токен: ',' `
Любая помощь будетс благодарностью! Спасибо!