我在Excel 2007中并使用SQL查询将两个测试装备中的通过/失败数据拉入数据透视表。以下是我当前/理想的输出,请原谅日期的格式!
我已尝试过值字段设置>将值显示为列的百分比,但这不能正常工作,因为它还会划分装备之间的通过率。我发现了更改父列的引用,但这似乎是Excel 2010以后的版本。有人能指出我正确的方向吗?
当前输出
Pass Rate Date
Outcome 2013-12-05 2013-12-08 2013-12-09 2013-12-10 2013-12-11
F 67 17 50 62 51
RigOne 33 11 31 25 27
RigTwo 34 6 19 37 24
P 80 29 54 79 46
RigOne 50 21 32 42 21
RigTwo 30 8 22 37 25
Grand Total 147 46 104 141 97
理想输出
Pass Rate Date
2013-12-05 2013-12-08 2013-12-09 2013-12-10 2013-12-11
RigOne %% %% %% %% %%
RigTwo %% %% %% %% %%
Average %% %% %% %% %%
答案 0 :(得分:0)
如果这是你想要的结果:
然后,假设您的源数据分为四列:Rig,Date,Outcome和Value:
Fail
和数据透视表工具>选项>工具 - 公式,计算项目...为名称添加平均值:并在公式中:放置=Pass/(Pass +Fail )
。 答案 1 :(得分:0)
我实际上设法通过更改我的SQL查询来提供输入pnuts建议。一旦我更改了代码,它就非常简单了 - 我只是为每个装备创建了一个计算字段,将通过次数除以测试次数以及两者的平均值,然后将它们格式化为百分比。如果它对任何人都有用,我在下面包含了我的SQL。可能非常笨拙,但它给出了正确答案!
SELECT CONVERT (Date, [Stamp]) AS Date
,SUM(case when Pass='P' and TestRig = 'Rig 1' THEN 1 ELSE 0 END) AS R1Passes
,SUM(case when Pass='P' and TestRig = 'Rig 2' THEN 1 ELSE 0 END) AS R2Passes
,SUM(case when Pass IN ('P', 'F') and TestRig = 'Rig 1' THEN 1 ELSE 0 END) AS R1Tests
,SUM(case when Pass IN ('P', 'F') and TestRig = 'Rig 2' THEN 1 ELSE 0 END) AS R2Tests
FROM [dbase].[dbo].[tbl_Results]
where Stamp > '2013-12-01'
and TestName = 'Finished'
GROUP BY CONVERT (Date, [Stamp])