Улучшение наглядности сводных данных с помощью перекрестного запроса

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

Если вы хотите сделать сводные данные более простыми для понимания, используйте перекрестный запрос. Он вычисляет сумму, среднее или результаты другой агрегатной функции, а затем группирует их с использованием двух наборов значений — сбоку и сверху таблицы. На ленте откройте вкладку Создание, а затем в группе Запросы нажмите кнопку Мастер запросов. В диалоговом окне Новый запрос дважды щелкните Перекрестный запрос.

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

Примечание : Перекрестные запросы недоступны в веб-приложении Access и поддерживаются только частично в веб-базах данных: их не могут применять веб-объекты. Чтобы использовать такой запрос в веб-базе данных, откройте ее в Access. Дополнительные сведения о веб-приложениях Access см. в статье Создание веб-приложения Access. Дополнительные сведения о веб-базах данных см. в статье Изменение или публикация веб-базы данных в SharePoint 2010.

В этой статье

Обзор

Создание перекрестного запроса

Использование диапазонов и интервалов в качестве заголовков

Ограничение допустимых заголовков строк с помощью параметра

Замена пустых значений нулями

Советы по использованию перекрестных запросов

Обзор

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

Запрос на выборку и перекрестный запрос, отображающий те же данные

1. Этот запрос на выборку группирует сводные данные вертикально по сотрудникам и категориям.

2. Перекрестный запрос выводит те же данные, но группирует их и по горизонтали, и по вертикали.

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

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

Схема перекрестного запроса

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

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

3. В столбцах с этой стороны содержатся заголовки столбцов и сводные значения. Обратите внимание на то, что имя поля заголовков столбцов не отображается в таблице.

4. Здесь показаны сводные значения.

Преимущества мастера создания перекрестных запросов

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

    Примечание : Если вы хотите использовать интервал, которого нет в мастере (например, финансовый год или двухлетний период), мастер не поможет сэкономить время. Создайте перекрестный запрос вручную в конструкторе и задайте пользовательские интервалы с помощью выражения.

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

Возможности перекрестного запроса, доступные в конструкторе

  • Добавьте запрос на ввод значения параметра.    Если добавить запрос значения параметра, будет появляться диалоговое окно, а выводимые данные будут зависеть от того, какие сведения в нем указать. Например, допустим, что у вас есть перекрестный запрос, отображающий продажи определенных категорий товаров за квартал, но вы хотите просмотреть данные только одного из регионов. Можно сделать так, чтобы отображался запрос на ввод нужного региона.

  • Используйте выражения в качестве полей запроса.    Иногда требуется выполнить небольшие вычисления с данными в поле или применить к ним другие функции. Например, если в данных есть пустые значения, результаты перекрестного запроса могут быть неправильными или неполными. Чтобы исправить это, можно применить к полю функцию Nz – она заменяет пустые значения нулями.

  • Задайте список фиксированных значений, которые нужно использовать в качестве заголовков столбцов.    Возможно, вы захотите заменить заголовки столбцов собственными значениями. Например, если в качестве заголовков используются интервалы, они могут сортироваться не так, как вам нужно. Это не проблема – просто замените их значениями, которые будут сортироваться правильно.

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

Элементы перекрестного запроса в режиме конструктора

1. Значения в этих строках определяют, является ли поле заголовком строки, заголовком столбца или сводным значением.

2. Этот параметр задает отображение значений поля в виде заголовков строк.

3. Этот параметр задает отображение значений поля в виде заголовков столбцов.

4. Эти параметры задают получение сводных значений.

К началу страницы

Создание перекрестного запроса

Работа с мастером создания перекрестных запросов

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

  1. На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.

  2. В диалоговом окне Новый запрос выберите пункт Перекрестный запроси нажмите кнопку ОК.

    Будет запущен мастер создания перекрестных запросов.

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

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

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

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

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

    Обычно следует выбирать поле, содержащее меньше значений, чтобы результаты было удобно читать. Например, использовать поле с небольшим количеством возможных значениями (такое как пол) обычно предпочтительнее, чем поле, которое может содержать множество различных значений (такое как возраст).

    Если поле, выбранное для создания заголовков столбцов, содержит данные типа "Дата/время", мастер выполнит дополнительное действие, предложив указать способ группировки дат по интервалам, например по месяцам или кварталам.

  6. Если для заголовков столбцов выбрано поле типа "Дата/время", на следующей странице мастера будет предложено задать интервал для группировки дат. Возможные варианты: Год, Квартал, Месяц, Дата и Дата/время. Если поле, выбранное для формирования заголовков столбцов, не относится к типу "Дата/время", эта страница мастера пропускается.

  7. На следующей странице выберите поле и функцию для расчета сводных значений. Набор доступных функций зависит от типа данных поля.

  8. На той же странице установите или снимите флажок Да, чтобы соответственно включить в запрос или исключить из него итоговые значения по строкам.

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

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

  9. На следующей странице мастера введите имя запроса и укажите, требуется ли просмотреть результаты или изменить структуру запроса.

