在工作表列中有一组多种格式的电话号码。我想删除所有非数字位数,并有条件地在前面添加1(如果尚不存在)。到目前为止,我有:
=ArrayFormula( (REGEXREPLACE( E1:E , "([^0-9]+)" , "" ) )
删除非数字。如何有条件地加1?
答案 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®EXREPLACE(E4:E,"\D",""),"^11","1")))
(在所有情况下都使用1
,然后剥离一个1
,否则数字将以11
开头。)