Сводная таблица с метками, которых нет в исходных данных - PullRequest
3 голосов
/ 28 июня 2019

Я унаследовал существующую таблицу данных, но с нулевыми данными, с сводными таблицами, которые уже были созданы заранее, и которые также были обновлены, чтобы быть пустыми (сохраняются только заголовки и форматирование).Теперь, когда я ввожу «A» в таблицу, вместо этого в сводной таблице будет отображаться запись для метки «B».Когда я дважды щелкаю по значению в этой строке, чтобы показать источник, он отображается как «A».Есть две записи, которые отображаются таким образом, в то время как другие данные в порядке.

Я знаю, что вы можете переименовывать метки сводных элементов, но каким-то образом "хранит" эту информацию даже после того, как вы стерли таблицуи обновил сводную таблицу?Это что-то очень новое для меня за 12 с лишним лет, которыми я пользуюсь Excel.

Некоторые вещи, которые я пробовал:

  • Сброс исходных данных и обновление = та же проблема, «A» по-прежнему отображается как «B»
  • Количество элементов, сохраняемых в поле: Нет = Все та же проблема после обновления
  • Создать новую сводную таблицу = Это решает проблему, "A", наконец, отображается как "A"

Ответы [ 2 ]

4 голосов
/ 28 июня 2019

Когда вы создаете сводную таблицу, вы можете переименовать метки в сводной таблице, и они будут сохранены с новым именем.

Скажем, у вас есть A, B, C в ваших данных, выможно переименовать C в D в сводной таблице, и с этого момента значение C будет отображаться как D, даже если вы обновите данные, даже если вы измените данные или удалите все строки.Но не если вы измените имена столбцов в ваших данных, см. Ниже.

Это хорошая функция: например, когда у вас есть таблица с кодами, вы можете переименовывать коды в метки в сводной таблице, безVLOOKUP.


Здесь описано, как сбросить измененные метки с здесь .

  1. Переименовать заголовок / имя столбца в источнике
  2. Обновить сводку.Это приведет к удалению всех принудительных меток и удалению поля из сводной таблицы.
  3. Переименуйте имя столбца обратно в прежнее значение
  4. Снова обновите сводную панель
  5. Добавьте поле обратно в сводную..

Обратите внимание, что вы не можете сделать это с помощью сводных таблиц SSAS.

1 голос
/ 01 июля 2019

По запросу, вот пример для поиска таких переименованных сводных полей через VBA.

Это предназначено для сводных таблиц, где SourceData - это Range (не куб OLAP).
Пропуск ошибкивключен для сводных таблиц, где «Значения» отображаются в виде поля столбца, так как у такого поля столбца нет SourceName.

Private Sub ResetPivotfieldNames()
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim test As String

    For Each ws In ActiveWorkbook.Worksheets
        For Each pt In ws.PivotTables
            For Each pf In pt.PivotFields
                On Error Resume Next
                test = pf.SourceName
                If Err.Number = 0 Then
                    If pf.Name <> pf.SourceName Then
                        If MsgBox("On worksheet: " & ws.Name & vbCrLf & _
                            "in pivottable: " & pt.Name & vbCrLf & _
                            "the pivotfield: " & pf.SourceName & vbCrLf & _
                            "was renamed to: " & pf.Name, _
                            vbOKCancel, "Try to rename?") = vbOK Then
                                pf.Name = pf.SourceName
                        End If
                    End If
                End If
                On Error GoTo 0
            Next pf
        Next pt
    Next ws

End Sub
...