Como analiso um número inteiro no Planilhas Google?

16

Qual é o equivalente a parseInt()(JS) ou intval()(PHP) no Planilhas Google?

Eu quero calcular a soma dos números em uma linha em uma célula separada. Então, se eu tivesse 3 cupse 5 cupsem uma fileira, eu conseguiria 18.

FT
fonte
4
Você quer dizer "3 xícaras" e "15 xícaras", ou estou perdendo alguma coisa?
jonsca

Respostas:

15

Uma maneira de implementar algo assim é

=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))

O resultado desta fórmula para alguns exemplos de seqüências é dado abaixo.

insira a descrição da imagem aqui

Pode ser necessário modificá-lo para atender às suas necessidades individuais. Deve funcionar muito bem para cordas simples como "3 xícaras".

  • SPLIT(..., " ")divide uma string em suas partes separadas por espaço. Você pode adicionar mais caracteres à sequência, por exemplo " -/", para dividir sempre que esses caracteres forem encontrados.

  • ISNUMBER verifica se uma sequência é um número.

  • FILTER pega a matriz e filtra tudo o que não satisfaz a segunda função, ou seja, remove tudo que não é um número.

  • INDEX(...; 1; 1) retorna o valor na primeira linha, primeira coluna da matriz (portanto, apenas obtemos o primeiro número listado, nem todos os números listados).

  • VALUE provavelmente não será necessário, mas apenas para uma boa medida, converte a sequência final em um valor numérico.

6005
fonte
2
Portanto, a resposta é VALUE...
Iulian Onofrei
@IulianOnofrei Não, VALUEgera um erro ("não pode ser analisado em um número") em todas as entradas de exemplo que forneci na resposta.
6005
11
Desculpe, eu quis dizer que essa VALUEé a resposta para a primeira pergunta do OP e o título também.
Iulian Onofrei 10/03/2015
@IulianOnofrei Não sei JavaScript, mas não foi assim que entendi a pergunta do OP.
6005
3

Outra alternativa que funciona com célula contendo xícara ou xícaras

= MatrizFórmula (SUM (INT (ESQUERDA (B1: B2, FIND ("", B1: B2))))))
Rubén
fonte
1

Parece um bom uso para regex. Por exemplo:

Exemplo WA57716

onde a fórmula em E2 é:

="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))

Isso remove todos os não numéricos, concatena o resultado com +e precede =.

Copie / Cole / Cole os valores apenas em, digamos, F2 (poderia ser E2) e, em seguida, Substitua =por =.

JUNTE-SE
AO REGEXREPLACE

nozes
fonte