Excel в сводной таблице вместо даты месяц

 

alvevo

Пользователь

Сообщений: 18
Регистрация: 15.05.2013

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

Изменено: alvevo15.05.2013 20:26:46

 

Z

Пользователь

Сообщений: 6111
Регистрация: 21.12.2012

Win 10, MSO 2013 SP1

#2

15.05.2013 12:49:15

Цитата
alvevo пишет: Подскажите, есть ли решение?

Сделайте, как вариант, в данных дубль поля с датами —  по одному группировка, по второму — нет… ;)

«Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)

 

alvevo

Пользователь

Сообщений: 18
Регистрация: 15.05.2013

Это как-то не комильфо. Да и в сводной в итоге глупость получится — две колонки с датами в разных форматах.

Хотелось бы более элегантного решения.

Изменено: alvevo15.05.2013 20:27:26

 

При группировке по датам изменить формат отображения невозможно.

 

alvevo

Пользователь

Сообщений: 18
Регистрация: 15.05.2013

 

CfifNfyz

Пользователь

Сообщений: 4
Регистрация: 20.12.2016

#6

20.12.2016 11:13:37

Цитата
Михаил С. написал:
При группировке по датам изменить формат отображения невозможно.

Здравствуйте!
Тоже столкнулась с аналогичной проблемой невозможности изменить  формат даты в итоговой строке сводной таблицы.
Подскажите, за три прошедших года решения проблемы не нашлось?

Изменено: CfifNfyz20.12.2016 11:14:14

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#7

20.12.2016 12:02:09

Доброе время суток.

Цитата
CfifNfyz написал:
изменить  формат даты в итоговой строке

Что значит формат даты в итоговой строке? А в общем, решение простое, создать в таблице столбец(ы) с требумым форматом даты для последующей группировки. Возможно, при этом потребуется создать список(и) для указания правильной сортировки в сводной (подобно списку названий месяцев).

 

CfifNfyz

Пользователь

Сообщений: 4
Регистрация: 20.12.2016

Проблема в следующем: изначально был формат даты типа 01.01.2015. Соответственно итоги выглядели как «01.01.2015 итого»
Формат изменила на «Январь 2015», а в итоговой строке остался прежний формат «01.01.2015 итого».

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

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#9

20.12.2016 12:30:01

Цитата
CfifNfyz написал:
В одной таблице… а в другой таблице….

Можете продемострировать в файле-примере?

 

CfifNfyz

Пользователь

Сообщений: 4
Регистрация: 20.12.2016

Файл Excel с примером загрузить не могу, ругается на объем больше 100 кб, хотя уменьшала как могла.
Поэтому покажу на принскринах:
В одном случае дает изменить настройку поля и поменять формат, а в другом случае нет, хотя сами поля  в таблицах идентичны.

Проблему удалось решить только созданием новой таблицы, старую так и не удалось побороть.
Спасибо за участие.

Прикрепленные файлы

  • 11.jpg (35.64 КБ)
  • 22.jpg (60.41 КБ)

 

karinana

Пользователь

Сообщений: 1
Регистрация: 06.06.2017

Правой кнопкой по столбцу сводной таблицы — Ungroup.

 

guard1988

Пользователь

Сообщений: 2
Регистрация: 22.12.2018

karinana, Вы — гений, спасибо!

 

Янек

Пользователь

Сообщений: 1
Регистрация: 10.05.2018

karinana, спасибо большое!!!

 

freddemo

Пользователь

Сообщений: 6
Регистрация: 10.03.2019

 

RoboFish

Пользователь

Сообщений: 12
Регистрация: 11.10.2019

karinana, спасибо большое!

 

Добрый день.
Если в сводной таблице навести на список дат (или сгруппированных периодов) нажать правой кнопкой, то можно выбрать Группировать / Разгруппировать.
В большинстве случаев это помогает.
Бывает, что даты выгружаются из баз данных в апострофом ( ‘ ). В этом случае их перевести в другой вид можно =—«ссылка на ячейку с датой». Обычно это ошибку исправляет и дает возможность группировать и разгруппировывать периоды.

 
 

abc4987

Пользователь

