Google sheets 根据Google表单中给定的OHLC数据计算不同的时间段(查询字符串?)
我不断地获取OHLC数据,并试图将其转换为不同的时间段,同时保持动态。虽然手动计算并不是问题,但通过更新数据,它不会保持动态。我尝试过查询它,但我对查询字符串比较陌生,无法得到想要的结果。如果有人有这方面的经验,我会很感激 以下是给定数据的片段(已编辑): 假设我们正在尝试将数据转换为2小时的时间范围。 我的“伪查询字符串代码”如下所示: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:
=查询(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))))