Google sheets 查询(…)会稍微更改日期时间值

Google sheets 查询(…)会稍微更改日期时间值,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我遇到了一个问题,QUERY稍微更改了一些日期时间值。这里有一个最小的可重复的例子 可以玩的玩具 A:A具有日期时间值 B:B使用=FILTER(A2:A,序列(行(A2:A),1,1,0))重复它们 C:C显示与原始值不匹配的任何值的行号。有N/A,所有内容都匹配 D:D使用=QUERY(A2:A,0)重复原始日期时间 E:E显示与原始值不匹配的任何值的行号。有几个 F:F显示原始值,G:G显示非匹配对的查询后的值。点后的第10位数字不同 H:H显示了F:F和G:G之间的差异。始终相同:-0

我遇到了一个问题,
QUERY
稍微更改了一些日期时间值。这里有一个最小的可重复的例子

可以玩的玩具

  • A:A
    具有日期时间值
  • B:B
    使用
    =FILTER(A2:A,序列(行(A2:A),1,1,0))重复它们
  • C:C
    显示与原始值不匹配的任何值的行号。有
    N/A
    ,所有内容都匹配
  • D:D
    使用
    =QUERY(A2:A,0)
    重复原始日期时间
  • E:E
    显示与原始值不匹配的任何值的行号。有几个
  • F:F
    显示原始值,
    G:G
    显示非匹配对的
    查询后的值。点后的第10位数字不同
  • H:H
    显示了
    F:F
    G:G
    之间的差异。始终相同:
    -0.000000000007276…
为什么呢?有办法补救吗?也许这是谷歌表单中的一个bug


注意:数据来自另一个(删除除datetimes之外的所有内容)。我不得不在答案中使用
过滤器
解决方案,尽管
查询
解决方案更简单 这种行为是由时间值的“浮动错误”引起的,
FILTER
处理值,而
QUERY
尝试将其内部转换为文本字符串,这种情况下,值的结尾/小数位置被截断,从而增加了
QUERY
FILTER
之间的差异。从“精确性”的角度来看,
过滤器更为“精确”,但从常识和偶然逻辑的角度来看,谁会在意以超过毫秒刻度的15+小数位格式表示的时间值…

谁会在意。。。您介意试试
QUERY
VLOOKUP
在原始列中找不到某些dt。至少没有额外的修改。很难猜测您希望如何以及在何处应用查询,但我检查了您建议的VLOOKUP解决方案,它在模拟我希望使用
QUERY({K:K,E:E},“选择Col1,MAX(Col2)groupby Col1”,1)的每一行上都非常有效,而不是
排序({K2:K,E2:E},2,False)
。这将为使用
VLOOKUP
搜索提供更小范围的唯一日期时间。我确实这么做了,但幸运的是,当时我并不懒惰,并检查了原始OP的解决方案——结果发现了这个问题。