Сообщений: 2
Регистрация: 02.02.2018

#18

13.03.2022 13:52:42

Цитата
написал:
Подскажите, есть ли решение?

Параметры поля > Числовой формат > Формат ячеек

https://disk.yandex.ru/d/VKD-SMj54baYjg

Изменено: abc498713.03.2022 13:57:21

 

mitox

Пользователь

Сообщений: 298
Регистрация: 20.01.2020

karinana, спасибо большое

 

dend88

Пользователь

Сообщений: 12
Регистрация: 29.04.2019

#20

24.03.2023 16:04:17

karinana

, Вы — золотце, Дай бог вам здоровья!

На чтение 7 мин. Просмотров 36.3k.

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

Уровень мастерства: Средний

Pivot Table Grouped Day Field Number Formatting

Изменение формата для дат не работает

Когда мы группируем поле «Дата» в сводной таблице с помощью функции «Группировать», форматирование чисел для поля «День» фиксируется. Он имеет следующий формат «день-месяц» или «d-ммм».

Если мы попытаемся изменить числовой формат поля День/Дата, это не сработает. Ничего не меняется, когда мы заходим в Настройки поля> Числовой формат и меняем числовой формат на пользовательский или формат даты.

Почему?

Changing Number Formatting of Grouped Field Day Does Not Work

Форматирование чисел не работает, потому что элемент сводки
— это фактически текст, а НЕ дата.

Когда мы группируем поля, функция группирования создает
элемент Дни для каждого дня одного года. Он сохраняет название месяца в именах
полей Day, и фактически это группа номеров дней (1-31) для каждого месяца.

На самом деле можно увидеть этот список текстовых элементов в файле pivotCacheDefinition.xml. Чтобы увидеть, что вы можете изменить расширение файла Excel на .zip и перейти к папке PivotCache.

pivotCache XML for Days Group

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

Решение № 1 — Не используйте группы дат

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

Я подробно объясняю это в своей статье «Группировка дат в сводной таблице». Источник данных.

Pivot Table Date Groups vs Source Data Date Groups in Excel

Использование собственных полей из исходных данных для
разных групп дат даст вам контроль над форматированием чисел поля в сводной
таблице.

Вы также
можете создать таблицу календаря с
группировками, если вы используете Power Pivot.

Автоматическая группировка полей даты

Если вы используете Excel 2016 (Office 365), то поле даты
автоматически группируется при добавлении его в сводную таблицу.

Разгруппировать поле даты:

  1. Выберите ячейку внутри сводной таблицы в одном
    из полей даты.
  2. Нажмите кнопку «Разгруппировать» на вкладке
    «Анализ» ленты.

Ungroup the Date Field to Change the Number Formatting

Автоматическая группировка является настройкой по умолчанию, которую можно изменить. См. мою статью «Даты группирования в сводной таблице». Даты группирования VERSUS приведены в исходных данных, чтобы узнать больше.

Как только поле даты будет разгруппировано, вы можете изменить форматирование поля.

Custom Date Formatting on Ungrouped Pivot Field

Чтобы изменить форматирование чисел в несгруппированном поле
Дата:

  1. Щелкните правой кнопкой мыши ячейку в поле даты
    сводной таблицы.
  2. Выберите настройки поля …
  3. Нажмите кнопку «Числовой формат».
  4. Измените форматирование даты в окне «Формат
    ячеек».
  5. Нажмите ОК и ОК.

Опять же, это работает только для полей, которые НЕ
сгруппированы. Если вы снова сгруппируете поле после изменения форматирования,
форматирование элементов в поле «Дни» изменится на «1 января».

Решение №2. Изменение имен элементов сводки с помощью VBA

Если вы действительно хотите использовать функцию Group Field, то мы можем использовать макрос для изменения имен элементов сводки. Создается впечатление, что изменилось форматирование даты, но на самом деле меняется текст в каждом названии элемента сводки.

Change Number Formatting of Days Field in Pivot Table with a Macro VBA

Следующий макрос перебирает все сводные элементы сгруппированного поля «Дни» и изменяет форматирование чисел на пользовательский формат. По умолчанию я установил «m/d», но вы можете изменить его на любой формат даты для месяца и дня. Просто помните, что элемент НЕ будет содержать год, так как элемент не является фактической датой.

