我有一張表格,裏面保存了我想要在另一張表格中進行過濾和排序的原始數據。我如何爲只有一列的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。 –