Как убрать пустые ячейки из сводной таблицы 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 |