Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 根据Google表单中给定的OHLC数据计算不同的时间段(查询字符串?)_Google Sheets_Ohlc - Fatal编程技术网

Google sheets 根据Google表单中给定的OHLC数据计算不同的时间段(查询字符串?)

Google sheets 根据Google表单中给定的OHLC数据计算不同的时间段(查询字符串?),google-sheets,ohlc,Google Sheets,Ohlc,我不断地获取OHLC数据,并试图将其转换为不同的时间段,同时保持动态。虽然手动计算并不是问题,但通过更新数据,它不会保持动态。我尝试过查询它,但我对查询字符串比较陌生,无法得到想要的结果。如果有人有这方面的经验,我会很感激 以下是给定数据的片段(已编辑): 假设我们正在尝试将数据转换为2小时的时间范围。 我的“伪查询字符串代码”如下所示: =查询(A1:B,“A和B的第二行(A2:B2)”,0) =查询(A1:C,“每两行的最大值(C2:C3)”,0) =查询(A1:D,“每两行的最小值(D2:

我不断地获取OHLC数据,并试图将其转换为不同的时间段,同时保持动态。虽然手动计算并不是问题,但通过更新数据,它不会保持动态。我尝试过查询它,但我对查询字符串比较陌生,无法得到想要的结果。如果有人有这方面的经验,我会很感激

以下是给定数据的片段(已编辑):

假设我们正在尝试将数据转换为2小时的时间范围。 我的“伪查询字符串代码”如下所示:

=查询(A1:B,“A和B的第二行(A2:B2)”,0)
=查询(A1:C,“每两行的最大值(C2:C3)”,0)
=查询(A1:D,“每两行的最小值(D2:D3)”,0)
=查询(A1:E,“偏移量为1(E3)的每第二行”,0)
结果应如下所示:

//时间戳Open2h High2h Low2h Close2h
1598500800  384.22  385.63  380.40  381.45
1598508000  381.45  386.48  381.45  385.72
1598515200  385.72  387.32  383.00  386.99
1598522400  386.99  387.74  381.80  382.07
1598529600  382.07  396.85  381.04  388.75
谢谢你的时间

第一部分“A和B的每第二行”使用以下公式返回

=ARRAYFORMULA(FILTER(FILTER(A1:B,A1:A<>""),ISODD(SEQUENCE(COUNT(A1:A),1,1,1))))
=ARRAYFORMULA(过滤器(过滤器(A1:B,A1:A)”),ISODD(序列(计数(A1:A),1,1,1)))
我们创建序列号索引并过滤赔率

最后一个子句“偏移量为1(E3)的每第二行”也是如此,但带有偶数

=ARRAYFORMULA(FILTER(FILTER(E1:E,E1:E<>""),ISEVEN(SEQUENCE(COUNT(A1:A),1,1,1))))
=数组公式(过滤器(过滤器(E1:E,E1:E“”),ISEVEN(序列(计数(A1:A),1,1,1)))
对于两行的最大值,请使用以下公式:

=ARRAYFORMULA(
 FILTER(
 SORT(
  FILTER($C$1:$C,$C$1:$C<>""),
  QUOTIENT(SEQUENCE(COUNT($A$1:$A),1,1,1)+1,2),TRUE,
  FILTER($C$1:$C,$C$1:$C<>""),FALSE),
ISODD(SEQUENCE(COUNT($A$1:$A),1,1,1))))
=数组公式(
滤器(
分类(
过滤器($C$1:$C,$C$1:$C”“),
商(序列(计数($A$1:$A),1,1,1)+1,2),真,
过滤器($C$1:$C,$C$1:$C“”),假),
ISODD(序列(计数($A$1:$A),1,1,1)))
我们在这里创建索引1,1,2,2,3,3。。。并按值降序排序,每个索引取第一个值,即两行的最大值


对于每两行的MIN,使用几乎相同的公式,排序选项TRUE FILTER($D$1:$D,$D$1:$D“”),TRUE)对于MIN.

Ok,因此可能查询不是正确的解决方案。我设法将A、B和E简单地过滤掉。“=过滤器(A2:B,模式(行(A2:A)+2,2)=0)”和“=过滤器(行(E2:E)+1,2)=0”。但最小值和最大值仍然不能让我的思想围绕着它。。。
=ARRAYFORMULA(
 FILTER(
 SORT(
  FILTER($C$1:$C,$C$1:$C<>""),
  QUOTIENT(SEQUENCE(COUNT($A$1:$A),1,1,1)+1,2),TRUE,
  FILTER($C$1:$C,$C$1:$C<>""),FALSE),
ISODD(SEQUENCE(COUNT($A$1:$A),1,1,1))))