Скачать файл

Загрузите
файл Excel, который содержит макрос.

Pivot Table Date Field Group Number Formatting Macro.xlsm (54.2 KB)

Макрос форматирования поля «Дни»

Sub Change_Days_Field_Formatting()
' Измените форматирование чисел в поле Дни
' для поля даты сгруппированной сводной таблицы.

Dim pt As PivotTable
Dim pi As PivotItem


' ВАЖНО: Измените следующее имя
' Сгруппированное поле Дни. Обычно это дни или название
' вашего поля даты.

Const sDaysField As String = "Days"

  ' Установить ссылку на первую сводную таблицу на листе
  ' Это может быть изменено для ссылки на имя сводной таблицы
  'Set pt = ActiveSheet.PivotTables("PivotTable1")
  
  Set pt = ActiveSheet.PivotTables(1)

  ' Установите имена обратно к их имени источника по умолчанию
  For Each pi In pt.PivotFields(sDaysField).PivotItems
    ' Обходит первый и последний пункты "<01.01.2015" ...
    If Left(pi.Name, 1) <> "<" And Left(pi.Name, 1) <> ">" Then
      pi.Name = pi.SourceName
    End If
  Next pi

  ' Установите имена в произвольном формате чисел
  For Each pi In pt.PivotFields(sDaysField).PivotItems
    If Left(pi.Name, 1) <> "<" And Left(pi.Name, 1) <> ">" Then
      ' Измените приведенный ниже формат «m / d» на пользовательский числовой формат.
      ' 2020 год используется для високосного года.
      pi.Name = Format(DateValue(pi.SourceName & "-2020"), "m/d")
    End If
  Next pi

End Sub

Как работает макрос

Макрос сначала зацикливает элементы сводки в поле Дни, чтобы
восстановить имя элемента сводки в его исходное имя по умолчанию. Два разных
элемента не могут иметь одинаковое имя. Так что это должно предотвратить любые
ошибки при изменении или попытке разных форматов.

Второй цикл меняет каждый элемент сводки на новый формат. Он
использует функцию DateValue для изменения названия элемента сводки «1-Jan» на
дату. Затем он использует функцию «Формат», чтобы изменить форматирование даты
на текст. По умолчанию используется формат «m / d». Это может быть изменено на
другой формат с месяцем и днем. Каждый элемент должен быть уникальным, поэтому
вы можете использовать месяц и день в названии элемента.

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

Также важно упомянуть, что это выполняется на элементах
сводки, а не на сводном кеше. Таким образом, только что названные элементы
будут изменены только в сводной таблице, на которой вы запускаете макрос.

Макрос форматирования сгруппированных элементов

Был задан большой вопрос в комментариях об изменении форматирования для сгруппированных чисел. Это та же проблема, что и для групп дат. Имена групп — это текст, а не цифры. Тем не менее, мы можем использовать макрос, чтобы изменить их.

Macro to Change Pivot Group Number Formatting

Вот код макроса. Вам просто нужно изменить значение
константы sGroupField вверху на имя вашего сгруппированного поля. При
необходимости вы также можете изменить формат чисел в sNumberFormat.

Sub Change_Grouped_Field_Number_Formatting()
' Изменить форматирование номера поля сгруппированных номеров

Dim pt As PivotTable
Dim pi As PivotItem
Dim sGroup() As String
Dim sGroupName As String


' ВАЖНО: Измените следующее имя
' поле сгруппированного номера в области строк или столбцов.

