Excel subtotal para células em branco

2

Tenho dados no Excel que parecem

10
15
12

3
2

5
3

Eu gostaria que ele retornasse subtotais como

10
15
12
    37
3
2
    5
5
3
    8

Existe uma maneira de conseguir isso no Excel?

    
por picakhu 11.10.2012 / 15:47

4 respostas

3

Uma alternativa que pode ser de alguma utilidade e possivelmente mais versátil (também evita que o "monstro", no caso de não ser manuseado / facilmente recuperável) seja capaz de unir operações mais familiares.

Supondo que ColumnA seja "sobressalente"; os valores estão em ColumnB ; Row1 contém um marcador e C1 tem algo nele (digamos "Sum").

Requer a identificação do valor "blocos", então filtre A:C , desmarque (Blanks) em B , digite "v" em A2 e copie até o último número da linha azul.

Selecione A1:C{last blue row number} , remova o filtro (se o agrupamento for obrigatório), subtotal com Em cada alteração em: '(Coluna A)', use a função: 'Soma', Adicione subtotal a: marque 'Soma', OK .

Exclua linhas em branco (por exemplo, filtrando ColumnA ) e, em seguida, Excluir ColumnA .

Selecione ColumnB , Encontre o que: ", B", Substitua por: ", A", clique em Replace All .

Total geral é um bônus.

    
por 11.10.2012 / 18:32
5

Eu criei esse monstro, mas funciona bem, você pode copiá-lo:

=IF(ISBLANK(A4),SUBTOTAL(9,OFFSET(B4,IFERROR(MATCH(0,$B$1:B3,-1),1)-ROW(),-1,ROW()-IFERROR(MATCH(0,$B$1:B3,-1),1),1)),"")

Este é o meu original (alemão):

=WENN(ISTLEER(A4);TEILERGEBNIS(9;BEREICH.VERSCHIEBEN(B4;WENNFEHLER(VERGLEICH(0;$B$1:B3;-1);1)-ZEILE();-1;ZEILE()-WENNFEHLER(VERGLEICH(0;$B$1:B3;-1);1);1));"")

Assim, quando a célula na Coluna A estiver vazia, faça uma subclasse, resumindo os valores de obove, até o último subsum ou 1.

Se o fórumlar não estiver claro, sinta-se à vontade para perguntar sobre detalhes específicos.

Editar

No pseudo / código explicado:

IF(ISBLANK(A4),SUBTOTAL(),"")

Se a célula da linha atual na coluna A estiver vazia, calcule o subtotal, caso contrário, não mostre nada.

SUBTOTAL(9,RANGE)

Crie o subtotal usando a função soma (9) para o RANGE fornecido

RANGE = OFFSET(B4,ROWS,COLS,HEIGHT,WIDTH)

O intervalo para o subtotal é criado pela compensação / abrangência de um intervalo, com base na célula B4.

Neste exemplo concreto de B4, isso seria como escrever:

OFFSET(B4,-3,-1,3,1)

Portanto, crie um intervalo, que é de 3 linhas acima de B4 (-3) e 1 col para a esquerda (-1), e é 3 linhas para baixo / alto e 1 col de largura.

Para calcular -3 e 3, que serão diferentes com base nas linhas entre duas células vazias na coluna A, usamos estas:

IFERROR(MATCH(0,$B$1:B3,-1),1)-ROW()

ROW()-IFERROR(MATCH(0,$B$1:B3,-1)

que são basicamente os mesmos, exceto o sinal.

MATCH(0,$B$1:B3,-1) procura por algo acima de 0 (-1 significa maior) na coluna b, da primeira célula até a anterior da atual ($ B $ 1: B3).

Como isso resultará em um erro para o primeiro subtotal, o IFERROR fornecerá 1 para corrigir isso.

Então, quando você está em B4, você procura se houver algum valor acima de B4, supondo que este seja um subtotal, e se você não encontrar nenhum, use 1 como sua linha. 1-4 = -3; 4-1 = 3 lá vai você.

    
por 11.10.2012 / 16:14
0

Uma fórmula alternativa mais curta que você pode tentar:

As linhas máximas a calcular podem ser aumentadas aumentando o "$ A $ 1000" Usando A2 como a 1ª linha:

= SE (A2="", SUM ($ A $ 1: $ A $ 1000) -SUM (A3: $ A $ 1000) -SUM ($ B $ 1: N2), "")

    
por 13.01.2017 / 09:05
0

Eu criei outra solução para o mesmo problema:

resolveu-o usando a fórmula =if(isblank(a2),H1+1,H1+0) em H2 e 1 em H1 depois usou legendas simples para obter a solução.

    
por 08.09.2017 / 08:48