如何在Google Sheets中用SQL查询将数据按日期列展示状态?
在Google Sheets中用SQL实现行转列(日期转列展示状态)
方法一:使用QUERY函数(SQL方式)
假设你的原始数据位于A1:C10(包含表头),可以直接用带PIVOT的QUERY语句实现需求:
=QUERY(A1:C10, "SELECT Name, MAX(Status) WHERE Name IS NOT NULL GROUP BY Name PIVOT Date")
- 说明:
GROUP BY Name按姓名分组,PIVOT Date将日期字段的唯一值转为列名;用MAX(Status)是因为每个「姓名+日期」组合只有一个状态值,MAX/MIN/ANY都能精准提取该唯一值,避免默认的聚合行为。
方法二:修正数据透视表操作
如果你之前用透视表失败,是因为默认的汇总方式不对,正确步骤:
- 选中整个数据集(含表头)
- 点击菜单栏「数据」→「数据透视表」
- 在右侧编辑器中:
- 将「Name」拖至「行」区域
- 将「Date」拖至「列」区域
- 将「Status」拖至「值」区域,点击值区域的「Status」选项,选择「汇总方式」→「最小值」(或最大值),即可显示对应日期的状态,而非计数/求和结果。
内容的提问来源于stack exchange,提问作者Jaco Annandale
相关产品推荐
相关产品推荐