Создание перекрестного запроса вручную в конструкторе

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

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

    Если вы используете несколько источников записей, убедитесь в том, что таблицы или запросы объединены по общим полям. Дополнительные сведения о объединении таблиц и запросов см. в статьях, указанных в разделе См. также.

  3. Закройте диалоговое окно Добавление таблицы.

  4. На вкладке Конструктор в группе Тип запроса щелкните элемент Перекрестная таблица.

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

  6. В бланке запроса в строке Перекрестная таблица для каждого поля заголовков строк выберите значение Заголовки строк.

    Можно ввести выражение в строке Условие отбора, чтобы ограничить число результатов для этого поля. Можно также использовать строку Сортировка, чтобы указать порядок сортировки для поля.

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

  8. В бланке запроса в строке Перекрестная таблица для поля заголовков столбцов выберите значение Заголовки столбцов.

    Можно ввести выражение в строке Условие отбора, чтобы ограничить число результатов для поля заголовков столбцов. Однако использование условного выражения для поля заголовков столбцов не ограничивает число столбцов, возвращаемых перекрестным запросом. Ограничения касаются того, какие столбцы могут содержать данные. Предположим, например, что имеется поле заголовков столбцов с тремя возможными значениями: красный, зеленый и синий. Если к полю заголовков столбцов применить условие ='синий', в перекрестной таблице останутся столбцы "Красный" и "Зеленый", но только столбец "Синий" будет содержать данные.

    Чтобы ограничить набор значений, отображаемых в качестве заголовков столбцов, можно задать список фиксированных значений с помощью свойства запроса Заголовки столбцов. Дополнительные сведения см. в разделе Задание фиксированных значений для заголовков столбцов.

  9. В окне конструктора запроса дважды щелкните поле, которое необходимо использовать для расчета сводных значений. Для расчета сводных значений можно выбрать только одно поле.

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

  11. В строке Перекрестная таблица для поля сводных значений выберите элемент Значение.

    Задавать условия отбора или выполнять сортировку по полю сводных значений нельзя.

  12. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Задание фиксированных значений для заголовков столбцов

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

  1. Откройте перекрестный запрос в режиме конструктора.

  2. Если окно свойств не открыто, откройте его, нажав клавишу F4.

  3. Убедитесь, что в окне свойств над вкладкой Общие указано Возможен выбор:Свойства запроса. В противном случае щелкните в пустом месте над бланком запроса.

  4. В окне свойств на вкладке Общие в строке свойства Заголовки столбцов введите через запятую значения, которые следует использовать в качестве заголовков столбцов.

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

К началу страницы

Использование диапазонов и интервалов в качестве заголовков

Иногда нужно сгруппировать значения поля в диапазоны и использовать их в качестве заголовков строк или столбцов (вместо самих значений). Предположим, например, что заголовками столбцов являются значения поля "Возраст". Вместо того чтобы создавать столбец для каждого значения возраста, вам может быть удобней использовать столбцы, представляющие диапазоны возрастов, например "40–49".

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

Совет : Если требуется создать интервалы для значений типа «Дата/время», рекомендуется воспользоваться мастером создания перекрестных запросов. Он позволяет объединить даты в интервалы Год, Квартал, Месяц, Дата или Дата/время. Если ни один из этих интервалов не подходит, создайте перекрестный запрос в режиме конструктора, а затем с помощью метода, описанного в данном разделе, создайте нужные интервалы.

Принципы работы функции IIf

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

Синтаксис функции IIf

IIf( выражение, если_истина, если_ложь )

Функция IIf имеет аргументы, указанные ниже.

Аргумент

Описание

Выражение

Обязательный аргумент. Выражение, которое требуется вычислить.

Если_истина

Обязательный аргумент. Значение или выражение, возвращаемое, если значением аргумента выражение является Истина.

Если_ложь

Обязательный аргумент. Значение или выражение, возвращаемое, если значением аргумента выражение является Ложь.

