Excel 从CSV文件重新格式化数据

Excel 从CSV文件重新格式化数据,excel,csv,Excel,Csv,我有来自csv文件的数据。其中一列包含类似“0.2.11”的文本,我需要将其重新格式化为“00.02.0011”,前导零和点分隔部分的长度至关重要。这些不是日期,只是随机数字。我如何重新格式化这些文件 谢谢。我知道这是一个非常长的公式,但我相信它会满足您的需求: =IF(LEN(IF(ISERR(FIND(".",A1)),A1,LEFT(A1,FIND(".",A1)-1)))=2,IF(ISERR(FIND(".",A1)),A1,LEFT(A1,FIND(".",A1)-1)),"0"&a

我有来自csv文件的数据。其中一列包含类似“0.2.11”的文本,我需要将其重新格式化为“00.02.0011”,前导零和点分隔部分的长度至关重要。这些不是日期,只是随机数字。我如何重新格式化这些文件


谢谢。

我知道这是一个非常长的公式,但我相信它会满足您的需求:

=IF(LEN(IF(ISERR(FIND(".",A1)),A1,LEFT(A1,FIND(".",A1)-1)))=2,IF(ISERR(FIND(".",A1)),A1,LEFT(A1,FIND(".",A1)-1)),"0"&IF(ISERR(FIND(".",A1)),A1,LEFT(A1,FIND(".",A1)-1)))&"."&IF(RIGHT(MID(A1,FIND(".",A1)+1,2))<>".",MID(A1,FIND(".",A1)+1,2),"0"&LEFT(MID(A1,FIND(".",A1)+1,2),1))&"."&IF(LEN(RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))))=4,RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))),IF(LEN(RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))))=3,"0"&RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))),IF(LEN(RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))))=2,"00"&RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))),"000"&RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1,".","*",LEN(A1)-LEN(SUBSTITUTE(A1,".",""))))))))
《代码><代码><代码>>=若(若)2、若(若)2、若(若)2、若(若)2、若(若)(若)若(若)若(若(若)(若)若(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(现)(若)(若)(若)(若)(现)(若)(若)(若)(若)(现)(若)(若)(若)(若)(若)(现)(若)(若)(若)(若)(现)(若)(若)(若)(若)(现)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(若)(发现)(若)(发现)(若)(如)(发现)(如)(现)(如)(如)(如)(如)(如)(发现)(发现)(如)(发现)(如)(发现)(如)(如)(发现)(如)(如)(如)(如)(“.”,“*”,LEN(A1)-(三)4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、3、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、3、3、3、3、3、0、3、3、0、3、3、3、3、3、3、3、0、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、3、(A1,“.”,“*”,LEN(A1)-LEN(替代物(A1,“.”,“!”))=2,“00”和右(A1,LEN(A1)-FIND(“*”,替代物(A1,“.”,“*”,“*”),LEN(A1)-LEN(替代物(A1,“,”)),“000”)和右(A1,LEN(替代物(A1,“,”,“*”,LEN 它可能足够长,您必须将其保存为一种新的Excel格式,如.xlsx或.xlsm。如果您有问题,请告诉我,如果您需要,我还将公式分解为几个单元格(或步骤)。

有一个较短的(但仍然很难看)使用文本函数设置格式的Excel公式:

=TEXT(MID(A1,1,FIND(".",A1)-1),"00") &"."& TEXT(MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-FIND(".",A1)-1),"00") &"."& TEXT(RIGHT(A1,LEN(A1)-FIND(".",A1,FIND(".",A1)+1)),"0000")

我想指出还有其他解决同一个问题的方法。如果你有很多大的CSV文件,你可以考虑在导入Excel之前进行预处理。例如,在AWK中做同样的工作是微不足道的:

BEGIN {
    while(getline < "e.csv") {
        split($1,a,".");
        printf("%02d.%02d.%04d\n",a[1],a[2],a[3]);
    }
}
开始{
while(getline<“e.csv”){
拆分($1,a,“.”);
printf(“%02d.%02d.%04d\n”,a[1],a[2],a[3]);
}
}

Gawk适用于Windows。安装后,您可以在Windows或PowerShell命令行上以
\awk-f x.awk
的形式运行它,其中x.awk是文本文件中的上述代码。

您是否可以使用以下公式:
=“0”&REPLACE(REPLACE(A1,3,0,“0”),6,0,“00”)