2013-12-11 6 views
0

Я в 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

Мне действительно удалось это сделать, изменив свой SQL-запрос, чтобы предоставить предложенные входы. Как только я изменил код, это было довольно просто - я только что создал поле вычисления для каждой буровой установки, чтобы разделить количество проходов на количество тестов, а также среднее из них, а затем отформатировало их в процентах. В случае, если это полезно для всех, кого я включил в свой 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]) 
0

Если это результат, который вы хотели бы:

SO20518715 example

затем, предполагая исходные данные в четырех столбцах : Rig, дата, результат и стоимость:

  1. Создайте PT с Rig для ярлыков строк, даты и результатов (сверху вниз) для меток столбцов и суммы стоимости для значений Σ.
  2. В Быстром меню, Параметры сводной таблицы ..., итоговые значения & Фильтры снимите флажок Показать итоговые суммы для строк.
  3. Выберите Fail и в сводных таблицах> Параметры> Инструменты - Формулы, Рассчитанный элемент ... добавить Среднее значение для имени: и в формуле: положить =Pass/(Pass +Fail).
  4. Выберите «Средняя» и «Сортировка от А до Я».
  5. В строке ниже общая сумма средневзвешенных процентных ставок рассчитывается при каждой средней дате.
  6. Установите цвет шрифта для Grand Total row, чтобы соответствовать цвету заливки.
  7. Скрыть колонтитулы пропуска/неудачи и строки строк.
  8. Смена ячеек для передачи скорости и даты.
  9. Формат в соответствии.
+0

Привет! К сожалению, это не так просто - мои столбцы - это Rig, Date и Endcome, результатом является либо P, либо F. К сожалению, это часть кодирования тестовых установок, поэтому я не контролирую ситуацию. Я пытался использовать COUNT (Pass) в вычисленном поле, чтобы дать мне общее количество, а COUNTIF (Pass = «P»), чтобы дать мне счет прохода, а затем использовать другое вычисленное поле, чтобы дать мне мой процент. .. Однако COUNT (Pass) всегда дает мне результат 1, а COUNTIF не является действительным в вычисленном поле. – Tom

+0

Поле «отсутствует» похоже на то, что я назвал Value - которое появилось из вашего текущего примера вывода. – pnuts

Смежные вопросы