Создание диапазонов с помощью выражения

  1. Откройте перекрестный запрос в режиме конструктора.

  2. В бланке запроса в строке Поле щелкните правой кнопкой мыши пустой столбец и выберите в контекстном меню пункт Масштаб.

  3. В поле Масштаб введите псевдоним поля и двоеточие (:).

  4. Введите IIf().

  5. В скобках после IIf введите выражение сравнения, определяющее первый диапазон значений поля.

    Предположим, например, что создаются диапазоны для поля «Возраст», причем каждый диапазон должен охватывать двадцать лет. Выражением сравнения для первого диапазона будет [Возраст]<21.

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

    Например, введите после [Возраст]<21 запятую и "0-20 лет".

  7. После имени диапазона введите запятую (вне кавычек) и выполните одно из указанных ниже действий.

    • Чтобы создать другой диапазон, введите IIf() и повторите действия 5, 6 и 7.

    • Для последнего диапазона введите только имя.

      Например, полное выражение IIf с вложенными подвыражениями, разбивающее поле «Возраст» на двадцатилетние диапазоны, может выглядеть следующим образом (разрывы строк добавлены для наглядности):

      IIf([Age]<21,"0-20 years",
      IIf([Age]<41,"21-40 years",
      IIf([Age]<61,"41-60 years",
      IIf([Age]<81,"61-80 years", "80+ years"))))

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

  8. В бланке запроса в строке Всего выберите вариант Группировка.

  9. В строке Перекрестная таблица укажите, как следует использовать диапазоны: как заголовки строк или как заголовки столбцов. Помните, что можно задать от одного до трех заголовков строк и один заголовок столбца.

К началу страницы

Ограничение допустимых заголовков строк с помощью параметра

В перекрестный запрос можно включить предложение ввести данные, которое будет выводиться при выполнении запроса. Предположим, например, что используется несколько заголовков строк, в том числе «Страна/регион». Чтобы не выводить данные по всем странам и регионам, можно определить предложение ввести имя и отобразить данные в зависимости от значения, введенного пользователем.

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

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

  1. Откройте перекрестный запрос в режиме конструктора.

  2. В строке Условие отбора для поля заголовков строк, для которого требуется запросить у пользователя данные, введите текст вопроса в квадратных скобках. Этот текст будет отображаться в качестве приглашения при выполнении запроса.

    Например, если ввести вопрос [Какая страна (регион)?] в строке Условие отбора, то при выполнении запроса откроется диалоговое окно, содержащее этот вопрос («Какая страна (регион)?»), поле ввода и кнопку ОК.

    Совет : Чтобы сделать параметр более гибким, добавьте к выражению подстановочные знаки с помощью оператора Like. Например, вместо условия [Какая страна (регион)?] можно задать условие Like [Какая страна (регион)?]&"*", чтобы расширить диапазон вводимых значений, подходящих для данного параметра. Использование оператора Like не изменяет вид предложения ввести параметр.

  3. На вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.

  4. В диалоговом окне Параметры запроса в столбце Параметр введите то же приглашение, которое было задано в строке Условие отбора. Введите квадратные скобки, но не добавляйте подстановочные знаки и оператор Like.

  5. В столбце Тип данных выберите тип данных параметра. Он должен соответствовать типу данных поля заголовков строк.

К началу страницы

Замена пустых значений нулями

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

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

Синтаксис функции Nz

Nz( переменная [, значение_если_null ] )

Функция Nz имеет аргументы, указанные ниже.

Аргумент

Описание

Переменная

Обязательный аргумент. Переменная, имеющая тип данных Variant.

Значение_если_null

Необязательный аргумент (если он используется не в запросе) типа Variant. Указывает значение, которое будет возвращено, если аргумент Переменная имеет значение Null. Этот аргумент позволяет вернуть значение, отличное от нуля или пустой строки.

Примечание : Если функция Nz используется в выражении запроса без аргумента Значение_если_null , в результате выполнения этой функции для полей, содержащих пустые значения, будет возвращена пустая строка.

  1. В бланке запроса, открытого в режиме конструктора, щелкните поле Значение правой кнопкой мыши.

  2. Выберите в контекстном меню команду Масштаб.

  3. В поле Масштаб заключите имя поля или выражение в скобки и введите перед скобками Nz.

  4. Введите , 0 перед правой скобкой.

    Например, при использовании функции Nz в поле «Потерянные часы» для замены пустых значений нулями законченное выражение будет выглядеть следующим образом:

Nz([Hours Lost], 0)

К началу страницы

Советы по использованию перекрестных запросов

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

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

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

К началу страницы

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

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

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×