Подтвердите номера телефонов в указанном формате c с помощью формулы Google Sheet - PullRequest
0 голосов
/ 10 февраля 2020

enter image description here

Я работаю с листами Google и хотел бы преобразовать номера телефонов США в формат:

1xxxyyyzzzz

например, 402-333 -4444 должен быть превращен в 14023334444

У меня есть функция проверки скрипта приложения, которая делает это:

var numbers = 'INVALID' 

if ( parsed_body.hasOwnProperty('PHONE') ) {


  var phone = parsed_body['PHONE'].toString();
  Logger.log(parsed_body);

  numbers = phone.replace(/[^0-9]/g, "");
  var firstChar = numbers.charAt(0);
  if ( firstChar !== '1'){ numbers = '1'+ numbers}
  Logger.log(numbers);

  if ( numbers.length !== 11){ numbers = 'NOTELEVEN'};
}

parsed_body['PHONE']=numbers;

, но я бы хотел, чтобы лист сделал это. Это возможно?

1 Ответ

1 голос
/ 11 февраля 2020

Формула получается довольно длинной, если вы делаете это в одной формуле, потому что вы должны повторять предыдущие шаги, в отличие от версии скрипта:

=if(len(if(left(regexreplace(""&D2,"[^0-9]",""))="1","","1")&regexreplace(""&D2,"[^0-9]",""))=11,
if(left(regexreplace(""&D2,"[^0-9]",""))="1","","1")&regexreplace(""&D2,"[^0-9]",""),"INVALID")

enter image description here

Может быть изменено на формулу массива:

=ArrayFormula(if(D2:D="","",if(len(if(left(regexreplace(""&D2:D,"[^0-9]",""))="1","","1")&regexreplace(""&D2:D,"[^0-9]",""))=11,
if(left(regexreplace(""&D2:D,"[^0-9]",""))="1","","1")&regexreplace(""&D2:D,"[^0-9]",""),"INVALID")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...