创建包含多个调查结果的Excel图表

时间:2012-04-15 10:25:01

标签: excel graph charts excel-vba pie-chart vba

我最近做了一项调查,最多有10个问题。现在我需要从值中创建一个图形,但是卡住了。数据如下:

Customer ID Q1  Q2  Q3  Q4  Q5                      Q6  Q7  Q8  Q9  Q10
1797493605  Yes Yes Yes Yes Compare totals          Yes Yes Yes Yes None of the above
1797155787  Yes Yes Yes Yes Compare prices          Yes Yes No  Yes None of the above
1797116920  Yes Yes Yes Yes Compare totals          No  No  Yes No  Catalogues
1797105343  Yes Yes Yes Yes Compare prices          Yes Yes Yes Yes None of the above
1797076252  Yes Yes Yes Yes Same places             Yes Yes Yes No  None of the above
1797015113  No  No  No  No  Everything online       No  No  No  No  None of the above
1796959310  Yes Yes Yes Yes Compare prices          Yes No  No  Yes None of the above
1796950913  Yes Yes Yes Yes Compare prices          Yes Yes Yes Yes Catalogues
1796931846  Yes Yes No  Yes Compare prices          Yes No  Yes Yes Email/SMS

我尝试使用Excel正常功能,但它没有提供正确的图形。

希望得到一个条形图,每个问题都有2个条形 - 每个答案。 X轴有问题而Y轴是回答的人数吗?

那么数据值是否应该是实际的是,否,?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您不关心客户ID。

你想要得到的是这种格式的网格,其中第1行是你的标题(我在这里制作数字):

|     |  A   |  B  |  C   |
===========================
|  1  |  Q   |  #Y |  #N  |
|  2  |  Q1  |  6  |  1   |
|  3  |  Q2  |  5  |  2   |
|  4  |  Q3  |  2  |  5   |

为了填充单元格B2(其中包含YES Q1=SUMIF($B$2:$B$10,"YES") 的答案,您可以在网格中使用这样的公式:

SUMIF()

B2公式计算网格Q1列中“YES”响应的数量。

(我假设在您的网格中“Q1”响应包含在单元格B10至{{1}}中。)

构建该表,然后您将能够突出显示该表,单击Excel图表向导,并将其操作到您正在寻找的条形图中。

如果那不是你的答案,你需要更具体地了解你想要实现的目标。

答案 1 :(得分:1)

如果我正确理解您的问题,您希望使用您显示的数据格式创建特定的条形图。

正如Marc指出的那样,要在原生Excel中创建所需的图形,您必须重新排列数据。

但是,如果您想以相同的格式保存数据,我建议您编写Javascript以在Excel中绘制此图表。这是我为您编写的工作代码:

https://www.funfun.io/1/edit/5a463a3fb848f771fbcdef58

首先,我在这个例子中做的是用json文件获取数据:

{ "data": "=A1:J9" }

在访问它之后,我使用javascript选择我需要的数据并选择一个库来创建我的条形图(这里我使用了chart.js,它很容易使用):

  var myBarChart = new Chart(ctx, {
  type: 'bar',
  data: data,
  options: {
    title: {
        display: true, 
       text: "Excel chart with multiple survey results" 
      },
    barValueSpacing: 20,
    scales: {
      yAxes: [{
        ticks: {
          min: 0,
          max: 10
        }
      }]
    }
  }
});

如果这是您所使用的图表,则可以通过粘贴Funfun add-in中的网址,直接在电子表格中加载我的代码。这是它的样子:

https://i.stack.imgur.com/LWjZc.png

您当然可以在在线编辑器或Excel中的嵌入式编辑器中修改代码。您可以添加不同于YesNo的其他标签,您可以为每个名为Compare price的问题设置第三个标签。

理论上,您可以编写任何您想要的代码,包括使用功能强大的库(如chart.js和plotly.js)创建复杂的图表。

我希望我能回答你的问题,如果不是,请不要犹豫,在下面发表评论。

披露:我是Funfun的开发者。

答案 2 :(得分:0)

听起来你想要一张桌子。客户ID作为列标题,Q1-Q10作为行标题。你所呈现的转置版本。