Essa fórmula de escolha pode ser escrita como
=Vlookup([@Status],$J$2:$L$17,3,False)
Não tenho certeza se entendi qual é o restante do problema.
Recebo status semanais para nossos pedidos de serviço abertos como um arquivo CSV. Isso inclui códigos de status de três letras associados a diferentes etapas no processo de conclusão.
Eu preciso colocar as definições de linguagem simples no lugar dos códigos de status.
Minha planilha faz isso automaticamente, mas a planilha que sinto como estou fazendo agora é ineficiente. A planilha que faz isso, por si só, tem mais de 75 MB e aborrece tudo.
Como minha planilha atual funciona é uma grade de 16 colunas com os códigos de status do CSV em [@ [SO Codes] e uma lista estática dos códigos na Linha 1. Cada outra linha é de 16 pixels com:
=IF([@[SO Codes]]=Table3[[#Headers],[AA]],1,0)
=IF([@[SO Codes]]=Table3[[#Headers],[CA]],2,0)
e =IF([@[SO Codes]]=Table3[[#Headers],[CAN]],3,0)
etc
Para cada código de status é atribuído um número de 1 a 16 que aparece na grade 16x [o número de ordens de serviço abertas].
A última coluna de é:
=SUBTOTAL(9,E2:T2)
=SUBTOTAL(9,E3:T3)
e =SUBTOTAL(9,E4:T4)
etc
Por fim, isso alimenta meu rastreador com linhas semelhantes a:
=CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3),IF([@Status]=J4,L4),IF([@Status]=J5,L5),IF([@Status]=J6,L6),IF([@Status]=J7,L7),IF([@Status]=J8,L8),IF([@Status]=J9,L9),IF([@Status]=J10,L10),IF([@Status]=J11,L11),IF([@Status]=J12,L12),IF([@Status]=J13,L13),IF([@Status]=J14,L14),IF([@Status]=J15,L15),IF([@Status]=J16,L16),IF([@Status]=J17,L17))
Onde a coluna L é a lista de definições de código de texto simples, e J3 se alimenta dos subtotais da calculadora de código de status.
Eu não posso ajudar que tem que haver uma maneira mais elegante e eficiente de fazer isso. Alguma percepção? Eu tentei usar a função = CHOOSE diretamente nos códigos do CSV, mas só funciona em valores numéricos. Eu incluí fotos de cada etapa, porque eu sinto que eu expliquei isso mal.
Tracker
Essa fórmula de escolha pode ser escrita como
=Vlookup([@Status],$J$2:$L$17,3,False)
Não tenho certeza se entendi qual é o restante do problema.
Em vez da tabela longa, você pode usar um único MATCH()
:
=MATCH([@[SO CODES]],TableHelper[code list],0)
Aqui não sei se entendi corretamente sua fórmula original.
=CHOOSE([@Status],IF([@Status]=J2,L2),IF([@Status]=J3,L3)...
- O que acontece se [@Status]<>J2
? Ou esse é um cenário irreal? Se sim, use apenas uma função INDEX()
simples:
=INDEX($L$2:$L$17,[@Status])
Caso contrário, especifique o que sua fórmula deve fazer.
Novamente, se você entender bem o seu problema: você nem precisa das folhas duplas, apenas uma.
I tried using the =CHOOSE function directly on the codes from the CSV, but it only works on numeric values
De fato, você pode alimentar os códigos diretamente, apenas use VLOOKUP()
, algo assim:
=VLOOKUP(<code>,$J:$K,2,false)
Onde
<code>
é um código para o qual você deseja obter a descrição $J:$K
são colunas de código e descrição de acordo com sua captura de tela