使用Google电子表格的Google Chart

时间:2014-02-28 09:28:14

标签: google-visualization google-sheets

我想在Google电子表格中创建包含数据的自定义图表。但它没有那么好用。你能给我一些建议吗?

这是我的电子表格中的考勤数据的数据结构

Date   | John | Allen | Danny
11 Feb | Yes  | No    | Yes
12 Feb | No   | Yes   | Yes
13 Feb | Yes  | Yes   | Yes
  1. 我想为每一天创建一个出勤图表,显示所有日子的总和(例如,2月11日的2个人,2月12日的2个人)。我知道如何获取数据,但如何在Google Chart脚本中进行总结呢?
  2. 我想在一段时间内(例如2月/ 3月)为每个人创建一个出勤图表。另外我想创建一个日期过滤器。我再次无法总结每个人的“是”。
  3. 提前致谢

1 个答案:

答案 0 :(得分:0)

要创建每日出勤率图表,您需要使用带有计算列的DataView,并将每天的“是”值相加:

var view = new google.visualization.DataView(data);
view.setColumns([0, {
    type: 'number',
    label: 'Attendance',
    calc: function (dt, row) {
        // assumes all columns after the first are yes/no columns for tracking attendance
        var attendance = 0;
        for (var i = 1; i < dt.getNumberOfColumns(); i++) {
            attendance += (dt.getValue(row, i) == 'Yes') ? 1 : 0;
        }
        return attendance;
    }
}]);

要按人员出勤,您需要使用google.visualization.data.group功能:

var groupColumns = [];
for (var i = 1; i < data.getNumberOfColumns(); i++) {
    groupColumns.push({
        type: 'number',
        label: data.getColumnLabel(i),
        aggregation: function (vals) {
            var attendance = 0;
            for (var j = 0; j < vals.length; j++) {
                attendance += (vals[j] == 'Yes') ? 1 : 0;
            }
            return attendance;
        }
    });
}
var groupedData = google.visualization.data.group(data, [{
    type: 'number',
    column: 0,
    modifier: function () {return 0;}
}], groupColumns);