如何在Google Data Studio中合并字段实现玩家游戏得分图表
在Google Data Studio中实现特定玩家游戏结果图表的方案
核心前提:转换数据结构(宽表→长表)
当前CSV是宽表结构(每个游戏作为单独列),这种结构不适合生成按游戏顺序排列的图表。必须先转成长表结构(每行对应一个玩家的单场游戏数据),才能在Data Studio中灵活制作图表。
1. 宽表转长表的具体操作(以Google Sheet为例)
将原CSV导入Google Sheet后,用公式快速转换:
=QUERY(FLATTEN(A2:A10, B1:I1, B2:I10), "SELECT Col1, Col2, Col3 WHERE Col1 IS NOT NULL AND Col2 IS NOT NULL LABEL Col1 'player', Col2 'game_number', Col3 'score'")
- 说明:
A2:A10:原表的player列范围B1:I1:原表的game1-game8表头B2:I10:原表的得分数据范围- FLATTEN会把三个区域合并为三列,QUERY负责过滤空值并重命名列,最终得到:
player game_number score Alice game1 0 Alice game2 -10 ... ... ...
2. 在Data Studio中创建目标图表
步骤1:导入转换后的长表作为数据源
将转换好的长表链接到Data Studio(确保权限设置正确)。
步骤2:制作折线图(符合game1优先的顺序)
- 添加折线图组件:
- 维度:选择
game_number,进入维度设置,将排序规则设为升序(确保game1作为第一个数据点) - 指标:选择
score(因每个player+game_number组合唯一,直接取数值即可)
- 维度:选择
- 添加玩家过滤器:
- 创建一个下拉过滤器,维度选择
player,设置为“单选”或“多选”,用户可独立选择要查看的玩家,不会出现多用户操作同步变更的问题。
- 创建一个下拉过滤器,维度选择
备选方案:不转表的临时解决(不推荐)
如果暂时无法转换数据结构,可通过Data Studio自定义字段实现,但灵活性差:
- 创建一个参数
Selected Player(文本类型,允许用户选择玩家) - 为每个game创建自定义字段,例如:
Game1得分 = IF(player = @Selected Player, game1, NULL) Game2得分 = IF(player = @Selected Player, game2, NULL) ... Game8得分 = IF(player = @Selected Player, game8, NULL) - 添加组合图表,将每个GameX得分作为系列,手动调整系列顺序为game1到game8。
- 缺点:无法灵活扩展(新增游戏需手动加字段),排序易出错,体验远不如长表方案。
解决多用户同步问题的关键
原Google Sheet中多用户选择行同步变更的问题,本质是共享文档的操作同步特性。而Data Studio的过滤器是用户端独立生效的,每个用户的选择仅对自己的视图生效,完全避免了同步干扰。
内容的提问来源于stack exchange,提问作者Aranlyde
相关产品推荐
相关产品推荐

