我有一张表格,里面保存了我想要在另一张表格中进行过滤和排序的原始数据。我如何为只有一列的GROUP BY,同时仍然可以通过并选择其他列?
原始数据片
片材的目标是:
- 只显示最高
Rank
每Name
在Level
12或低于 - 排序从最高到的结果最低
Damage
我展示和排序的所有项目进行的12或以下使用ORDER BY
一个Level
:
=ARRAYFORMULA(QUERY(RAW!2:1000, "select A,B,D where C<=12 and A<>'' order by D desc"))
以损伤
排序但是,这仍然显示太多的条目。我可以用MAX()
和GROUP BY
过滤条目:
=ARRAYFORMULA(QUERY(RAW!2:1000, "select A,max(B) where C<=12 and A<>'' group by A label max(B) ''"))
筛选,仅显示最高等级
但是,我不能排序DAMAGE
要不然我得到这个错误:
Unable to parse query string for Function QUERY parameter 2:
COL_IN_ORDER_MUST_BE_IN_SELECT: `D`
并尝试添加该公司lumn到SELECT
节给出此错误:
Unable to parse query string for Function QUERY parameter 2:
ADD_COL_TO_GROUP_BY_OR_AGG: D
的错误意味着我不能包括不是任一聚合式(像MAX
)或不是GROUP BY
的一部分(其DAMAGE
不是)字段。
我的目标是:
筛选,仅显示最高等级和受到伤害
排序我怎么会去查询第一板与上述落得片?
以下是实际工作表。如果您想测试解决方案,请随时分叉。
https://docs.google.com/spreadsheets/d/1XG3eTSc-8eYRh-6ekq_2BjZgleUVCz3v45PLozXe8Xo/edit
这似乎完成了工作!现在,我只是想在接受它之前了解它是如何工作的。这次真是万分感谢。 – Koviko
MMULT在A中的每个唯一值的B中找到最高值。'*'是和('+'将是或)。过滤器,与查询不同,保留C列。签名将True/False更改为数字1/0。 –