表格:如何在电话号码前加上1

时间:2019-02-04 21:31:42

标签: google-sheets

enter image description here

在工作表列中有一组多种格式的电话号码。我想删除所有非数字位数,并有条件地在前面添加1(如果尚不存在)。到目前为止,我有:

=ArrayFormula( (REGEXREPLACE( E1:E , "([^0-9]+)" , "" ) )

删除非数字。如何有条件地加1?

4 个答案:

答案 0 :(得分:2)

=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(
 IF(E2:E<>"", IF(LEFT(E2:E, 1)<>"1", 
 "1"&E2:E, E2:E))), "([^0-9]+)", ""))

答案 1 :(得分:1)

如果您想使用regexreplace,我想就是这样,但是@ player0是正确的,可能更容易使用LEFT

=regexreplace(A1,"(^[^1])","1$1")

答案 2 :(得分:1)

=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(TRANSPOSE(SPLIT(
 TEXTJOIN("♥", 1, QUERY(TRANSPOSE(IFERROR(SPLIT(IF(E2:E<>"", 
 IF(LEFT(E2:E, 1)<>"1", "1"&E2:E, E2:E), ), "-"), )), , 
 ROWS(E2:E))), "♥", 0))), " ", ""))

答案 3 :(得分:1)

由于源数据显然是纯文本格式(或很容易重新格式化),因此是较短的版本:

=ArrayFormula(if(E4:E="","",regexreplace(1&REGEXREPLACE(E4:E,"\D",""),"^11","1")))

(在所有情况下都使用1,然后剥离一个1,否则数字将以11开头。)