RESUMO
Alguém pode explicar por que o Excel - versões atuais no Mac e no Windows - às vezes se recusa a aceitar, na fórmula de uma célula, isto:
CHOOSECOLS(SomeArray,ColNum)
mas aceita isso:
INDEX(SomeArray,0,ColNum)
Dois exemplos específicos são quando esses formulários são usados em uma função SUMIF() ou COUNTIF(). E quando digo que o Excel se recusa a aceitar o primeiro, quero dizer que nem consigo aceitá-lo como uma fórmula sintaticamente correta. Observo que versões não condicionais dessas funções não mostram o problema, nem funções como MAX(), MIN(), AVERAGE(), etc.
DETALHES
Suponha que eu tenha um array em B5:C10 (suponha que seja dinâmico, então posso me referir a ele como B5# nos exemplos a seguir; mas o problema também existe mesmo com intervalos não dinâmicos), e quero somar todos os itens maior que 0 na coluna 2 (ou seja, em C5:C10). Embora o Excel aceite o seguinte:
=SUMIF(INDEX(B5#,0,2),">0")
recusa-se a aceitar:
=SUMIF(CHOOSECOLS(B5#,2),">0")
No entanto, se eu primeiro extrair a coluna desejada em uma matriz auxiliar enraizada em C16 (digamos), da seguinte maneira:
=CHOOSECOLS(B5#,2)
então o seguinte é aceito como fórmula correta (e fornece o resultado correto):
=SUMIF(C16#,">0")
Tenho uma planilha Excel que mostra isso em ação, mas não tenho certeza da melhor maneira de anexá-la. Se for útil e alguém puder explicar como posso anexar um arquivo .xlsx, eu o fornecerei. Enquanto isso, aqui está uma captura de tela: