如何从日期列中过滤掉文本?

How can I filter out text from a date column?

我在 Google Data Studio 中有一列,如下所示:

Date Rating
NULL NULL
NULL NULL
NULL NULL
NULL NULL
2022-01-01 11:44:19 9
2022-01-03 06:03:26 3
2022-02-03 06:03:26 4
2022-02-03 13:39:52 5
2022-03-03 13:41:33 2

所需的日期格式是dd/mm/yyyy(我真的不需要HMS)。我正在尝试按月计算每个评分的总和。

Sample data is here.

Sample report is here.

“NULL”实际上不是 null 值,而是文本。因此,整个列被视为文本字段。是否有一个函数会忽略“NULL”文本值并只考虑日期,从而将字段视为日期格式?

考虑创建一个具有以下公式的计算字段:

IF(LENGTH(Date)=4,"",Date)

其中“4”是“NULL”字的长度。

前面的公式检查 Date 字段的长度和(如果长度与 NULL 的长度相同),然后,设置一个空字符串1;否则,保留 Date 值的原始值。

your report example 中,我创建了一个名为 NewField 的字段 - 它具有上述公式。


1 除了空字符串,您还可以设置默认值,例如 0001-01-01 或根据需要设置其他默认值。

三步法是首先创建一个新的日期字段(下面标题为 Date_Calc),然后 filter out NULL values and finally change the field type from the default Date & Time to Date at the data source-level and to Month at the chart-level:

1) Date_Calc

创建 data source-level calculated field below which uses the PARSE_DATETIME 函数以“将文本转换为带时间的日期”,输入 %F %T,其中 %F 表示“格式为 %Y-%m-%d 的日期”和 %T 是“格式为 %H:%M:%S 的时间";此外,该函数确保其他值(例如文本“NULL”)将转换为 NULL 值:

PARSE_DATETIME("%F %T", Date)

2) Filter

Exclude Date_Calc Is NULL

3) 其他更改

本节着眼于核心要求(字段类型)以及可以在 data source-level:

中进行的一些可选更改
  • Field Type:将Date_Calc字段的字段类型由Date & Time改为Datedata source-level;然后可以在 chart-level 处进一步更改粒度(例如 QuarterYearYear Month 或者在这种情况下, Month)
  • 隐藏字段: 当前文本字段,Date可以在数据源处隐藏
  • 重命名字段:隐藏的 Date 字段可以重命名为 Date_OriginalDate_Calc 字段可以重命名为 Date

Editable Google Data Studio Report (Embedded Google Sheets 数据源)和一张 GIF 来详细说明: