了解要对哪一列求和的简单方法的逻辑

logic for a simple way to know which column to sum

我正在使用 google 工作表查看一些 gps 速度和距离数据,我想总结超过最大速度 75% 的所有距离。 D 列具有最大速度的 75%。 Q-X 列的距离为 2 m/s、3 m/s、4m/s 等。除了进行大量嵌套的 if 语句之外,还有更简单的方法吗?

否则我认为它看起来像: =if(d3>9,sum(q3:x3),if(d4>8,(sum(q3:w3),if(d4>7,(sum(q3:v3),if(d4>6,(sum (q3:u3),if(d4>50,(sum(q3:t3),if(d4>40,(sum(q3:s3),if(d4>30,(sum(q3:r3),if( d4>20,q3,0)))))))

这里是一个link的数据:https://docs.google.com/spreadsheets/d/1eRCv4paCEAAufegmzbPCchIErteA-CYYmXp5lNizpO0/edit?usp=sharing

我还需要能够匹配名称列 A 和 D1 中的日期。

好像应该有更简单的方法,但是我不知道怎么做。

你问题的第一部分应该只是一个求和(尽管你必须从数据 sheet 中的 headers 中提取数字):

=ArrayFormula(sumif(--regexextract(data!Q1:W1,"\d"),"<"&D4,data!Q2:W2))

您可以使用 index/match 从数据选项卡中获取正确的行(此处使用 sumifs 进行演示):

=ArrayFormula(sumifs(index(data!Q2:W,match(A4&$D,data!A2:A&data!B2:B,0),0),--regexextract(data!Q1:W1,"\d"),"<"&D4))

B4:

=INDEX(SORTN(SORT({data!F2:F, data!A2:A}, data!F2:F, 0), 9^9, 2, 2, 1),,1)

C4:

=INDEX(SORTN(SORT({(data!F2:F*0.75), data!A2:A}, data!F2:F, 0), 9^9, 2, 2, 1),,1)

D4:

=INDEX(SORTN(SORT({(data!F2:F*0.75)/2.237, data!A2:A}, data!F2:F, 0), 9^9, 2, 2, 1),,1)

E4 一直最高:

=ARRAYFORMULA(IF(A4:A="",,MMULT(IFERROR(VLOOKUP(A4:A, 
 SORTN(SORT({data!A2:A, data!Q2:X}, data!F2:F, 0), 9^9, 2, 1, 1), 
 IF(INDEX(SORTN(SORT({(data!F2:F*0.75)/2.237, data!A2:A}, data!F2:F, 0), 9^9, 2, 2, 1),,1)>
 SEQUENCE(1, 8)+1, SEQUENCE(1, 8)+1, 0), 0), 0), SEQUENCE(8)^0)))

或所选日期的 E4 顶部:

=ARRAYFORMULA(IF(A4:A="",,MMULT(IFERROR(VLOOKUP(A4:A, 
 SORTN(SORT(FILTER({data!A2:A, data!Q2:X}, data!B2:B=TEXT(D1, "mm/dd/yyyy")), 
 FILTER(data!F2:F, data!B2:B=TEXT(D1, "mm/dd/yyyy")), 0), 9^9, 2, 1, 1), 
 IF(INDEX(SORTN(SORT({(data!F2:F*0.75)/2.237, data!A2:A}, data!F2:F, 0), 9^9, 2, 2, 1),,1)>
 SEQUENCE(1, 8)+1, SEQUENCE(1, 8)+1, 0), 0), 0), SEQUENCE(8)^0)))

demo sheet