摘要:原始数据张三语文李四语文王五语文张三数学李四数学王五数学张三英语李四英语简单去重罗列输出语文语文语文数学数学数学英语英语聚合公式姓名科目成绩输出姓名科目成绩张三语文李四语文王五语文张三数学李四数学王五数学张三英语李四英语交叉聚合公式总分总成
原始数据
let data = { fields: ["name", "subject", "score"], data: [ ["张三", "语文", 86], ["李四", "语文", 92], ["王五", "语文", 56], ["张三", "数学", 100], ["李四", "数学", 88], ["王五", "数学", 98], ["张三", "英语", 62], ["李四", "英语", 83] ] }1. 简单去重罗列
Report.format(data, [{ converge: "v" }, 2, 1])
输出
"score" | "subject" |
---|---|
86 | "语文" |
92 | "语文" |
56 | "语文" |
100 | "数学" |
88 | "数学" |
98 | "数学" |
62 | "英语" |
83 | "英语" |
Report.format(data, [{ converge: "v", formula: "sum" }, 0, 1, 2], { name: "姓名", subject: "科目", score: "成绩" })
输出:
"姓名" | "科目" | "成绩" |
---|---|---|
"张三" | "语文" | 86 |
"李四" | "语文" | 92 |
"王五" | "语文" | 56 |
"张三" | "数学" | 100 |
"李四" | "数学" | 88 |
"王五" | "数学" | 98 |
"张三" | "英语" | 62 |
"李四" | "英语" | 83 |
"" | "" | 665 |
Report.format(data, [{ field: 0, converge: "v", formula: { formula: "sum", label: "总分" } }, { field: 1, converge: "v", formula: { formula: "sum", label: "总成绩" } }, 2])
输出:
"name" | "subject" | "score" |
---|---|---|
"张三" | "语文" | 86 |
"" | "数学" | 100 |
"" | "英语" | 62 |
"" | "总成绩" | 248 |
"李四" | "语文" | 92 |
"" | "数学" | 88 |
"" | "英语" | 83 |
"" | "总成绩" | 263 |
"王五" | "语文" | 56 |
"" | "数学" | 98 |
"" | "总成绩" | 154 |
"总分" | "" | 665 |
Report.format(data, [{ field: 0, converge: "v", formula: "avg" }, { field: 1, converge: "h", formula: "sum" }, 2])
输出:
"name" | "语文" | "数学" | "英语" | "sum" |
---|---|---|---|---|
"张三" | 86 | 100 | 62 | 248 |
"李四" | 92 | 88 | 83 | 263 |
"王五" | 56 | 98 | 0 | 154 |
"avg" | 78.00 | 95.33 | 48.33 | 221.67 |
Report.format(data, [{ field: 0, converge: "v", formula: "avg" }, { field: 1, converge: "h", formula: { detail: false, formula: "sum" } }, 2])
输出:
"name" | "sum" |
---|---|
"张三" | 248 |
"李四" | 263 |
"王五" | 154 |
"avg" | 221.67 |
Report.format(data, [{ converge: "v" }, { field: 1, converge: "v", formula: { formula: "sum", field: 2 } }, 2])
输出:
"subject" | "sum" | "score" |
---|---|---|
"语文" | 234 | 86 |
"" | "" | 92 |
"" | "" | 56 |
"数学" | 286 | 100 |
"" | "" | 88 |
"" | "" | 98 |
"英语" | 145 | 62 |
"" | "" | 83 |
Report.format({ fields: ["province", "city", "count", "industry", "type"], data: [ ["湖北", "武汉", 18000, "房地产", "收入"], ["湖北", "武汉", 10000, "房地产", "收入"], ["湖北", "武汉", 2000, "卫生", "支出"], ["湖北", "武汉", 1200, "卫生", "支出"], ["湖北", "武汉", 8000, "卫生", "收入"], ["湖北", "武汉", 12000, "房地产", "支出"], ["湖北", "黄石", 1500, "卫生", "支出"], ["湖北", "黄石", 3500, "卫生", "收入"], ["湖北", "襄阳", 15800, "房地产", "收入"], ["湖北", "襄阳", 5800, "卫生", "收入"], ["湖北", "襄阳", 11800, "房地产", "支出"], ["湖北", "襄阳", 1800, "卫生", "支出"], ["湖南", "长沙", 16000, "房地产", "收入"], ["湖南", "长沙", 6000, "卫生", "收入"], ["湖南", "长沙", 11500, "房地产", "支出"], ["湖南", "长沙", 1500, "卫生", "支出"], ["湖南", "岳阳", 13600, "房地产", "收入"], ["湖南", "岳阳", 3600, "卫生", "收入"], ["湖南", "岳阳", 11000, "房地产", "支出"], ["湖南", "岳阳", 1000, "卫生", "支出"], ["江西", "南昌", 15400, "房地产", "收入"], ["江西", "南昌", 5400, "卫生", "收入"], ["江西", "南昌", 11800, "房地产", "支出"], ["江西", "南昌", 1800, "卫生", "支出"], ["江西", "九江", 14800, "房地产", "收入"], ["江西", "九江", 4800, "卫生", "收入"], ["江西", "九江", 11600, "房地产", "支出"], ["江西", "九江", 1600, "卫生", "支出"] ] }, [{ field: 0, formula: [{ formula: "sum", label: "全国合计" }], converge: "v" }, { field: 1, formula: [{ formula: "sum", label: "省合计" }], converge: "v" }, { field: 3, formula: [{ formula: "fmt", label: "总利润", format: function(data) { let fmt = 0; for (let i = 0, len = data.length; i < len; i += 2) { fmt += (data[i] - data[i + 1]); } return fmt; } }], converge: "h" }, { field: 4, formula: [{ formula: "fmt", label: "利润", format: function(data) { return data[0] - data[1]; } }], converge: "h" }, { field: 2 }], { province: "省", city: "市" })
输出:
省 | 市 | 房地产 | "" | "" | 卫生 | "" | "" | 总利润 |
---|---|---|---|---|---|---|---|---|
"" | "" | 收入 | 支出 | 利润 | 收入 | 支出 | 利润 | "" |
湖北 | 武汉 | 28000 | 12000 | 16000 | 8000 | 3200 | 4800 | 20800 |
"" | 黄石 | 0 | 0 | 0 | 3500 | 1500 | 2000 | 2000 |
"" | 襄阳 | 15800 | 11800 | 4000 | 5800 | 1800 | 4000 | 8000 |
"" | 省合计 | 43800 | 23800 | 20000 | 17300 | 6500 | 10800 | 30800 |
湖南 | 岳阳 | 13600 | 11000 | 2600 | 3600 | 1000 | 2600 | 5200 |
"" | 长沙 | 16000 | 11500 | 4500 | 6000 | 1500 | 4500 | 9000 |
"" | 省合计 | 29600 | 22500 | 7100 | 9600 | 2500 | 7100 | 14200 |
江西 | 九江 | 14800 | 11600 | 3200 | 4800 | 1600 | 3200 | 6400 |
"" | 南昌 | 15400 | 11800 | 3600 | 5400 | 1800 | 3600 | 7200 |
"" | 省合计 | 30200 | 23400 | 6800 | 10200 | 3400 | 6800 | 13600 |
全国合计 | "" | 103600 | 69700 | 33900 | 37100 | 12400 | 24700 | 58600 |
具体试验,请移步 https://github.com/shixia226/...
欢迎提出更多整改意见
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/108023.html
摘要:行转列,列转行行列转换在做报表分析时还是经常会遇到的,今天就说一下如何实现行列转换吧。列转行假设我们有下表语文数学英语通过即可得到如下结果我们也可以使用下面方法得到同样结果语文语文数学数学英语英语 SQL 行转列,列转行 行列转换在做报表分析时还是经常会遇到的,今天就说一下如何实现行列转换吧。 行列转换就是如下图所示两种展示形式的互相转换 showImg(https://segment...
阅读 2960·2021-11-23 09:51
阅读 2766·2021-11-11 16:55
阅读 2826·2021-10-14 09:43
阅读 1375·2021-09-23 11:22
阅读 1017·2019-08-30 11:04
阅读 1637·2019-08-29 11:10
阅读 929·2019-08-27 10:56
阅读 3079·2019-08-26 12:01