Const sGroupedField As String = "Quantity"
Const sNumberFormat As String = "$#,###"

  ' Установить ссылку на первую сводную таблицу на листе
  ' Это может быть изменено для ссылки на имя сводной таблицы
  'Set pt = ActiveSheet.PivotTables("PivotTable1")
  
  Set pt = ActiveSheet.PivotTables(1)

  ' Установите имена обратно к их имени источника по умолчанию
  For Each pi In pt.PivotFields(sGroupedField).PivotItems
    ' Обходит первый и последний пункты "<01.01.2015" ...
    If Left(pi.Name, 1) <> "<" And Left(pi.Name, 1) <> ">" Then
      pi.Name = pi.SourceName
    End If
  Next pi

  ' Установите имена в произвольном формате чисел
  For Each pi In pt.PivotFields(sGroupedField).PivotItems
  
    If Left(pi.Name, 1) = "<" Or Left(pi.Name, 1) = ">" Then
      sGroupName = "<" & Format(Mid(pi.Name, 2, Len(pi.Name)), sNumberFormat)
    Else
      sGroup = Split(pi.Name, "-")
      sGroupName = Format(sGroup(0), sNumberFormat) & " - " & Format(sGroup(1), sNumberFormat)
    End If
    
    If sGroupName <> "" Then pi.Name = sGroupName
      
  Next pi

End Sub

Окончательный вердикт

Я надеюсь, что информация была полезной. Я бы предложил использовать решение № 1, если вы не хотите использовать функцию группы.

Пожалуйста, оставьте комментарий ниже с любыми вопросами или
предложениями о том, как мы можем улучшить это. Спасибо! 🙂

Отображение дат в сводной таблице

nikitan95

Дата: Воскресенье, 11.02.2018, 19:25 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

Доброго всем вечера!
Как изменить отображение дат по столбцам в сводной таблице? Изменения как в формате ячеек, так и через «Числовое поле» ничего не дали..

К сообщению приложен файл:

4320376.xlsx
(18.5 Kb)

 

Ответить

Che79

Дата: Воскресенье, 11.02.2018, 20:12 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 1649


Репутация:

306

±

Замечаний:
0% ±


2013 Win, 365 Mac

nikitan95, здравствуйте.
Вариант навскидку. Вдруг подойдет. См. Лист 1


Делай нормально и будет нормально!

 

Ответить

abtextime

Дата: Воскресенье, 11.02.2018, 20:32 |
Сообщение № 3

Группа: Проверенные

Ранг: Ветеран

Сообщений: 828


Репутация:

117

±

Замечаний:
0% ±


Excel 2010

Дополнительный столбец в исходной таблице и ЛЕВБ() — не подойдет?

Код

=ЛЕВБ(ТЕКСТ(C2;»ДД.ММ.ГГ»);2)

Сообщение отредактировал abtextimeВоскресенье, 11.02.2018, 20:43

 

Ответить

nikitan95

Дата: Воскресенье, 11.02.2018, 20:46 |
Сообщение № 4

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

Che79, abtextime, спасибо, оба варианта об одном же. Я пробовал это. Хотелось без доп.столбцов. Значит есть какие-то ограничения в сводных таблицах насчёт отображения дат?

Сообщение отредактировал nikitan95Воскресенье, 11.02.2018, 20:53

 

Ответить

abtextime

Дата: Воскресенье, 11.02.2018, 20:55 |
Сообщение № 5

Группа: Проверенные

Ранг: Ветеран

Сообщений: 828


Репутация:

117

±

Замечаний:
0% ±


Excel 2010

Похоже на то …
А чем конкретно Вас смущает скрытый столбец? Кому-то мешает разве? Лично меня это никогда не останавливало :)
Всегда в исходной таблице пихаешь всё. что можно, а потом в сводной уже всегда можно выключить )

 

Ответить

nikitan95

Дата: Воскресенье, 11.02.2018, 21:02 |
Сообщение № 6

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

abtextime, ох как смущает) в исходном файле, при выборе месяца в фильтре, даты автоматически раскидаются по столбцам, а в предложенном примере, насколько я понял, придётся вручную выбирать даты. Канительно получается очень..

Сообщение отредактировал nikitan95Воскресенье, 11.02.2018, 21:04

 

Ответить

bmv98rus

Дата: Воскресенье, 11.02.2018, 21:05 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4009


Репутация:

760

±

Замечаний:
0% ±


Excel 2013/2016

Такой вариант подойдет?

Правда там MS Query как источник для сводной.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rusВоскресенье, 11.02.2018, 22:01

 

Ответить

abtextime

Дата: Воскресенье, 11.02.2018, 21:08 |
Сообщение № 8

Группа: Проверенные

Ранг: Ветеран

Сообщений: 828


Репутация:

117

±

Замечаний:
0% ±


Excel 2010

nikitan95, не понимаю я Вас … о какой ручной выборке дат Вы ведете речь? Разве я что-то, кроме одной вышеприведенной формулы вводил?
что значит — «даты раскидываются по столбцам»? где? в сводной? так и у меня тоже «раскидываются»
Точно так же выбираете февраль в фильтре и получаете ведомость по февралю

 

Ответить

Karataev

Дата: Воскресенье, 11.02.2018, 21:13 |
Сообщение № 9

Группа: Проверенные

Ранг: Старожил

Сообщений: 1330


Репутация:

528

±

Замечаний:
0% ±


Excel

nikitan95, щелкните по ячейке «B4» правой кнопкой мыши — Разгруппировать.


Киви-кошелек: 9166309108

 

Ответить

nikitan95

Дата: Воскресенье, 11.02.2018, 21:19 |
Сообщение № 10

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

bmv98rus, не знаю что за черт этот MS Query, но работает. Спасибо.
abtextime, может второпях у меня что-то не получилось с тем примером. Завтра с трезвой головой посмотрю и отпишусь. Спасибо

 

Ответить

nikitan95

Дата: Воскресенье, 11.02.2018, 21:23 |
Сообщение № 11

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

Karataev, вот оно гениальное решение!! Салют! Ура!!! Вы очень приятно подытожили мой день. Спасибо, мой друг!

 

Ответить

Karataev

Дата: Воскресенье, 11.02.2018, 21:24 |
Сообщение № 12

Группа: Проверенные

Ранг: Старожил

Сообщений: 1330


Репутация:

528

±

Замечаний:
0% ±


Excel

nikitan95, нет, то не решение. В этом случае фильтр удаляется. Я сразу это не понял.


Киви-кошелек: 9166309108

 

Ответить

nikitan95

Дата: Воскресенье, 11.02.2018, 21:33 |
Сообщение № 13

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

Дааа, очень было простым, чтобы быть верным(.. Меня удивляет, почему так? В чем подвох тут?

 

Ответить

Nic70y

Дата: Воскресенье, 11.02.2018, 21:39 |
Сообщение № 14

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010

Вдруг правильно
Ctrl+h
.янв — Alt0160
.фев — Alt0160Alt0160
и т.д.


ЮMoney 41001841029809

Сообщение отредактировал Nic70yВоскресенье, 11.02.2018, 21:39

 

Ответить

nikitan95

Дата: Воскресенье, 11.02.2018, 21:51 |
Сообщение № 15

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

Nic70y, работает. Пока более оптимальным считаю этот. Спасибо

 

Ответить

Karataev

Дата: Понедельник, 12.02.2018, 09:26 |
Сообщение № 16

Группа: Проверенные

Ранг: Старожил

Сообщений: 1330


Репутация:

528

±

Замечаний:
0% ±


Excel

Меня удивляет, почему так? В чем подвох тут?

Подвох в том, что Excel подставляет в строку 4 не даты, а текст вида «число.месяц». А числовой формат работает только с числами и датами.
Если сделать разгруппировку, то в строке 4 оказываются даты, к которым может быть применен числовой формат.


Киви-кошелек: 9166309108

 

Ответить

nikitan95

Дата: Понедельник, 12.02.2018, 11:00 |
Сообщение № 17

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

Karataev, спасибо за разъяснение. Остановился на варианте abtextime

 

Ответить

mechanix85

Дата: Понедельник, 12.02.2018, 20:31 |
Сообщение № 18

Группа: Друзья

Ранг: Форумчанин

Сообщений: 240


Репутация:

34

±

Замечаний:
0% ±


nikitan95, нужно создать календарь и связать его с базой данных, это даст возможность выводить разные форматы дат

 

Ответить

nikitan95

Дата: Понедельник, 19.02.2018, 09:02 |
Сообщение № 19

Группа: Проверенные

Ранг: Обитатель

Сообщений: 410


Репутация:

0

±

Замечаний:
0% ±


2016

нужно создать календарь и связать его с базой данных

не подскажете как?

 

Ответить

Изменение формата даты для сгруппированных дат в сводной таблице

Я работаю в Excel 2010

предположим, у вас есть законное поле даты в ваших необработанных данных с датами, такими как 1/1/2015. Затем вы создаете сводную таблицу с полем даты в метках строк.

теперь предположим, что вы хотите показать результаты по месяцам, поэтому щелкните правой кнопкой мыши «поле группы» и выберите, чтобы сгруппировать его по месяцам.

теперь ваши данные отображаются в месяцах в формате Mmm. Как бы вы изменили его формат Mmmm? Или что, если вы хотите отобразить его как число (т. е. Jan отображается как 1)

Как насчет дат, которые имеют метки времени, и вы группируетесь по дням. В сводной таблице дата будет отображаться как D-Mmm. Что делать, если я хочу MM/DD/YYYY?

Да, я уже пробовал изменить его, щелкнув правой кнопкой мыши -> настройки поля — > формат номера. Это не сработало.

7 ответов


У меня была та же проблема. То, что я сделал,-это щелкнуть правой кнопкой мыши по значению, для которого я хочу изменить представление в сводной таблице и выбрать опцию «разгруппировать». Это возвращает формат представления reguler. Надеюсь, это вам поможет.


Если вы выбираете столбцы, в которых дата разбивается (в пределах сводных лет, квартала и т. д.) и идут данные-разгруппироваться. Это приведет вас к формату даты.


начиная с Excel 2016, нет способа изменить способ, которым Excel автоматически форматирует сгруппированные даты в сводных таблицах.

обходным путем является создание нового поля / столбца в исходном файле данных с требуемым форматом и использование его в сводной таблице.


ответ Бариса Сари частично верен. Вам нужно разгруппировать даты, что позволяет вам установить любой формат даты, который вы хотите.

выберите все даты в сводной таблице, затем щелкните правой кнопкой мыши и выберите Ungroup.
Затем щелкните правой кнопкой мыши снова на вашем выборе и нажмите Format Cells. Первая вкладка в открывшемся окне относится к номерам.

это работало в Excel 2016 и 2010.


Я просто переформатировал поле даты и времени, которое было источником данных для сводной таблицы (которая была dd/mm/yyy hh:mm:ss) в текст (ddddd.ttttt), а затем, когда я обновил сводную таблицу, она появляется в выбранном мной формате даты и времени.


Я пробовал две вещи:

  1. Я просто изменил формат ячеек, как обычно.

    Format Cells

  2. выбрано более одного элемента в группировке (с помощью Control+click on windows или Command+click on mac) источник

    Grouping box image showing two groups of selection: "Auto" with starting and ending dates, and "by" with a list of time division items: seconds, minutes, hours and so on...

ps.: Я указал, как выбрать более одного элемента, потому что это не очень интуитивно.


Я выбрал один из заголовков столбцов и нажал ungroup.
Моя проблема заключалась в том, что сводная таблица имела заголовки mmm, и я хотел, чтобы m/d/yyyy соответствовал моим необработанным данным.


Я работаю в Excel 2010

Допустим, у вас есть допустимое поле даты в ваших необработанных данных с такими датами, как 1/1/2015. Затем вы создаете сводную таблицу с полем даты в метках строк.

Теперь предположим, что вы хотите отображать результаты по месяцам, поэтому щелкните правой кнопкой мыши «Поле группы» и выберите группировку по месяцам.

Теперь ваши данные отображаются в месяцах в формате Ммм. Как бы вы поменяли формат Мммм? Или что, если вы хотите отобразить его как число (например, Ян отображается как 1)

Как насчет дат, которые имеют отметки времени и группируются по дням. В сводной таблице дата будет отображаться как Д-Ммм. Что, если я хочу ММ / ДД / ГГГГ?

Да, я уже пробовал изменить его, щелкнув правой кнопкой мыши -> настройки поля -> формат числа. Это не сработало.

9 ответов

Лучший ответ

Начиная с Excel 2016, нет возможности изменить способ, которым Excel автоматически форматирует сгруппированные даты в сводных таблицах.

Обходной путь — создать новое поле / столбец в исходном файле данных с желаемым форматом и использовать его в сводной таблице.


10

ChrisG
23 Май 2018 в 14:00

Я выбрал один из заголовков столбца и нажал кнопку «Разгруппировать». Моя проблема заключалась в том, что в сводной таблице были заголовки mmm, и я хотел, чтобы m / d / yyyy соответствовали моим необработанным данным.


-3

Stu Holden
7 Фев 2017 в 16:11

Я пробовал две вещи:

  1. Я просто как обычно поменял формат ячеек.

    Форматировать ячейки

  2. Выделено более одного элемента при группировании (с помощью Control + щелчок по окнам или Command + щелчок по Mac) источник

    Изображение окна группирования, показывающее две группы выбора: «Авто» с начальной и конечной датами  , и "by" со списком элементов временного разделения: секунды, минуты, часы и так далее ...

Ps: Я указал, как выбрать более одного элемента, потому что это не очень интуитивно понятно.


-2

jpfreire
30 Июл 2016 в 11:35

Мне удалось решить эту проблему, манипулируя внутренним OOXML (Office Open XML) документа Excel. Если вы не знаете, как открыть документ Excel (для просмотра документов xml, из которых он состоит внутри), обратитесь к одной из этих ссылок:

  • «Лучший способ» Используйте расширение Visual Studio (редактор пакетов OOXML) для непосредственного открытия / редактирования файла Excel: http://www.ericwhite.com/blog/open-xml-installation-center/

  • Или используйте «более простое» расширение для Chrome (перетащите на него файл Excel): https://chrome.google.com/webstore/detail/ooxml-tools/bjmmjfdegplhkefakjkccocjanekbapn?hl=en (не забудьте загрузить новый файл после сохранения в нем изменений)

  • Или «наименее рекомендованный» способ

    1.)  Change your filename from "MyExcelFile.xlsx" to "MyExcelFile.zip"
    2.)  Unzip the file
    3.)  Change the format (as explained below)
    4.)  Zip it all back up and change extension to .xlsx
    5.)  Warning, This method often corrupts my files, but not always, so I use OOXML Package editor in Visual Studio instead.
    

