Eu tenho um arquivo mostrando produtos em uma coluna e o volume de cada produto em outra.
Estou tentando criar uma lista de agrupamentos de produtos ( CONCATENATE
) com base no volume cumulativo dos produtos. Nos meus dados de origem, cada produto é mostrado na coluna B e tem um volume na coluna E.
A lista que desejo criar começa na linha 385 e eu numerei cada item na coluna C. Assim, o primeiro item da lista é rotulado como não. “1” na célula C385.
O resultado que estou procurando é que, uma vez que o valor acumulado em minha coluna de dados B exceda o número da lista em meus resultados, posso CONCATENATE
os nomes de um conjunto desses produtos da coluna B dos meus dados de origem.
Por exemplo, se o valor cumulativo da minha lista na célula E286 for 4, as primeiras 4 linhas da minha lista de resultados deverão ser preenchidas. Eu tenho uma fórmula de trabalho para conseguir isso da seguinte forma:
=(IF(ROUND(SUM($E$283),0)>=C385,(CONCATENATE($B$281,$B$282,$B$283))," ")&(IF(ROUND(SUM($E$283:$E$284),0)>=C385,(CONCATENATE($B$281,$B$282,$B$284))," ")&IF(ROUND(SUM($E$283:$E$285),0)>=C385,(CONCATENATE($B$281,$B$282,$B$285))," ")&IF(ROUND(SUM($E$283:$E$286),0)>=C385,(CONCATENATE($B$281,$B$282,$B$286))," ")))))
Formatado da seguinte forma para mostrar o aninhamento:
=(
IF(
ROUND(SUM($E$283),0)>=C385
,(CONCATENATE($B$281,$B$282,$B$283))
," ")
&(
IF(
ROUND(SUM($E$283:$E$284),0)>=C385
,(CONCATENATE($B$281,$B$282,$B$284))
," ")
&IF(
ROUND(SUM($E$283:$E$285),0)>=C385
,(CONCATENATE($B$281,$B$282,$B$285))," ")
&IF(
ROUND(SUM($E$283:$E$286),0)>=C385
,(CONCATENATE($B$281,$B$282,$B$286))
," ")
)
)
))
No entanto, como as listas são bastante longas, isso exigiria muitas funções IF aninhadas. Eu ouvi falar sobre o uso de funções CHOOSE com expressões booleanas para alcançar tais resultados. Tentei converter minha fórmula para essa opção abaixo, mas receio não entender totalmente essa fórmula, especialmente o componente "Erro". Alguém pode apontar onde eu estou indo errado com o abaixo, ou melhor ainda sugerir uma solução alternativa para alcançar meu objetivo?
=CHOOSE(1+(ROUND(SUM($E$283),0)>=C385*1+(ROUND(SUM($E$283:$E$284),0)>=C385*2+(ROUND(SUM($E$283:$E$285),0)>=C385*3+(ROUND(SUM($E$283:$E$286),0)>=C385*4,"Error",(CONCATENATE($B$281,$B$282,$B$283)),(CONCATENATE($B$281,$B$282,$B$284)),(CONCATENATE($B$281,$B$282,$B$285)),(CONCATENATE($B$281,$B$282,$B$286)))
Um formato alternativo mostrando o aninhamento seria:
=CHOOSE(
1
+(ROUND(SUM($E$283),0)>=C385*1
+(ROUND(SUM($E$283:$E$284),0)>=C385*2
+(ROUND(SUM($E$283:$E$285),0)>=C385*3
+
(
ROUND(SUM($E$283:$E$286),0)>=C385*4
,"Error"
,(CONCATENATE($B$281,$B$282,$B$283))
,(CONCATENATE($B$281,$B$282,$B$284))
,(CONCATENATE($B$281,$B$282,$B$285))
,(CONCATENATE($B$281,$B$282,$B$286))
)
Tags microsoft-excel