2013-11-26 2 views
9

У меня сводная таблица, которая имеет одно из полей (вероятность) в фильтре отчетов. Его значения равны процентам на этапе 5 (0,5,10,15, ..., 100). Я хотел бы использовать его для фильтрации вероятностей, превышающих или равных определенному значению, но фильтр фильтрует только точные варианты.Фильтр отчетов PivotTable с использованием «больше, чем»

На данный момент я использую обходное решение для разрешения нескольких значений, а затем выбирая все значения с порога, который я хочу, до 100 Это решение, помимо неудобства, не отображает мой выбор, что необходимо поскольку эта таблица печатается. Отображаемое значение фильтра - «(Несколько значений)», и я хотел бы показать все выбранные значения или даже лучше, что-то вроде «> = 20%». Меня не волнует, показывают ли они в самой области или в другой ячейке за пределами таблицы сводных данных.

Мои вопросы: 1) Могу ли я фильтровать фильтр на> = моего селектора? Если нет 2) Могу ли я показать несколько вариантов, например «> = 20%»

+0

Не уверен, что я понимаю, но вы попытались добавить по крайней мере одну пустую строку над PT и затем фильтровать столбцы, содержащие PT (с вероятностью как Row Label)? (Изображение может помочь.) – pnuts

ответ

3

В сводной таблице Excel вы правы, что фильтр допускает только значения, которые явно выбраны. Однако, если поле фильтра помещается в строки или столбцы сводной таблицы, вы получаете гораздо более широкий набор условий фильтра меток, включая Greater Than. Если вы сделали это в своем случае, добавленная выгода будет заключаться в том, что различные уровни вероятности, соответствующие вашему состоянию, отображаются в теле таблицы.

+0

К сожалению, Вероятность должна оставаться на уровне страницы. Есть ли способ получить значения выбранного фильтра через VBA? Таким образом, я мог отображать их в ячейке за пределами таблицы ... – Lukasz

+0

Я не уверен, что вы подразумеваете под словом «оставаться на уровне страницы». – MattClarke

+0

Я имею в виду, что он должен оставаться в разделе «Фильтр отчетов». – Lukasz

0

После некоторых исследований я, наконец, получил код VBA, чтобы показать значение фильтра в другой ячейке:

Dim bRepresentAsRange As Boolean, bRangeBroken As Boolean 
Dim sSelection As String 
Dim tbl As Variant 
bRepresentAsRange = False 
bRangeBroker = False 

With Worksheets("Forecast").PivotTables("ForecastbyDivision") 
      ReDim tbl(.PageFields("Probability").PivotItems.Count) 
      For Each fld In .PivotFields("Probability").PivotItems 

       If fld.Visible Then 
        tbl(n) = fld.Name 
        sSelection = sSelection & fld.Name & "," 
        n = n + 1 
        bRepresentAsRange = True 
       Else 
        If bRepresentAsRange Then 
         bRepresentAsRange = False 
         bRangeBroken = True 
        End If 
       End If 

      Next fld 

      If Not bRangeBroken Then 
       Worksheets("Forecast").Range("ProbSelection") = " >= " & tbl(0) 
      Else 
       Worksheets("Forecast").Range("ProbSelection") = Left(sSelection, Len(sSelection) - 1) 
      End If 

     End With 
-1

Используйте фильтр значение. Нажмите стрелку раскрывающегося списка рядом с вашими ярлыками Row, и вы увидите выбор между Sort A to Z, Label Filters и Value Filters. Выбор фильтра с более высоким значением позволит вам выбрать, какой столбец использовать для фильтрации строк, даже если этот столбец не имеет самой ниспадающей стрелки.

4

Я знаю, что это немного поздно, но если это кому-то поможет, я думаю, вы можете добавить столбец к своим данным, который вычисляет, если вероятность равна ">='PivotSheet'$D$2" (ссылку на ячейку на листе pivot table).

Затем добавьте эту колонку в сводную таблицу и используйте новый столбец в качестве фильтра true/false.

Затем вы можете изменить значение, хранящееся в указанной ячейке, чтобы обновить свой порог вероятности.

Если я правильно понял ваш вопрос, это может привести к тому, что вы хотели. Значение фильтра будет отображаться на листе со стержнем и может быть изменено в соответствии с любыми быстрыми изменениями в вашем пороге вероятности. Фильтр T/F может быть помечен как «Above/At Probability Threshold» или что-то в этом роде.

Я использовал это, чтобы сделать что-то подобное. Было удобно иметь ссылку на ячейку на табличке таблицы сводных данных, чтобы я мог обновить значение и обновить опорный элемент, чтобы быстро изменить результаты. Люди, которых я сделал для этого, не могли решить, что это за порог.

0

Возможно, в вашем источнике данных добавьте столбец, который делает sumif поверх всех строк. Не знаете, как выглядят ваши данные, но что-то вроде = (sumif ([столбцы, содержащие опорные столбцы строк), [текущее значение строки строки в строке], столбец вероятности)>. 2). Это даст вам значение True, когда сводная таблица покажет> 20%.
Затем добавьте фильтр на свою сводную таблицу в этом столбце для значений TRUE

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