Независимо от вашего метода, теперь перейдите к «PivotCache» для вашей сводной таблицы. В моем «распакованном файле excel» путь к файлу: Root> xl> pivotCache> pivotCacheDefinition1.xml

Моя копия содержит около 800 строк xml, и я полагаю, что это может быть намного больше, но сосредоточьтесь только на той части, которую вы хотите переформатировать. (убедитесь, что вы преобразили свой xml, чтобы это не одна длинная сжатая строка, если вы используете Visual Studio Ctrl + K, Ctrl + D)

Найдите атрибут: groupBy = «months»

Мой образец находит

    <cacheField name="Months" numFmtId="0" databaseField="0">
      <fieldGroup base="2">
        <rangePr groupBy="months" startDate="2019-01-02T00:00:00" endDate="2019-12-27T00:00:00"/>
        <groupItems count="14">
          <s v="&lt;1/2/2019"/>
          <s v="Jan"/>
          <s v="Feb"/>
          <s v="Mar"/>
          <s v="Apr"/>
          <s v="May"/>
          <s v="Jun"/>
          <s v="Jul"/>
          <s v="Aug"/>
          <s v="Sep"/>
          <s v="Oct"/>
          <s v="Nov"/>
          <s v="Dec"/>
          <s v="&gt;12/27/2019"/>
        </groupItems>
      </fieldGroup>
    </cacheField>
  </cacheFields>

… И все, что вам нужно сделать, это заменить «Янв» на «1» или любое другое строковое представление для каждого месяца!

Сделать еще один шаг вперед, но все же ответить на вопрос о том, как отформатировать группу по столбцу, — отформатировать groupBy = «days», что приведет к

    <fieldGroup par="5" base="2">
    <rangePr groupBy="days" startDate="2019-01-02T00:00:00" endDate="2019-12-27T00:00:00"/>
    <groupItems count="368">
    <s v="(blank)"/>
    <s v="1-Jan"/>
    <s v="2-Jan"/>
    <s v="3-Jan"/>...

