Мой pivot извлекает данные из внешнего источника со столбцом даты. Excel не видит этот столбец как дату, а панель параметров «Формат ячеек» не меняет способ отображения дат. Данные ячейки выровнены по левому краю, что предполагает строку, а не дату. Я пробовал cast(myvar as date) и convert(varchar, myvar, 101) и convert(varchar, myvar, 1) в базовой таблице, но ни один из них не был воспринят Excel как дата.
Если столбец распознается как дата, я могу сгруппировать по неделям и месяцам. Я понимаю, что если я не смогу это исправить, следующим шагом будет добавление столбцов с неделями и месяцами для каждой даты в таблицу, но я хотел бы еще раз попробовать отформатировать столбец, прежде чем делать это.
решение1
Попробуйте преобразовать дату в datetime.
Дата SQL Server внутренне представлена как 3-байтовое целое число, тогда как datetime — это 8 байтов и, предположительно, с плавающей точкой. Excel использует double для представления дат/времени, поэтому формат datetime SQL Server может лучше сопоставляться, чем date.
решение2
Попробуйте использовать код SQL в качестве источника для вашей сводной таблицы, а не таблицу или запрос, расположенный в SQL Server. Возможно, ваши операторы Cast() будут более эффективными в этом случае.
- Нажмите на сводную таблицу.
- Нажмите «Инструменты сводной таблицы»>«Параметры»>«Изменить источник данных» (стрелка)>«Свойства подключения».
- Нажмите «Определение»
- Измените тип команды на «SQL-запрос»
- Вставьте или введите оператор SQL в область текста команды.
Я предполагаю, что вы используете Excel 2007. В Excel 2003 подход был бы аналогичным, просто другой способ доступа.
решение3
Используйте функцию Convert со 120
стилем. Это формат даты ISO, Excel должен его распознать.