Embora eu não tenha sido capaz de pensar em uma única solução de fórmula (talvez outra pessoa o faça!), eu inventei algo que ocupa muito menos espaço na planilha do que outra matriz de 150 x 360.
A idéia básica é calcular os totais acumulados em cada linha para uma coluna de dados e depois usá-los em uma tabela de dados ("análise de hipóteses") para gerar as contagens de todas as colunas.
O ponto de partida é a coluna de cálculos das linhas em uma única coluna de dados.
Como mostrado na captura de tela abaixo, eu configurei uma planilha com 10 colunas de dados.
Coluna auxiliar
À direita dos dados, configurei a coluna auxiliar L.
A célula L1 contém o COUNTIF
das linhas nessa coluna que têm uma soma maior que zero.
Para as somas de linha, em vez de uma simples soma das colunas em cada linha (novamente, apenas para a coluna A), eu uso uma soma do intervalo retornado pela função OFFSET
. Esta função tem a forma
OFFSET(reference cell, number of rows to offset, number of columns to offset,
height of range to return, width of range to return)
A célula L3 tem a primeira das expressões SUM(OFFSET(...))
. Calcula a soma da linha para o intervalo que é 0 linhas abaixo da célula A2 e 0 colunas para a direita, com uma altura de 1 linha e uma largura igual ao valor na célula L2. Nesse caso, L2 tem o valor de 1.
Esta fórmula é copiada para baixo por 360 linhas, em cada caso, calculando a soma de um intervalo com 1 linha de altura e com uma largura determinada pelo valor na célula L2.
Por exemplo, se o valor em L2 fosse alterado para 2, as fórmulas na coluna calculariam as somas em linha dos valores nas colunas A & B para cada uma das 360 linhas. E a célula L1 mostraria o número de linhas no intervalo A2: B361 com uma soma maior que 0.
Tabeladedados
AfuncionalidadedatabeladedadosdoExcelpermitedeterminarrapidamenteoimpactoemumcálculodevariaçãodovalordeuma(ouduas)dasentradasparaessecálculo.EleéconfiguradopormeiodobotãoWhat-IfAnalysis
naseçãoDataTools
daguiaData
nafaixadeopções.
Afiguraemanexomostraaconfiguraçãodatabeladedados.
AtabeladedadosserácriadanointervaloR1:S10.Notopodatabela,nacélulaS1éacéluladeresultadoparaaqualasentradasserãovariadas.Nessecaso,acélularesultantecontémafórmula=L1
,queéapenasumareferênciaàfórmulaCOUNTIF
notopodacolunaauxiliarL.
Eupré-inseriosvalores"what-if" nas células R2: R10. Os valores mostrados - 1, 2, ..., 9 - representam as larguras dos intervalos que o OFFSET retornará. E a "célula de entrada da coluna" é a célula L1
, a célula que determina a largura das linhas que são somadas na coluna auxiliar.
Em suma, nós nos alimentamos nas larguras 1-9 (equivalente às colunas "A", "A: B", "A: C", etc.) e a tabela de dados calcula o número de linhas que possuem soma maior que 0 para cada um desses períodos de coluna.
Aúltimafotomostraosresultadosfinais.Atabeladedadoscalculouascontagensdelinhaparacadacolunadosdadosdeentrada,ouseja,ascontagensdassomasemlinha(dascolunasanteriores)quesãomaioresque0.EssascontagensforamretornadasnascélulasS2:S10dosdadosmesa.EutransferiascontagensparaaprimeiralinhadosdadosoriginaisusandoafunçãoTRANSPOSE
.
A planilha de exemplo com todos os cálculos está disponível aqui .