在Google电子表格中,我有这样的表格:
A B C
----------------
One [0] 3 2
Two [1] 6 0
Three [5] 1 1
Four [3] 1 2
Five [2] 1 0
我想生成SORT()
或QUERY()
,它将返回一个按B和C之和排序的两列表。此外,A列应该被包含在最后四个字符中。
所以结果应该是:
Two 6
One 5
Four 3
Three 2
Five 1
我尝试使用SELECT MID(A,1,-5), (B+C) ORDER BY B+C
,但执行情况非常糟糕。欢迎所有建议!提前谢谢!
答案 0 :(得分:2)
或者,也可以尝试(在谷歌电子表格中)
=query({ArrayFormula(regexextract(A2:A, "^(.+) \[")), B2:C}, "Select Col1, sum(Col2)+sum(Col3) where Col2 is not null group by Col1 order by sum(Col2)+sum(Col3) label sum(Col2)+sum(Col3)''",0)
或者,取决于您的区域设置:
=query({ArrayFormula(regexextract(A2:A; "^(.+) \["))\ B2:C}; "Select Col1, sum(Col2)+sum(Col3) where Col2 is not null group by Col1 order by sum(Col2)+sum(Col3) label sum(Col2)+sum(Col3)''";0)
答案 1 :(得分:1)
这会对你有所帮助
=QUERY(B2:D7,"Select B,SUM(C)+SUM(D) group by B order by SUM(C)+SUM(D) desc label SUM(C)+SUM(D) 'SUM'")
如果您不熟悉SQL,
标签用于重命名列名,如SQL中的AS关键字。
ORDER BY子句用于对desc或asc进行排序。
答案 2 :(得分:0)
如果您使用的是SQL,请尝试以下方法:
SELECT
LEFT(A,LEN(A)-4) AS Col1
,(B+C) AS Col2
FROM table
ORDER BY Col2 DESC
答案 3 :(得分:0)
如果您正在使用mysql您使用sugstrin_index,因为您的字符串部分未修复lenght
select SUBSTRING_INDEX(a,' ',1) as A , b+c as C
from your_table
order by C DESC
来自sqlserver你可以使用substring
select SUBSTRING(a, 1, instr(String," ") -1) as A , b+c as C
from your_table
order by C DESC