在Excel中用字符串连接日期

在Excel中用字符串连接日期,excel,worksheet-function,Excel,Worksheet Function,我在Excel中有两个单元格。一个有字符串,另一个有日期。在第三个单元格中,我想把日期和字符串放在一起。例如: A1 = "This " A2 = "03/03/1982" 我想成为: This 03/03/1982 当我试着把它放在A3公式中:=A1&A2时,它会返回一些有趣的日期数值,而不会给出文字日期 这是日期的数字表示形式。当你引用公式中的日期时,你会得到这样的结果 您必须执行以下操作: = A1 & TEXT(A2, "mm/dd/yyyy") 这里最大的问题是格式说明符

我在Excel中有两个单元格。一个有字符串,另一个有日期。在第三个单元格中,我想把日期和字符串放在一起。例如:

A1 = "This "
A2 = "03/03/1982"
我想成为:

This 03/03/1982

当我试着把它放在A3公式中:=A1&A2时,它会返回一些有趣的日期数值,而不会给出文字日期

这是日期的数字表示形式。当你引用公式中的日期时,你会得到这样的结果

您必须执行以下操作:

= A1 & TEXT(A2, "mm/dd/yyyy")
这里最大的问题是格式说明符依赖于区域设置。如果文件是用不同本地化的Excel打开的,它将无法工作/产生预期的效果

现在,您可以拥有一个用户定义的函数:

public function AsDisplayed(byval c as range) as string
  AsDisplayed = c.Text
end function
然后

= A1 & AsDisplayed(A2)
但是还有一个bug特性?在Excel中,由于.Text属性在计算周期的某些阶段突然出现,您的公式显示的是值,而不是它们应该显示的值


也就是说,这两种方法都不好。

不知道这是否是最好的方法,但我会这样做:

=A1 & TEXT(A2,"mm/dd/yyyy")
这样可以将日期格式化为所需的字符串


编辑:你看到的那个有趣的数字是1899年12月31日和你约会的天数。这就是Excel存储日期的方式。

您可以通过以下简单方式完成:

A1=马希 A2=空白

选择A2右键单击单元格->设置单元格格式->更改为文本

然后将日期填入A2 A2=31/07/1990

然后将其连接起来即可。不需要任何公式

=EA1,A2

1990年7月31日

这适用于空单元格,即在向单元格输入日期值之前,需要将其设置为文本。

另一种方法

=CONCATENATE("Age as of ", TEXT(TODAY(),"dd-mmm-yyyy"))
这会回来的
截至2013年8月6日的年龄谢谢您的解决方案

它是有效的,但在法国Excel环境中,您应该应用以下内容

TEXTE(F2;"jj/mm/aaaa")
连接后,按F2单元格中的显示方式获取保留的日期。
我发现对于这种情况,最简单的解决方案是为包含日期的单元格定义自定义数字格式。这种情况下的格式应为:

"This:" mm/dd/yyyy
要设置此格式,请执行以下操作:

右键单击单元格 选择格式单元格 默认情况下,应显示“选择编号”选项卡 从“类别”列表中选择“自定义” 在类型字段中指定格式 按OK
注意:如果您确实希望从单元格中拾取前面的文本,此解决方案将无法按所述方式工作。

您可以使用:=CONTAINATETEXTA1,dd/mm/yyyy,B1。24小时时间的可能副本:TEXTA1,dd/mm/yyyy hh:mm:ss全文参考文本功能,特别是了解如何设置格式:请参阅本页上的日期和时间格式指南,尝试阅读此指南,以进一步了解此处的问题/答案等。你的贡献并没有回答这个问题。这更多的是一个评论,一旦你提高了你的声誉,你就可以添加它:微软真是太蠢了。更令人恼火的是,即使您专门将字段类型设置为文本,它仍然会吐出这个神奇的数字,而不是您在单元格中实际需要的数字。@starbyone如果它在连接上下文中使用时强制使用日期值的某个文本表示形式,则Microsoft会更加愚蠢。同一日期可以用几乎无限的方式表示,并且操作员不应该选择正确的显示方式。文本类型确实有效,但实际上需要将值更改为文本,而不仅仅是更改单元格格式。也就是说,首先应用文本格式,然后将日期粘贴为文本值。然后,&将保持它的原样,事实上,只是这次它将更加直观。1/2我不明白为什么我必须将它粘贴为文本,如果单元格上的格式是文本。如果之前存在数值或日期值,则应执行隐式转换/转换。人们会期望值在更改格式后立即表示为文本,这是合乎逻辑的。关于&运算符,我同意在连接日期值时不应选择正确的显示方式,尽管在这种情况下,它可能会尝试使用默认类型参数进行文本转换。。继续下一篇评论2/2事实上,没有一套标准化的格式可供选择,这让我觉得很愚蠢。我有瑞典版的Excel。TEXTA1,yyyy-mm-dd根本不起作用。然而,文本A1,ÅÅ-MM dd确实如此。如果您可以执行如下操作,则很容易解决此问题:TEXTA1,默认值,或者说,TEXTA1,[ISO]yyyy-mm-dd。问题已解决,而且这是一个不违反任何连接规则的简单修复方法。@starbyone单元格的实际值始终来自单元格格式。这一点非常重要,因为如果不是这样,那么所有公式都将变得不稳定,并且每次Excel中发生任何事情时都必须重新计算,这将彻底破坏性能。至于TEXT函数需要本地化参数的问题,y 是的,这是一个问题,在我看来,这是一个疏忽,对独立于语言环境的文本函数的请求已经发出。