如何在Excel/Google工作表中反转以“/”分隔的单元格文本的顺序[重复]

1qczuiv0  于 2023-02-05  发布在  Go
关注(0)|答案(5)|浏览(145)

此问题在此处已有答案

Convert text date to date in Google Sheets(1个答案)
昨天关门了。
如下图所示,我有一个列,其值如下所示:
10/1/1399
11/1/1399
23/2/1400
16/12/1390
1/1/1400
我想把它们重新排列成这样
1399/1/10
1399/1/11
1400/2/23
1390/12/16
1400/1/1
Sheet Image
有没有办法在MS Excel或Google工作表上实现这一点?

euoag5mw

euoag5mw1#

在图纸中,您还可以尝试:

=INDEX(REGEXREPLACE(TO_TEXT(A2:A6),"(.*)/(.*)/(.*)","$3/$2/$1"))

xzv2uavs

xzv2uavs2#

试试看:

=ARRAYFORMULA(BYROW(QUERY(SPLIT(A1:A,"/"),"select Col3, Col2, Col1"),LAMBDA(row,TEXTJOIN("/",1,row))))
raogr8fs

raogr8fs3#

在Excel中:

=BYROW(A2:INDEX(A:A,COUNTA(A:A)),LAMBDA(r,TEXTJOIN("/",,INDEX(TEXTSPLIT(r,"/"),{3,2,1}))))

gorkyyrv

gorkyyrv4#

假设输入是实际的文本,代表一个日期,在GS中有两个选项对我有效:

B1中的公式,结果可能取决于区域设置:

=INDEX(TEXT(DATEVALUE(QUERY(A:A,"Where A is not null")),"yyyy/m/d"))

C1中的公式:

=INDEX(REGEXREPLACE(QUERY(A:A,"Where A is not null"),"(\d+)(\/\d+\/)(\d+)","$3$2$1"))

对于Excel,第一个选项不起作用,因为它是早于1-1-1900(AFAIK)的日期。

=MAP(TOCOL(A:A,1),LAMBDA(x,TEXTJOIN("/",,INDEX(TEXTSPLIT(x,"/"),{3,2,1}))))
klsxnrf1

klsxnrf15#

最有效的方法是创建一个宏,将其作为一个列操作来执行,但我认为最简单的方法是将单元格分隔成由斜杠分隔的列,然后以相反的顺序将它们连接起来,并将斜杠加回去。

相关问题