Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde pessoal, estou tentando resolver um problema de loops entre campos, cheguei em uma solução com IF, comparando se uma coluna é igual (=) ou diferente (<>) as outras.
Porém existe um limitação de 100 níveis dentro do IF.
Existe alguma função que substitui o IF, para que eu consiga verificar todas as possibilidades.
A sequencia é de A pra B pra C pra D pra E pra F,
se A<> B então C não pode ser igual a A,
quer dizer que está voltando,
mas C pode ser igual B ou diferente.
Montei algo assim:
Comparando a primeira coluna com as outras, e depois a segunda com as outras e assim por diante.
IF( [Estação A] <> [Estação B] and [Estação A] = [Estação C] and [Estação A] <> [Estação D] and [Estação A] = [Estação E] and [Estação A] <> [Estação Z] , 'Invalido' ,
IF( [Estação A] = [Estação B] and [Estação A] <> [Estação C] and [Estação A] = [Estação D] and [Estação A] <> [Estação E] and [Estação A] = [Estação Z] , 'Invalido' ,
IF( [Estação A] <> [Estação B] and [Estação A] = [Estação C] and [Estação A] <> [Estação D] and [Estação A] <> [Estação E] and [Estação A] = [Estação Z] , 'Invalido' ,
IF( [Estação A] <> [Estação B] and [Estação A] <> [Estação C] and [Estação A] = [Estação D] and [Estação A] <> [Estação E] and [Estação A] = [Estação Z] , 'Invalido' ,
IF( [Estação A] = [Estação B] and [Estação A] = [Estação C] and [Estação A] <> [Estação D] and [Estação A] = [Estação E] and [Estação A] <> [Estação Z] , 'Invalido' ,
IF( [Estação A] <> [Estação B] and [Estação A] = [Estação C] and [Estação A] <> [Estação D] and [Estação A] <> [Estação E] and [Estação A] = [Estação Z] , 'Invalido' ,
IF( [Estação A] <> [Estação B] and [Estação A] = [Estação C] and [Estação A] = [Estação D] and [Estação A] <> [Estação E] and [Estação A] <> [Estação Z] , 'Invalido' ,
IF( [Estação A] <> [Estação B] and [Estação A] = [Estação C] and [Estação A] = [Estação D] and [Estação A] = [Estação E] and [Estação A] <> [Estação Z] , 'Invalido' ,
IF( [Estação A] <> [Estação B] and [Estação A] <> [Estação C] and [Estação A] = [Estação D] and [Estação A] = [Estação E] and [Estação A] <> [Estação Z] , 'Invalido' ,
IF( [Estação A] = [Estação B] and [Estação A] <> [Estação C] and [Estação A] <> [Estação D] and [Estação A] = [Estação E] and [Estação A] <> [Estação Z] , 'Invalido' ,
IF( [Estação A] = [Estação B] and [Estação A] <> [Estação C] and [Estação A] <> [Estação D] and [Estação A] <> [Estação E] and [Estação A] = [Estação Z] , 'Invalido' ,
IF( [Estação A] = [Estação B] and [Estação A] = [Estação C] and [Estação A] <> [Estação D] and [Estação A] <> [Estação E] and [Estação A] = [Estação Z] , 'Invalido' ,
//===================================================================================================================================================================================================================================================
IF( [Estação B] <> [Estação A] and [Estação B] <> [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] = [Estação E] and [Estação B] <> [Estação Z] , 'Invalido' ,
IF( [Estação B] = [Estação A] and [Estação B] <> [Estação C] and [Estação B] = [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
IF( [Estação B] <> [Estação A] and [Estação B] <> [Estação C] and [Estação B] = [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
IF( [Estação B] = [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] = [Estação E] and [Estação B] <> [Estação Z] , 'Invalido' ,
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
IF( [Estação B] <> [Estação A] and [Estação B] <> [Estação C] and [Estação B] = [Estação D] and [Estação B] = [Estação E] and [Estação B] <> [Estação Z] , 'Invalido' ,
IF( [Estação B] = [Estação A] and [Estação B] <> [Estação C] and [Estação B] <> [Estação D] and [Estação B] = [Estação E] and [Estação B] <> [Estação Z] , 'Invalido' ,
IF( [Estação B] = [Estação A] and [Estação B] <> [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
IF( [Estação B] = [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] = [Estação Z] , 'Invalido' ,
//===================================================================================================================================================================================================================================================
IF( [Estação C] <> [Estação A] and [Estação C] <> [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] = [Estação E] and [Estação C] <> [Estação Z] , 'Invalido' ,
IF( [Estação C] = [Estação A] and [Estação C] <> [Estação B] and [Estação C] = [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
IF( [Estação C] <> [Estação A] and [Estação C] <> [Estação B] and [Estação C] = [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
IF( [Estação C] = [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] = [Estação E] and [Estação C] <> [Estação Z] , 'Invalido' ,
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
IF( [Estação C] = [Estação A] and [Estação C] <> [Estação B] and [Estação C] <> [Estação D] and [Estação C] = [Estação E] and [Estação C] <> [Estação Z] , 'Invalido' ,
IF( [Estação C] = [Estação A] and [Estação C] <> [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
IF( [Estação C] = [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] = [Estação Z] , 'Invalido' ,
//===================================================================================================================================================================================================================================================
Aí o código segue comparando cada campo com o restante
Jeu,
Poderias, por exemplo para a algumas linhas especificas mostrar o que seria o resultado esperado ou pretendido?
No seu script tem um monte de validação e o resultado sempre invalido. Quando seria valido? Podes mostrar exemplo?
Bom dia Jeu,
O que poderia auxiliar nesse seu caso, seria o encadeamento das condições, ao invés de gerar cada uma de forma individual, como no exemplo abaixo^:
If(field1 = 'yes',
If(field2 = 'yes', 'match', 'match1),
If(field2 = 'yes', 'match2', 'no match')) as MatchFlag
Recomendo também, quase que obrigatoriamente, que trate esses dados na carga, pois ser deixares em um objeto tais informações, poderá gerar alguns travamentos.
Alessandro,
Essas validações são de condições em em que uma estação repete, de maneira não sequencial,
na primeira linha aparece
Estação A | Estação B | Estação C | Estação D | Estação E | Estação F |
BREAG | BREALO | BREAG | BREALO | BREAG | BREALO |
veja que BREAG aparece em A C e E isso é uma rota inválida, pois significa que partiu de BREAG foi para BREALO e voltou para BREAG.
RCEBGI | RCEAM | RCEBV | JBOPRA | IPJCIS | RCEIMB |
Agora esta rota é valida pois houve paradas em estações diferentes,
BREAG | BREAG | BREAG | JBOPRA | JBOPRA | RCEIMB |
Esta também é valida pois houve repetição de estações porém sequencial.
o que quero é evitar os loops, onde repeti estações não sequencial como na primeira linha.
Então única função que conheço que compara colunas é o IF, então comecei a compara a Estação A com as demais e depois a B com as demais e assim por diante.
abaixo está alguns IFs, que validam as rotas.
//===================================================================================================================================================================================================================================================
IF( [Estação A] = [Estação B] and [Estação A] = [Estação C] and [Estação A] = [Estação D] and [Estação A] = [Estação E] and [Estação A] <> [Estação Z] , 'Valido' , // 1
IF( [Estação A] = [Estação B] and [Estação A] <> [Estação C] and [Estação A] <> [Estação D] and [Estação A] <> [Estação E] and [Estação A] <> [Estação Z] , 'Valido' , // 3
IF( [Estação A] = [Estação B] and [Estação A] = [Estação C] and [Estação A] <> [Estação D] and [Estação A] <> [Estação E] and [Estação A] <> [Estação Z] , 'Valido' , // 4
IF( [Estação A] = [Estação B] and [Estação A] = [Estação C] and [Estação A] = [Estação D] and [Estação A] <> [Estação E] and [Estação A] <> [Estação Z] , 'Valido' , // 5
//===================================================================================================================================================================================================================================================
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] = [Estação D] and [Estação B] <> [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 6
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] = [Estação D] and [Estação B] = [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 7
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] = [Estação D] and [Estação B] = [Estação E] and [Estação B] = [Estação Z] , 'Valido' , // 8
IF( [Estação B] = [Estação A] and [Estação B] = [Estação C] and [Estação B] = [Estação D] and [Estação B] = [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 9
IF( [Estação B] = [Estação A] and [Estação B] <> [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 11
IF( [Estação B] <> [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 12
IF( [Estação B] = [Estação A] and [Estação B] = [Estação C] and [Estação B] <> [Estação D] and [Estação B] <> [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 13
IF( [Estação B] = [Estação A] and [Estação B] = [Estação C] and [Estação B] = [Estação D] and [Estação B] <> [Estação E] and [Estação B] <> [Estação Z] , 'Valido' , // 14
//===================================================================================================================================================================================================================================================
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] = [Estação D] and [Estação C] <> [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 15
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] = [Estação D] and [Estação C] = [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 16
IF( [Estação C] <> [Estação A] and [Estação C] <> [Estação B] and [Estação C] = [Estação D] and [Estação C] = [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 17
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] = [Estação D] and [Estação C] = [Estação E] and [Estação C] = [Estação Z] , 'Valido' , // 18
IF( [Estação C] = [Estação A] and [Estação C] = [Estação B] and [Estação C] = [Estação D] and [Estação C] = [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 19
IF( [Estação C] <> [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 21
IF( [Estação C] <> [Estação A] and [Estação C] <> [Estação B] and [Estação C] = [Estação D] and [Estação C] <> [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 22
IF( [Estação C] = [Estação A] and [Estação C] = [Estação B] and [Estação C] <> [Estação D] and [Estação C] <> [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 23
IF( [Estação C] = [Estação A] and [Estação C] = [Estação B] and [Estação C] = [Estação D] and [Estação C] <> [Estação E] and [Estação C] <> [Estação Z] , 'Valido' , // 24
IF( [Estação C] <> [Estação A] and [Estação C] <> [Estação B] and [Estação C] = [Estação D] and [Estação C] = [Estação E] and [Estação C] = [Estação Z] , 'Valido' , // 25
//===================================================================================================================================================================================================================================================
IF( [Estação D] <> [Estação A] and [Estação D] = [Estação B] and [Estação D] = [Estação C] and [Estação D] <> [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 26
IF( [Estação D] <> [Estação A] and [Estação D] = [Estação B] and [Estação D] = [Estação C] and [Estação D] = [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 27
IF( [Estação D] <> [Estação A] and [Estação D] <> [Estação B] and [Estação D] = [Estação C] and [Estação D] = [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 28
IF( [Estação D] <> [Estação A] and [Estação D] = [Estação B] and [Estação D] = [Estação C] and [Estação D] = [Estação E] and [Estação D] = [Estação Z] , 'Valido' , // 29
IF( [Estação D] = [Estação A] and [Estação D] = [Estação B] and [Estação D] = [Estação C] and [Estação D] = [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 30
IF( [Estação D] <> [Estação A] and [Estação D] <> [Estação B] and [Estação D] = [Estação C] and [Estação D] <> [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 32
IF( [Estação D] <> [Estação A] and [Estação D] <> [Estação B] and [Estação D] <> [Estação C] and [Estação D] = [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 33
IF( [Estação D] = [Estação A] and [Estação D] = [Estação B] and [Estação D] = [Estação C] and [Estação D] <> [Estação E] and [Estação D] <> [Estação Z] , 'Valido' , // 34
IF( [Estação D] <> [Estação A] and [Estação D] <> [Estação B] and [Estação D] = [Estação C] and [Estação D] = [Estação E] and [Estação D] = [Estação Z] , 'Valido' , // 35
IF( [Estação D] <> [Estação A] and [Estação D] <> [Estação B] and [Estação D] <> [Estação C] and [Estação D] = [Estação E] and [Estação D] = [Estação Z] , 'Valido' , // 36
//===================================================================================================================================================================================================================================================
IF( [Estação E] <> [Estação A] and [Estação E] = [Estação B] and [Estação E] = [Estação C] and [Estação E] = [Estação D] and [Estação E] <> [Estação Z] , 'Valido' , // 37
IF( [Estação E] <> [Estação A] and [Estação E] <> [Estação B] and [Estação E] = [Estação C] and [Estação E] = [Estação D] and [Estação E] <> [Estação Z] , 'Valido' , // 38
IF( [Estação E] <> [Estação A] and [Estação E] = [Estação B] and [Estação E] = [Estação C] and [Estação E] = [Estação D] and [Estação E] = [Estação Z] , 'Valido' , // 39
IF( [Estação E] = [Estação A] and [Estação E] = [Estação B] and [Estação E] = [Estação C] and [Estação E] = [Estação D] and [Estação E] <> [Estação Z] , 'Valido' , // 40
IF( [Estação E] <> [Estação A] and [Estação E] <> [Estação B] and [Estação E] <> [Estação C] and [Estação E] = [Estação D] and [Estação E] <> [Estação Z] , 'Valido' , // 42
IF( [Estação E] <> [Estação A] and [Estação E] <> [Estação B] and [Estação E] <> [Estação C] and [Estação E] <> [Estação D] and [Estação E] = [Estação Z] , 'Valido' , // 43
IF( [Estação E] <> [Estação A] and [Estação E] <> [Estação B] and [Estação E] = [Estação C] and [Estação E] = [Estação D] and [Estação E] = [Estação Z] , 'Valido' , // 44
IF( [Estação E] <> [Estação A] and [Estação E] <> [Estação B] and [Estação E] <> [Estação C] and [Estação E] = [Estação D] and [Estação E] = [Estação Z] , 'Valido' , // 45
//===================================================================================================================================================================================================================================================