(Eu originalmente perguntei isso no stackoverflow. No entanto, as fórmulas do Excel definitivamente ficam na linha entre "programação" e, um, "superutilização", então eu acredito que este cross-post é apropriado.)
Muitas das funções internas do Excel podem receber argumentos de matriz. Às vezes o resultado é documentado na ajuda e às vezes não. Então:
=IF({1,0,1}, 42, 99)
retornará {42, 99, 42}. A ajuda para 'IF' abrange argumentos de matriz. Mas:
=INDEX({2,3,5,7,11}, {2,4})
retornará {3, 7}. Isso é intuitivo, mas não consigo encontrar uma fonte da Microsoft que o documente. E:
=INDEX({1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16}, {1,3},{2,4})
retorna {2, 12}, o que não é intuitivo.
Existe alguma fonte que cubra esses usos menos comuns da matriz? Parece que tem que haver um, mas eu não estou achando isso em uma pesquisa na web porque ele requer o uso de "Excel", "function" e "array" ...
(Além disso, alguém pode marcar essa pergunta com a 'fórmula da matriz', já que não tenho o poder de criar tags?)
Estou confortável em usar fórmulas de array e usá-las o tempo todo, mas odeio ter que descobrir o que acontecerá por tentativa e erro. Essa questão em particular surgiu quando eu estava fazendo o (equivalente simplificado de):
=IF(ISNA(udf()), {1,2,3,4}, {5,6,7,8})
onde 'udf' estava retornando, por exemplo, {1,2,3}, e a fórmula estava avaliando para {5,6,7, # N / A}. Isso me surpreendeu, embora eu possa descobrir o que está acontecendo e contornar isso. É só me incomodar que eu não posso encontrar uma fonte autoritária que define tudo.
Vincular à pergunta no stackoverflow (há várias respostas e alguns comentários, mas nada que satisfaça a pergunta agora) aqui: link
EDIT: Eu fiz uma grande edição na versão stackoverflow desta questão, e incorporou parte da resposta de Neal lá. A adição é muito do lado "programação" das fórmulas do Excel, por isso não vou repetir aqui.