google-sheets - 如何使用 Google 表格公式将数据矩阵转换为关系表?
问题描述
我有一组矩阵形式的数据,我正在尝试使用一个公式从该矩阵生成一个关系表。这是我要实现的目标的说明:
矩阵:
| 3/5 | 4/5 | 5/5 |
---------------------------
Player1 | 1 | 0 | 1 |
Player2 | 0 | 1 | 2 |
Player3 | 1 | 1 | 2 |
目标:
Player | Date | Value |
------------------------
Player1 | 3/5 | 1 |
Player3 | 3/5 | 1 |
Player2 | 4/5 | 1 |
Player3 | 4/5 | 1 |
Player1 | 5/5 | 1 |
Player2 | 5/5 | 2 |
Player3 | 5/5 | 2 |
在此处查看真实数据: https ://docs.google.com/spreadsheets/d/1DNaoBnYMNbznUoAJahW9-UfGq6LbTG3TXgXPz90bWas
无论如何,我按照这个答案中的说明提出了这个公式:
=ArrayFormula(QUERY(VLOOKUP(HLOOKUP(matrix!A3,matrix!A3:A,INT((ROW(matrix!A3:A)-
ROW(matrix!A3))/COLUMNS(matrix!B1:Z1))+1,0),{matrix!A3:T, IF(ROW(matrix!A3:A),
matrix!B1:Z1)}, {SIGN(ROW(matrix!A3:A)), MOD(ROW(matrix!A3:A) -
ROW(matrix!A3), COLUMNS(matrix!B1:Z1)) + {2, 2+COLUMNS(matrix!B1:Z1)} }, 0 ),
"select Col1, Col3, Col2 where Col2 is not null and Col2 != 0 order by
Col3,Col2", 0))`
它确实可以工作,但缺点是要生成行,它在矩阵表中使用了很多空行,并且实际上要求矩阵表至少有 numCols*numRows 行数。现在我可以在矩阵中添加 3500 个空行并完成它,但不知何故,感觉应该有更好的方法。关于如何改进它的任何想法?
解决方案
推荐阅读
- azure-logic-apps - 逻辑应用将 CSV 文件保存为 Blob 存储中的字节
- android - 基于 MessageList 排序用户列表 - Kotlin & Android
- javascript - 如何通过反应从集合中删除/编辑 Firestore 文档
- c# - Xamarin Android FirebaseDatabase 空指针异常
- c++ - C++ cin 在没有任何输入的情况下被跳过
- reactjs - 用户认证后反应组件不呈现
- html - HTML 表单中的标签不会居中
- docker - 来自 Docker 的 NEO4j 因果集群无法从 Jupyter Hub 访问
- javascript - Anime.js 动画无法启动
- python - 在python中对文本文件执行多个写操作