Tenho uma situação em que um usuário fornece um conjunto de números separados por vírgula e preenche uma lista separada de custos de pesquisa. Depois que o usuário inserir os valores, uma célula separada retornará qual seria o valor total, semelhante a abaixo:
[Valores de entrada do usuário][Valor retornado do custo adicionado]
Células de pesquisa de custos
- US$ 100
- US$ 200
- US$ 300
- $ 400 etc.
Um exemplo de entrada do usuário pode ser: [1, 4] que deve retornar [$500]
No momento, estou tentando obter um número indefinido de vírgulas para ler. Pode não ter nenhuma entrada sem vírgulas que retorne $0, ou pode ter 200 valores diferentes separados por vírgulas (ou vírgula e espaço como no exemplo acima).
Meu processo de pensamento foi pegar os valores separados por vírgula e dividir cada número em uma nova célula, depois usar um VLOOKUP para obter o valor do custo e somar tudo para obter um valor de retorno. Isso tudo funcionariasePosso obter alguma fórmula para dividir um número indefinido de valores separados por vírgula. Algo como:
Isso é possível com fórmulas? O usuário não deveria ter que fazer nada além de preencher as células de pesquisa e inserir os números de que precisa.
Responder1
Esta fórmula de matriz funciona com números para CO#
a string IF, então você deve remover o --
na fórmula.
Coloque isso em D2:
=IF(LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1>=ROW($A1),INDEX(A:A,MATCH(--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW($A1)-1)*99+1,99)),$A:$A,0)),IF(ROW($A1)=LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+2,IF(COLUMN(A$1) = 1, "$",SUM(INDEX($B:$B,MATCH(N(IF(1,--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW(INDEX($AAB:$AAB,1):INDEX($AAB:$AAB,LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1))-1)*99+1,99)))),$A:$A,0)))),""))
Confirme com Ctrl-Shift-Enter em vez de Enter. Em seguida, copie uma coluna e desça o suficiente para lidar com todas as linhas necessárias.
Dependendo de onde ela está na lista, das várias instruções IF, ela dividirá a string e retornará todas ou todas as partes para o MATCH, que por sua vez retornará todas ou uma das localizações relativas ao INDEX. Em seguida, ele soma todas as partes ou retorna o valor único correto.
Ele será dimensionado automaticamente conforme necessário.