Список можно продолжать и продолжать, если быть точным, то 368 элементов. 365 дней, плюс первый и последний элементы, включая 29 февраля. Если вы пытаетесь отформатировать строку, сгруппированную по дням, это элементы, которые нужно изменить. то есть:

    <s v="1-Jan"/>

Вы можете изменить их, например, на китайский (или что угодно, вам просто нужно 366 замен элементов) (опять же, оставьте первый и последний элемент в покое).

Так что «1 января» «2 января» может стать

<s v="1月1日"/>
<s v="1月2日"/>...

Вы относитесь к ним точно так же, как я показывал ранее для Месяцев. Дни, однако, утомительнее делать вручную, так как вам нужен элемент на каждый день, поэтому я создал функцию C #, которую вы можете изменить, чтобы быстро выплевывать элементы в файл (для копирования и вставки в ваш .xml)

        public void GenerateExcelGroupedDateFormatPivotTableElements()
        {
            int year = 2019;
            var sb = new StringBuilder();
            for (int i = 1; i <= 12; i++)
            {
                var daysInMonth = DateTime.DaysInMonth(year, i);
                for (int j = 1; j <= daysInMonth; j++)
                {
                    //Modify template below as you wish, (uses String Interpolation $) and (Verbatim @ symbol)
                    
                    //Full Month Name: ie January-day
                    string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i);
                    sb.AppendLine($@"<s v=""{monthName}-{j}""/>");

                    //or Chinese sample
                    //sb.AppendLine($@"<s v=""{i}月{j}日""/>");
                }
            }
            File.WriteAllText("_ExcelPivotTableGroupedDateHelper.txt",sb.ToString());
        }

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

Кажется, есть новая опция «Групповое поле» (по какой-то причине помеченная «7». Нажмите на нее, и вы получите варианты переключателя для Месяца / Дня / Часа и т. Д. Выберите свои предпочтения и нажмите OK. Надеюсь, это сработает для вас тоже!

Будем признательны за то, что можно и чего нельзя делать.

Удачного кодирования!


0

CANDIMAN
23 Июн 2020 в 03:36

Кажется, есть новая опция «Групповое поле» (по какой-то причине помеченная «7». Нажмите на нее, и вы получите варианты переключателя для Месяца / Дня / Часа и т. Д. Выберите свои предпочтения и нажмите OK. Надеюсь, это сработает для вас тоже!


0

Srikrishna Vadrevu
24 Фев 2020 в 01:19

Я просто переформатировал поле даты и времени, которое было источником данных для сводной таблицы (которое было дд / мм / ггг чч: мм: сс) в текст (ddddd.ttttt), а затем, когда я обновил сводную таблицу, оно появилось в формат даты и времени, который я выбрал.


0

Browny
2 Ноя 2017 в 03:25

Ответ Бариса Сари частично верен. Вам нужно разгруппировать даты, что затем позволит вам установить любой формат даты, который вы хотите.

Выберите все даты в сводной таблице, затем щелкните правой кнопкой мыши и выберите «Разгруппировать». Затем щелкните правой кнопкой мыши еще раз по своему выбору и нажмите «Форматировать ячейки». Первая вкладка в открывшемся окне относится к числам.

Это работало в Excel 2016 и 2010.


0

Von Pittman
23 Фев 2017 в 14:33

Если вы выберете столбцы, в которых разбита дата (внутри сводной таблицы — годы, квартал и т. Д.), И перейдите к разгруппировке данных. Это приведет вас к формату даты.


3

nina
5 Июл 2017 в 14:00

У меня была такая же проблема. Я щелкнул правой кнопкой мыши значение, для которого я хочу изменить представление сводной таблицы, и выбрал опцию «Разгруппировать». Это возвращает формат просмотра регулятора. Я надеюсь это тебе поможет.


12

Baris Sari
5 Дек 2016 в 15:59

Понравилась статья? Поделить с друзьями:
  • Excel в реестре windows
  • Excel в расчетах зданий
  • Excel в расчетах заработной платы примеры
  • Excel в разных окнах скачать
  • Excel в раздельных окнах