摘要:原始數據張三語文李四語文王五語文張三數學李四數學王五數學張三英語李四英語簡單去重羅列輸出語文語文語文數學數學數學英語英語聚合公式姓名科目成績輸出姓名科目成績張三語文李四語文王五語文張三數學李四數學王五數學張三英語李四英語交叉聚合公式總分總成
原始數據
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/...
歡迎提出更多整改意見
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108023.html
摘要:行轉列,列轉行行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。列轉行假設我們有下表語文數學英語通過即可得到如下結果我們也可以使用下面方法得到同樣結果語文語文數學數學英語英語 SQL 行轉列,列轉行 行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。 行列轉換就是如下圖所示兩種展示形式的互相轉換 showImg(https://segment...
閱讀 2996·2021-11-23 09:51
閱讀 2817·2021-11-11 16:55
閱讀 2926·2021-10-14 09:43
閱讀 1402·2021-09-23 11:22
閱讀 1044·2019-08-30 11:04
閱讀 1673·2019-08-29 11:10
閱讀 965·2019-08-27 10:56
閱讀 3115·2019-08-26 12:01