Uma família de softwares de planilhas da Microsoft com ferramentas para analisar, criar gráficos e comunicar dados.
Olá Ricardo,
Estudei um pouco mais seu problema. A princípio há algumas pedras grandes no caminho, mas falemos delas depois.
A primeira questão nós já resolvemos, correto?
A) Considerando os dados em A2:A19:
=SOMARPRODUTO(--((A3:A20-A2:A19)>1)) + 1
B) Fiz uma tabela que mostra o último número antes de uma "quebra" e ao lado, quantos números houveram nesta sequência. Na imagem deve ficar claro.
Nota: Gerei números aleatórios e podendo ou não ter duplas, trios, ...
Quanto as funções:
Em D2:
=SEERRO(AGREGAR(15;3;(($B$2:$B$19)*(1/((($B$3:$B$20-$B$2:$B$19)>1)+($B$3:$B$20=""))));LIN($B2)-LIN($B$2)+1);"")
Em E2:
=SE(D2<>"";ÍNDICE(FREQÜÊNCIA($B$2:$B$19;$D$2:$D$19);LIN(E2)-LIN($E$2)+1);"")
Basta inserir estas funções e "arrastar" para baixo, de preferência até o fim dos Dados.
C) Esta sua última questão é a pedra no caminho. :)
Bom, a função concatenar que listaria numa célula o bloco com os números em sequência não permite selecionar uma região para pegar cada texto nas células. A função concatenar para funcionar requer que coloquemos célula por célula, ou seja, para o seu caso não funcionaria.
Porém, na última versão do Excel, e no caso só se aplica para o Excel Online e o Excel 365, foi lançada a função UNIRTEXTO, e esta é exatamente o que precisávamos. Veja na imagem um outro exemplo no Excel Online:
A função para esse agrupamento ficou:
=SEERRO(UNIRTEXTO(", ";0;INDIRETO("B"&(CORRESP(D2;$B$2:$B$19;0)+LIN($B$2)-1)&":B"&((CORRESP(D2;$B$2:$B$19;0)+LIN($B$2)-1)-E2+1);1));"")
Abaixo há um link para a planilha que fiz:
https://1drv.ms/x/s!AspR4TEwPTPTglIice__11SlWFpG
Veja que todas as função ficaram bastante grandes e com cálculos um tanto difíceis de entender, grande parte é pelo uso de operações matricias, mas como seu problema é bastante delicado, foi necessário o uso delas. Talvez mais alguém aqui do fórum venha com uma ideia melhor.
Espero ter ajudado,
Grande abraço.
Gustavo Sousa