2013-08-07 3 views
1

У меня сводная таблица на основе PowerPivot с несколькими уровнями в разделе «Строки». Довольно много элементов пустые. Есть ли способ подавить пустые строки?Удаление незаполненных записей таблицы Excel Excel

В настоящее время мой сводный стол выглядит так.

Product1 
    Release 1 
     Iteration 1 
      (blank) 
     Iteration 2 
      (blank) 
    Release 2 
     (blank) 
      (blank) 
Product2 
    (blank) 
Product3 
    Release 1 
     Iteration 1 
      Sprint 1 
      (blank) 
     (blank) 
(blank) 

Это то, что я хочу, чтобы это выглядело как

Product1 
    Release 1 
     Iteration 1 
     Iteration 2 
    Release 2 
Product2 
Product3 
    Release 1 
     Iteration 1 
      Sprint 1 

Это просто пример. Я попытался установить фильтры для каждого уровня, чтобы не отображать пробелы, но если я фильтрую каждый уровень, чтобы скрыть пустые поля, в сводной таблице нет никаких элементов. Кажется, что Excel заканчивает фильтрацию каждого уровня, у которого есть ЛЮБЫЕ пустые значения.

Не уверен, что я имел смысл или предоставил достаточно информации для устранения неполадок. В настоящий момент я почти мертв, поэтому извиняюсь.

Пожалуйста, дайте мне знать, если это не имеет смысла, или я могу предоставить любую дополнительную информацию, чтобы уточнить, что я пытаюсь сделать и встретить.

Спасибо.

EDIT: Изменен блок кода, чтобы он был более понятным и добавил блок кода «после», чтобы показать, к чему я хочу добраться. Я думаю, проблема в том, что «глубина» строк для всей сводной таблицы должна быть одинаковой. Например, если у меня есть 3 отступов для первого элемента, остальные должны также отображать 3 уровня данных с отступом. Если я скрою пробелы, и это приведет к 1-значной стоимости данных для первого элемента, это скроет не-пробелы для других элементов, если они появятся после 1 отступа. Все еще не уверен, что это имеет смысл :) Мне нужно немного поспать.

ответ

1

В результате я использовал Flattened PivotTable вместо экрана PowerPivot «Управление». Казалось, это то, что мне нужно.

+1

В качестве примечания, эти пробелы могут возникать, если вы выбираете весь лист для вставки сводной таблицы, а не только для данных, которые вы хотите в сводной таблице. – Adjit

+0

@Adjit, Спасибо, это, по-видимому, также работает при создании программного обеспечения с помощью epplus. –

1

Я думаю, вы должны быть в состоянии проверить Show items with no data on rows и/или Show items with no data on columns на дисплее под вариантами сводной таблицы.

+0

Пробовал это, но не повезло, к сожалению. Спасибо за ответ, хотя. Любые другие идеи, которые я мог бы попробовать? – Predator

+0

Не беспокойтесь :) Спасибо, pnuts. – Predator

+0

Да, я не повезло. Он обновляется, как только я устанавливаю фильтр. – Predator

0

Попробуйте выбрать ячейку в сводной таблице «blank» нажмите кнопку удаления и нажмите пробел.

0

Не знаю, почему и как это работает, но я выбрал одну из ячеек в сводной таблице, которая содержала (пробел), а затем горячую пробел. Затем я ударил ключ возврата, и все (пустые) ячейки в том же столбце были пустыми. Повторите это для других столбцов в таблице.

1

Мне нужно было решить ту же проблему, но я хотел, чтобы строки были спрятаны автоматически, когда была изменена фильтрация с прямыми сигналами или данные были обновлены, поэтому я написал функцию, вызванную из события «Worksheet_PivotTableUpdate» на листе. в то время как вы можете отключить его, если хотите, я полагаю. Это первоначально выполняло задание, сканируя каждую строку в pivottable, скрывая ее, если она была видна и не нуждалась (поскольку первая ячейка строки была «(пустой)») или показывала ее, если она была скрыта и должна была иначе, оставив его скрытым или видимым, как было.

Однако, я обнаружил, что функция работает очень медленно, так что вот моя следующая попытка, которая изначально не скрывает все строки в pivottable, затем идет и находит все пустые ячейки в первом столбце, добавляя их в диапазон объект, то он скрывает всю строку для каждой ячейки в этом диапазоне.Эта версия работает примерно в десять раз быстрее :-)

Передайте имя листа, на котором находится pivottable, имя подписи и необязательная строка для поиска в строках, которые должны быть скрыты; это значение по умолчанию равно '(пустое)', если оно не задано вызывающей функцией.

Извиняюсь заранее, если я ссориться с переменной или функции именования чьих-либо (я только хакер ;-))

Sub FixBlankPivotRowsV2(ByVal SheetName As String, ByVal PivotName As String, Optional HideDefn as String = "(blank)") 
Dim CurrPivot As PivotTable 
Dim CurrRow As Range 
Dim BlankRange As Range  'NB This is where we'll build the range of things to hide, which will initially be Nothing, as we never initialise it. 
Dim oldStatusBar As Boolean 

'Show a nice message in the status bar 
oldStatusBar = Application.DisplayStatusBar 
Application.DisplayStatusBar = True 
Application.StatusBar = "Hiding blank entries in " & SheetName & ", back in a sec..." 
Application.ScreenUpdating = False 

'Get the pivottable to work with   
Set CurrPivot = ActiveWorkbook.Sheets(SheetName).PivotTables(PivotName) 

'Unhide all of the pivot rows first 
CurrPivot.RowRange.Rows.EntireRow.Hidden = False 

'Loop around each row in the pivottable 
For Each CurrRow In CurrPivot.RowRange.Rows 
    If CurrRow.Offset(0, 0).value = HideDefn Then 
     If BlankRange Is Nothing Then 
      'This is the first blank row we've found, so just set the range up to be the first cell of that range 
      Set BlankRange = CurrRow.Offset(0, 0) 
     Else 
      'Add the newly found blank row to the range using a Union 
      Set BlankRange = Union(BlankRange, CurrRow.Offset(0, 0)) 
     End If 
    End If 
Next 

'Only hide things if there's anything to hide! 
If BlankRange Is Nothing Then 
    Debug.Print "Nothing to hide!" 
Else 
    BlankRange.EntireRow.Hidden = True 
End If 

'Set the status bar back the way it was 
Application.ScreenUpdating = True 
Application.StatusBar = False 
Application.DisplayStatusBar = oldStatusBar 
End Sub 

Я искал способ, чтобы выбрать все из ячеек «ЗАГОТОВКИ» в первом столбце, используя одну из функций типа Go To Special, но не смог найти ничего, что соответствовало бы счету, поэтому, пожалуйста, дайте мне знать, знаете ли вы, как это сделать, поскольку это ускорит это еще больше.

Я надеюсь, что это поможет кому-то!

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