Как убрать пустые ячейки из сводной таблицы Excel 2010

Наличие пустых ячеек в сводной таблице раздражает многих пользователей. Причем существуют две категории пустых ячеек, от которых хотят избавиться многие пользователи. Во-первых, пустые ячейки могут отображаться в области значений в случае отсутствия определенных записей. Поскольку наличие пробелов раздражает многих пользователей, в подобных случаях лучше отображать нули.

Во-вторых, пустые ячейки могут также отображаться в области строк при наличии нескольких полей строк. Например, как показано на рис. 12.11, в левой колонке отображается название Мини-пекарни, ниже которого выводятся пустые ячейки. Для заполнения пустых ячеек можно воспользоваться новым свойством повторения подписей данных, которое появилось в Excel 2010 и о котором можно прочитать на filetypes.ru. Для замены пробелов нулями в области значений можно воспользоваться следующим кодом:

1
PT.NullString = "0"

Хотя в коде свойство принимает текстовый нуль, программа Excel помещает в пустые ячейки реальный числовой нуль.

Для заполнения пустых ячеек нулями в Excel 2010 используется следующий код:

1
РТ.RepeatAllLabels xlRepeatLabels

Код, основанный на использовании метода .RepeatAllLabels, не будет работать в Excel 2007 и в устаревших версиях Excel. Единственный выход заключается в преобразовании сводной таблицы в значения с последующим заполнением пустых ячеек с помощью формулы, которая берет значение из расположенной выше строки.

1
2
3
4
5
6
7
8
9
10
11
12
Dim FillRange As Range
Set PT - ActiveSheet.PivotTables("PivotTable1")
//Поиск внешнего столбца строки
Set FillRange = PT.TableRange1.Resize(, 1)
//Преобразование всей таблицы в значения
PT.TableRange2.Сору
PT.TableRange2.PasteSpecial slPasteValues
//Заполнение пустых ячеек величинами из находящейся выше строки
FillRange.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = _
"=R[-1]C"
//Преобразование формул в значения
FillRange.Value = FillRange.Value
Top