Filtrar os dados usando a Declaração Fi no tabuleiro
tenho uma fonte de dados no quadro que parece algo semelhante a isto:
SKU Backup_Storage
A 5
A 1
B 2
B 3
C 1
D 0
gostaria de criar um campo calculado no tabuleiro que realize um cálculo se a coluna do SKU contiver o texto 'A' ou 'D' , e para efectuar um cálculo médio se a coluna do SKU contiver as letras ' C ' ou ' B '
Isto é o que estou a fazer.IF CONTAINS(ATTR([SKU]),'A') or
CONTAINS(ATTR([SKU]),'D')
THEN SUM([Backup_Storage])
ELSEIF CONTAINS(ATTR([SKU]),'B') or
CONTAINS(ATTR([SKU]),'C')
THEN AVG([Backup_Storage])
END
UPDATE-o resultado desejado seria:
SKU BACKUP
A, D 6 (This is the SUM OF A and D)
B, C 2 (This is the AVG of B and C)
cálculo acima mostra como válido, no entanto, eu vejo NULLS na minha tabela de fonte de dados. Qualquer sugestão é apreciada.
nomeei o campo calculado: SKU_FILTER_ calculation
2 answers
Basicamente, IF THEN ELSE
a condição funciona quando um teste é verdadeiro/falso. A sua condição especificada não é um caso de uso adequado de IF THEN ELSE
porque o SKUs pode tomar todos os valores possíveis. Vê assim..
Os seus Dados
SKU Backup_Storage
A 5
A 1
B 2
B 3
C 1
D 0
Vamos nomear o seu campo de calc como CF, então o CF irá tomar o valor A
na primeira linha e irá sair SUM(5)
= 5
. Para a segunda linha irá sair sum(1)
= 1
, para a terceira e para a frente linhas irá sair como avg(2) = 2
, avg(3) = 3
, avg(1)
e sum(0)
respectivamente. todos estes valores são iguais apenas a [Backup_storage]
e tenho a certeza que isto não estás a tentar obter.
Se, em vez disso, estiver a tentar obter a soma(51,0) + avg(2,3,1) (obviamente, assumi +
aqui) que é igual a 8
, ou seja, um único valor para o conjunto de dados completo, por favor prossiga com este campo calculado..
SUM(IF CONTAINS([SKU], 'A') OR CONTAINS([SKU], 'D')
THEN [Backup storage] END)
+
AVG(IF CONTAINS([SKU], 'B') OR CONTAINS([SKU], 'C')
THEN [Backup storage] END)
Isto irá devolver um 8
quando colocado à vista
+
tem de mudar isso. em CF
de acordo com
Step-1 criar grupos no campo SKU. Nomeei este grupo como SKUG
Step-2 crie um campo calculado CF
como
SUM(ZN(IF CONTAINS([SKU], 'A') OR CONTAINS([SKU], 'D')
THEN [Backup storage] END))
+
AVG(ZN(IF CONTAINS([SKU], 'B') OR CONTAINS([SKU], 'C')
THEN [Backup storage] END))
Step-3 obtenha a vista desejada
Boa Sorte.