Google Sheets双列玩家数据表格公式输出显示异常问题求助
问题描述
我在Sheet 1中存放比赛数据记录,Sheet 2设置了每位玩家的统计数据区域。为实现新增玩家时自动生成对应数据区域,编写了如下公式:
TRANSPOSE(UNIQUE(FILTER('Match Records'!$A$3:$A,'Match Records'!$A$3:$A<>"Date:",'Match Records'!$A$3:$A<>"Players:",'Match Records'!$A$3:$A<>"",'Match Records'!$A$3:$A<>"-")))
但由于玩家数据表格为2列宽,目前只能显示每隔一个的玩家。希望在保留表格2列宽的前提下调整公式解决该问题。
示例数据
单玩家统计区域模板
| Mango |
|---|
| 游戏场次: |
| 获胜次数: |
| 失败次数: |
| 胜率: |
| 平均获胜时长: |
| 平均排名: |
| 最佳卡组: |
| 最常用卡组: |
比赛数据记录样例
| 日期: | 4/22/26 | 开始时间: | 15:15 | 结束时间: | 16:30 |
|---|---|---|---|---|---|
| 玩家: | 排名: | 落败回合: | 失败原因: | 卡组: | 回合顺序: |
| Mango | 1 | - | - | Valgavoth | 4 |
| Alex | 2 | 8 | Combat | Sin | 1 |
| Ion | 3 | 8 | Combat | Erestor | 3 |
| Aiden | 4 | 7 | Combat | Hearthhull | 2 |
解决方案
直接用WRAPCOLS函数替代TRANSPOSE,就能把唯一玩家列表按2列自动拆分,完美适配你的表格布局:
WRAPCOLS(UNIQUE(FILTER('Match Records'!$A$3:$A,'Match Records'!$A$3:$A<>"Date:",'Match Records'!$A$3:$A<>"Players:",'Match Records'!$A$3:$A<>"",'Match Records'!$A$3:$A<>"-")), 2)
公式逻辑
- 原有的
UNIQUE+FILTER部分保留:从比赛记录中筛选出所有有效玩家名称并去重 WRAPCOLS(..., 2):将筛选后的玩家列表按每2个玩家一行的格式排列,新增玩家时会自动向下填充,不会出现间隔显示的问题
如果你的Google Sheets版本不支持WRAPCOLS,可以用兼容旧版本的公式:
INDEX(UNIQUE(FILTER('Match Records'!$A$3:$A,'Match Records'!$A$3:$A<>"Date:",'Match Records'!$A$3:$A<>"Players:",'Match Records'!$A$3:$A<>"",'Match Records'!$A$3:$A<>"-")), SEQUENCE(ROUNDUP(COUNTA(UNIQUE(FILTER('Match Records'!$A$3:$A,'Match Records'!$A$3:$A<>"Date:",'Match Records'!$A$3:$A<>"Players:",'Match Records'!$A$3:$A<>"",'Match Records'!$A$3:$A<>"-"))/2),1),2,1))
这个公式通过计算玩家总数生成对应行列序列,从唯一玩家列表中按2列取数,效果和WRAPCOLS完全一致。
内容的提问来源于stack exchange,提问作者Mango
相关产品推荐
相关产品推荐

