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.


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.


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))))))


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.