Dónde colocar banderas en Qlik Sentido guión de carga de datos?

votos
0

El objetivo final y Contexto

Hola todos ustedes, gracias por leer! El producto final en mi hoja de Qlik debe tener una tabla que muestra una columna % cubierto. Lo que esto es es el porcentaje de artículos en un departamento que el inventario es mayor o igual que el requisito.

He aquí un ejemplo de lo que la mesa final debe ser similar (El campo cubierto por ciento es un campo calculado:

| Department | Count of Products | Percent Covered |
|------------|-------------------|-----------------|
| Bio        | 34858             | 89.40%          |
| Mech       | 50119             | 92.05%          |
| Admin      | 560               | 98.22%          |

Para ilustrar esto mejor con suerte, esto es lo que se vería como si tuviera que aplicar el cálculo a una tabla de números de productos:

| Product Number | Inventory | Requirement | Percent Covered |
|----------------|-----------|-------------|-----------------|
| 444391         | 112       | 113         | 99.11%          |
| 444569         | 86        | 350         | 24.57%          |
| 443551         | 12        | 11          | 109.09%         |

El problema

A pesar de que trabaja en las pruebas con pequeñas cantidades de datos , cuando está cargado con los datos reales es demasiado para Qlik de manejar en las expresiones de los propios gráficos y arroja errores de tiempo de espera:

Count({<ProductNumber = {=[Inventory] >= [Requirement]}>} ProductNumber) / Count(ProductNumber)

Para evitar esto, he estado tratando de hacer el trabajo anterior en el guión de carga de datos. Con la ayuda de los documentos Qlik y Foro de la comunidad, esto es al parecer algo debería funcionar: En el guión cargador de datos: If([Inventory] >= [Requirement], 1, 0) as Flag En la expresión:Count({<Flag = {'1'}>} ProductNumber)/Count(ProductNumber)

El problema es, no importa dónde pongo esto en el guión, que arroja errores.

Lo que he tratado

He intentado todas estas combinaciones con y sin punto y coma.

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

Error: Los datos no se ha cargado favor, corrija el error y tratar de cargar de nuevo.

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

Error: Los datos no se ha cargado favor, corrija el error y tratar de cargar de nuevo.

[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

Error: símbolo inesperado: '',`


Cualquier ayuda sería muy apreciada! ¡Gracias!

Publicado el 09/10/2019 a las 18:55
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Sobre la base de lo que han intentado hay dos maneras:

Dentro de carga

se puede crear el campo de bandera dentro de la declaración propia carga

[MyAwesomeSheet]:
LOAD
    [ProductNumber],
    [Requirement],
    [Inventory],
    [Department],
    If([Inventory] >= [Requirement], 1, 0) as Flag
 FROM [lib://Desktop/fake-example-data.xlsx]
(ooxml, embedded labels, table is [MyAwesomeTable]);

carga precedente

Otra técnica utiliza la carga precedente

Usted puede tener un muchas cargas anteriores como desee. Cada carga se está cargando los datos de las cargas anteriores por debajo de ella

[MyAwesomeSheet]:
Load
    *,
    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]);
Respondida el 09/10/2019 a las 20:56
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more