Datetime 查询公式,根据时间戳仅返回每封电子邮件的最新记录

Datetime 查询公式,根据时间戳仅返回每封电子邮件的最新记录,datetime,google-sheets,google-sheets-formula,google-forms,google-sheets-query,Datetime,Google Sheets,Google Sheets Formula,Google Forms,Google Sheets Query,使用此Google工作表查询公式: =QUERY(FORMULARIO!A4:Q, " select G,E,K,M,N,L,O,Q where not upper(J) = 'PAGÓ' and A > date '"&TEXTO(HOY()-3, "yyyy-mm-dd")&"' and E is not null and O is not null and Q contains '@' and not Q matches '"&TEXTJOIN("|", 1,

使用此Google工作表查询公式:

=QUERY(FORMULARIO!A4:Q, " select G,E,K,M,N,L,O,Q where not upper(J) = 'PAGÓ' and A > date '"&TEXTO(HOY()-3, "yyyy-mm-dd")&"' and E is not null and O is not null and Q contains '@' and not Q matches '"&TEXTJOIN("|", 1, QUERY(FORMULARIO!J4:Q, "select Q where upper(J) = 'PAGÓ' ", 0))&"'", 0)
如何在每封电子邮件(Q列)中只返回一条记录,该记录是查看A列日期的最新记录

测试表:

在“结果”选项卡下是工作查询,我只需要根据最近情况过滤掉重复项,只留下最近的一个,唯一标识符是电子邮件

EDIT (以下是OP的共享演示表)

使用的公式是:

=SORT(SORTN(QUERY(FORMULARIO!A4:Q, " select G,E,K,M,N,L,O,Q where not upper(J) = 'PAGÓ' and A > datetime '"&TEXTO(AHORA()-3, "yyyy-mm-dd HH:mm:ss")&"' and E is not null and O is not null and Q contains '@' and not Q matches '"&TEXTJOIN("|", 1, QUERY(FORMULARIO!J4:Q, "select Q where upper(J) = 'PAGÓ' ", 0))&"'", 1),9^9,2,2,1),1,1)
发生了什么变化:

  • 我们使用
    SORTN
    函数包装您的原始查询,以查找并排除
    Q
    列中的所有重复电子邮件,但基于
    A列的时间戳的最新电子邮件除外
    
  • 我们再次使用
    SORT
    函数包装结果,以便按照时间戳对最终结果进行排序
专业提示
通过更改
和A>日期“&”文本(HOY()-3,“yyyy-mm-dd”)&“


和A>datetime'&TEXT(AHORA()-3,“yyyy-mm-dd HH:mm:ss”)和“

因此,我们将今天的
改为现在的

通过这样做,我们可以利用时间戳中的日期和时间而不仅仅是日期来计算日期

(仍有微小改进/改动的余地,但不在本问题的范围内。)


原始答案

假定您的公式按预期工作(在没有测试表的情况下无法检查),但生成多行,您可以在公式末尾使用子句

=QUERY(FORMULARIO!A4:Q, " select G,E,K,M,N,L,O,Q where not upper(J) = 'PAGÓ' and A > date '"&TEXTO(HOY()-3, "yyyy-mm-dd")&"' and E is not null and O is not null and Q contains '@' and not Q matches '"&TEXTJOIN("|", 1, QUERY(FORMULARIO!J4:Q, "select Q where upper(J) = 'PAGÓ' ", 0))&"' limit 1", 0)
编辑 (以下是OP的共享演示表)

使用的公式是:

=SORT(SORTN(QUERY(FORMULARIO!A4:Q, " select G,E,K,M,N,L,O,Q where not upper(J) = 'PAGÓ' and A > datetime '"&TEXTO(AHORA()-3, "yyyy-mm-dd HH:mm:ss")&"' and E is not null and O is not null and Q contains '@' and not Q matches '"&TEXTJOIN("|", 1, QUERY(FORMULARIO!J4:Q, "select Q where upper(J) = 'PAGÓ' ", 0))&"'", 1),9^9,2,2,1),1,1)
发生了什么变化:

  • 我们使用
    SORTN
    函数包装您的原始查询,以查找并排除
    Q
    列中的所有重复电子邮件,但基于
    A列的时间戳的最新电子邮件除外
    
  • 我们再次使用
    SORT
    函数包装结果,以便按照时间戳对最终结果进行排序
专业提示
通过更改
和A>日期“&”文本(HOY()-3,“yyyy-mm-dd”)&“


和A>datetime'&TEXT(AHORA()-3,“yyyy-mm-dd HH:mm:ss”)和“

因此,我们将今天的
改为现在的

通过这样做,我们可以利用时间戳中的日期和时间而不仅仅是日期来计算日期

(仍有微小改进/改动的余地,但不在本问题的范围内。)


原始答案

假定您的公式按预期工作(在没有测试表的情况下无法检查),但生成多行,您可以在公式末尾使用子句

=QUERY(FORMULARIO!A4:Q, " select G,E,K,M,N,L,O,Q where not upper(J) = 'PAGÓ' and A > date '"&TEXTO(HOY()-3, "yyyy-mm-dd")&"' and E is not null and O is not null and Q contains '@' and not Q matches '"&TEXTJOIN("|", 1, QUERY(FORMULARIO!J4:Q, "select Q where upper(J) = 'PAGÓ' ", 0))&"' limit 1", 0)

否。这将只返回一条记录总数。我希望每封电子邮件有一行是最新的匹配使用
orderby(相应列)Desc
最后它将是最新的
limit 1
如@marikanitsos saidAgain所示,它只返回1行我需要多行,但当有多个实例时,它将是最新的一封pero电子邮件请共享一个测试sheet@marikamitsos在“结果”选项卡下是一个工作区,我只需要根据最近的情况过滤掉重复项,只留下最近的一个,唯一标识符是emailNo。这将只返回一个记录总数我希望每封电子邮件有一行是最新的匹配使用
orderby(相应列)Desc
最后它将是最新的
limit 1
如@marikanitsos saidAgain所示,它只返回1行我需要多行,但当有多个实例时,它将是最新的一封pero电子邮件请共享一个测试sheet@marikamitsos在“结果”选项卡下是工作区吗?我只需要根据最近的情况过滤掉重复项,只留下最近的一个,唯一标识符是电子邮件