CHOOSE função com expressões booleanas vs. muitas funções IF aninhadas

0

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))
    )
    
por Reynola5 08.05.2017 / 11:06

0 respostas