
Preciso de uma fórmula para contar números começando com dígitos específicos em uma string separada por vírgulas
O primeiro dígito é sempre 1,2 ou 3; o segundo dígito pode estar entre 1 e 6. Preciso contar os números da string começando com 1, 2 e 3; e se essas contagens forem maiores que zero, conte suas combinações com o segundo dígito.
Aqui está o exemplo com a solução esperada. Digamos que A1 tenha a seguinte string:
11234,12345, 23456, 31423, 13009, 14001,24005, 12222, 21222, 33215, 21236
Então:
- B1 deve retornar 5 (uma contagem de todos os números na string começando com 1)
- C1 deve ser 3 (uma contagem de todos os números na string começando com 2)
- D1 deve ser 2 (uma contagem de todos os números na string começando com 3)
Responder1
Que tal agora:
=(LEN(","&SUBSTITUTE($A$1,", ",","))-LEN(SUBSTITUTE(","&SUBSTITUTE($A$1,", ",","), ","&B2,"")))/LEN(","&B2)
(Onde linhaBcontém as strings que você está tentando corresponder em A1.)
Como funciona:
- Você pode notar que isso aparece duas vezes:
","&SUBSTITUTE($A$1,", ",",")
Isso remove os espaços e adiciona uma vírgula na frente, então seu
sequência original: 11234,12345, 23456, 31423, 13009, 14001,24005, 12222, 21222, 33215, 21236
torna-se
novaString: ,11234,12345,23456,31423,13009,14001,24005,12222,21222, 33215,21236
Agora a fórmula longa poderia ser reescrita como:
=(LEN(newString)-LEN(SUBSTITUTE(newString, ","&B2,""))) /LEN(","&B2)
Supondo que os dígitos iniciais que você está procurando estejam emB1(por exemplo:B1
=1
isso entra em colapso ainda mais assim:
=(LEN(newString)-LEN(SUBSTITUTE(newString, ",1" ))) /LEN(",1")
- Portanto, temos: Obtenha o comprimento de toda a nova string (67) e subtraia o comprimento com todas as ocorrências de
,1
removida (57). Isso lhe dá o número de caracteres ocupados por,1
(10). Divida pelo comprimento de,1
(2) para saber quantas vezes,1
ocorreu. (5)
Você pode arrastar esta fórmula pela linha A e colocar vários dígitos de "pesquisa" na linhaBe contará todos eles.
Embargo: Isso só funcionará se os números estiverem separados por vírgula e/ou por vírgula, como no seu exemplo.
Responder2
https://exceljet.net/formula/count-numbers-that-begin-withveja este site. Portanto, a fórmula é: =SOMAPRODUTO(--(ESQUERDA(L1:X20,1)="(coloque aqui o dígito que deseja encontrar)"))