将年份附加到 Excel 日期

将年份附加到 Excel 日期

我有一个按日和年排列的数据透视表。不幸的是,日期作为“年”标题下的条目出现。有没有办法让年份包含在实际条目中,而不仅仅是标题?如果我要从此数据透视表中复制值,是否有办法将 2014 年附加到单元格并将其读为日期?

该表看起来是这样的:

Year 1     Count
02-August   1
05-August   1
09-August   4
Year 2
02-August   3

答案1

给定您的示例表,并假设包含“年份 1”标题的单元格是 A1,您可以执行此操作以获取在每行列出“年份 X”的列。

单元格 C2: =IF(LEFT(A1,4)="Year",A1,IF(LEFT(A2,4)="Year","",C1))

具体来说:

  • =IF(LEFT(A1,4)="Year",- 当 A1 中的前四个字符是“年份”时,第一个 IF 语句将为 TRUE。
  • A1,- 当 IF 语句为 TRUE 时,C2 的值将复制 A1。
  • IF(LEFT(A2,4)="Year",- 当第一个 IF 语句为 FALSE 时,第二个 IF 语句将检查 A2 是否以“年份”开头。
  • "",- 当第二个 IF 语句为 TRUE(且第一个为 FALSE)时,C2 将为空白。
  • C1))- 当两个 IF 语句均为 FALSE 时,C2 将从 C1 中提取值。

对于 C2,公式将返回“Year 1”。将公式复制到列的其余部分,单元格引用将自动调整,以便“A1”引用始终指向当前单元格左侧两个单元格和上方一个单元格,而“C1”引用始终指向当前单元格正上方的单元格。因此,对于您当前的列表,将添加 C 列,因此表格如下所示:

Year 1      Count Year
02-August   1     Year 1
05-August   1     Year 1
09-August   4     Year 1
Year 2
02-August   3     Year 2

要将年份转换为常规年份值,您需要一个查找表来定义哪个年份 ID 与哪个日历年份匹配,或者至少需要知道“第 1 年”是什么。如何在没有查找表的情况下执行此操作可能取决于 A 列中的格式,因此我只需

使用 F:G 列中的查找表(F 列有“年份 X”,将 X 替换为实际数字,G 列有相应的四位数年份),以下是如何将年份放入 D2 中:=IF(C2="","",VLOOKUP(C2,F:G,2,FALSE))

  • =IF(C2="","",- 如果 C2 为空,则将 D2 留空。否则,VLOOKUP 会在空白处出错。
  • VLOOKUP(C2,F:G,2,FALSE))- 当 C2 不为空时,在 F:G 最左列中查找 C2 的值,并从第二列返回相应的值。仅使用精确匹配。

即使没有查找表,只要年份是连续编号的,您也可以在 D2 中执行以下操作:=IF(C2="","",RIGHT(A2,LEN(A2)-5)+2012-1)

  • =IF(C2="","",- 如果 C2 为空,则将 D2 留空。否则...
  • RIGHT(A2,LEN(A2)-5)- 从 A2 中取出除前 5 个字符之外的所有字符。(这应该只是“X 年”中的“X”部分。)
  • +2012- 添加 2012(将 2012 替换为您希望作为第 1 年的实际年份)。
  • -1)- 减去 1(因为“X 年”从 1 开始。否则,所有年份值都会增加一,或者您需要将“2012”(“第 1 年”)调整为“2011”(“第 1 年”之前的一年)。

如果您只想将年份添加到日期的末尾,而不关心日期格式是否为实际日期,那么您可以这样做:

单元格 E2:=IF(D2="","",CONCATENATE(A2," ",D2))

  • IF(D2="","",- 如果 D2 为空,则将 E2 留空。否则,您有时会看到单元格中包含“X 年”类型的值。
  • CONCATENATE(A2," ",D2))- 如果 D2 不为空,则 E2 将具有 A2 的值,后跟一个空格,后跟 D2 的值,组合成一个字符串。

最后,您的工作表看起来应该是这样的(我向 C:G 添加了标题,如果您对 D 使用“无查找表”方法,则可以完全不用 F:G):

在此处输入图片描述

相关内容