A instrução Excel IF faz uma planilha de cálculo mais rápida do que usando IFERROR?

1

Meu cenário é que eu tenho uma folha de estilo "Painel" que procura dados de uma tabela grande com base na célula na coluna B, que está sempre à esquerda. A célula na coluna B contém uma fórmula de matriz INDEX, MATCH, IF, para extrair nomes exclusivos da tabela em que o "Grupo" está selecionado. Essa lista é preenchida e é preenchida com base em uma seleção suspensa das diferentes opções "Grupo". Pode retornar até 20 nomes com base no "Grupo".

Eu tenho 17 células com fórmulas à direita que podem retornar um erro se os dados não estiverem lá. Então eu os precedi com uma declaração IFERROR() . Minha pergunta é se eu precedê-los com uma instrução IF() aceleraria os cálculos porque a instrução IF leria se Verdadeiro, em seguida, forneceria branco, se falso, então calcularia a fórmula.

Logicamente, parece que sim para mim, mas eu queria saber se algum de vocês se sente da mesma maneira. Obrigado. Talvez isso seja mais para uma meta-discussão.

p.s. Aqui está uma das 9 fórmulas mais complexas que estou usando.

=IFERROR((SUMIFS(INDIRECT("tblData["&N$7&" Top Box Num]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5))/(SUMIFS(INDIRECT("tblData["&N$7&" Den]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5)),"")

A fórmula acima é mais lenta que a fórmula abaixo quando True?

=IF(OR($C$16=0,C16=""),"",(SUMIFS(INDIRECT("tblData["&N$7&" Top Box Num]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5))/(SUMIFS(INDIRECT("tblData["&N$7&" Den]"),INDIRECT("tblData["&$B$7&"]"),$B$16,INDIRECT("tblData[Date]"),">="&$C$5,INDIRECT("tblData[Date]"),"<="&$D$5)))

As fórmulas essencialmente somam os valores do numerador e dividem isso pelos valores do denominador, onde as condições são verdadeiras de uma tabela de 20.000 linhas e retornam uma pontuação percentual.

    
por Scheballs 11.06.2013 / 14:29

1 resposta

2

= Se 'curto-circuito', mas para acelerar o desempenho, eu sugeriria link . Inclui uma macro para o sincronismo. = INDIRETO parece valer a pena.

    
por 11.06.2013 / 15:32