Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access_2007.doc
Скачиваний:
257
Добавлен:
17.03.2015
Размер:
20.6 Mб
Скачать

На профессиональном уровне. Правильный выбор групп

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

Например, если группировать по названию товара и стране, можно биться об заклад, что вы в результате получите больше групп товаров, чем стран. (У вас могут быть клиенты в восьми разных странах, а каталог товаров с 480 видами товаров.) Итак, примените груп­пировку по товарам для строк, а по странам — для столбцов.

8. Если нужно показать промежуточный итог для каждой строки, установите флажок Вычислить итоговое значение для каждой строки? Да (Yes, include row sums).

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

Рис. 9.8. Заключительный перекрестный запрос показывает связь между штатами и типами товаров, покупаемыми его жителями (слева дается итог для каждого штата или провинции по всем категориям товаров)

9. Щелкните мышью кнопку Далее.

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

  1. Щелкните мышью кнопку Готово.

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

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

1. Выберите на ленте Создание Другие Конструктор запросов (Create Other → Query Design). Программа Access создаст новый пустой запрос и откроет его в окне Кон­структора.

2. С помощью окна Добавление таблицы (Show Table) добавьте таблицу или запрос, которые вы хотите использовать, и щелкните мышью кнопку Закрыть.

Если вы используете БД AdventureWorks, легче всего выбрать вкладку Запросы (Queries) в окне Добавление таблицы и добавить запрос Orderedltems.

Подсказка

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

3. Выберите на ленте Работа с запросами | Конструктор Тип запроса Тип запроса: перекрестный (Query Tools | Design → Query Type → Crosstab),

Программа Access преобразует ваш запрос в перекрестный. Перекрестные запросы вы­глядят как итоговые с одной лишь разницей. В списке полей в нижней части окна вы найдете дополнительную строку — Перекрестная таблица (Crosstab) (рис. 9.9).

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

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

Поле используется для группировки по строкам. В данном случае задайте в свойстве Групповая операция значение Группировка и значение Заголовки строк (Row Heading) в свойстве Перекрестная таблица.

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

Поле применяется для группировки по столбцам. В этом случае задайте в свойстве Групповая операция значение Группировка и значение Заголовки столбцов (Column Heading) в свойстве Перекрестная таблица.

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

Поле отображается как значение в таблице. В этом случае задайте в свойстве Груп­повая операция итоговую функцию, которую хотите использовать (такую как Sum, Count, Avg и т. д.), и вариант Значение (Value) в свойстве Перекрестная таблица.

Для этой цели вы должны использовать только одно поле. Но вы можете применить выражение, выполняющее вычисления, базирующиеся на значениях нескольких по­лей. Например, перекрестные запросы, показанные на рис. 9.1 и 9.2, используют вы­ражение Revenue: [UnitPrice] * [OrderQty] для вычисления общей выручки для каждой строки заказа.

Подсказка

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

Рис. 9.10. Обратите внимание на то, что поле OrderQty появляется дважды. В первый раз оно определено как значение, отображаемое в сетке таблицы. Во второй раз оно определяется как заголовок строки, которая создается в дополнительном столбце с итогом для каждой строки. С помощью псевдонима дополнительный столбец переименован в Total Of OrderQty (общее количество в заказе) во избежание путаницы

Поле применяется для фильтрации или отбора. В этом случае задайте в свойстве Груп­повая операция значение Условие (Where) и вариант (не отображается) (not shown) в свойстве Перекрестная таблица. Затем вставьте условие в поле Условие отбора. (См. выражения для условий отбора в разд. "Построение условий отбора" главы 6.)

Примечание

К сожалению, в вычисляемом поле нельзя применить фильтрацию или сортировку. Это озна­чает, что если создается запрос, подсчитывающий количество продаж, нельзя отобрать только строки с большими количествами продаж. Но этот трюк можно проделать в сводной таблице, как описано в следующем разделе.

На рис. 9.10 показано определение запроса, подобного созданному с помощью мастера в предыдущем разделе (см. рис. 9.8).

Сводные таблицы

Если итоговые и перекрестные запросы не потрясли вас в достаточной степени, у програм­мы Access есть еще одно мощное средство для подытоживания ваших данных. Сводная таб­лица — это специальная таблица, выполняющая те же трюки, что и перекрестный запрос — группировку по строкам и столбцам — но обладающая большими функциональными воз­можностями. Далее перечислены некоторые из них.

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

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

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

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

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

Примечание

Многие приверженцы программы Access живут долго и счастливо, даже не сталкиваясь со сводными таблицами. И все потому, что это узкоспециализированное средство, и многие спе­циалисты предпочитают анализировать информацию в других программах (например, в Micro­soft Excel). Но свойства сводных таблиц заслуживают внимания, поскольку могут оказаться полезными в следующий раз, когда вам потребуется сделать общие выводы о производитель­ности вашей компании, выпекающей изделия, посвященные знаменитостям.

Построение сводной таблицы

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

Примечание

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

Для применения режима Сводная таблица (Pivot Table) откройте таблицу или запрос, которые хотите использовать, и затем выберите на ленте Главная Режимы Режим Сводная таблица (Home → Views → View → PivotTable View).

Сначала сводная таблица отображается пустой (рис. 9.11).

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

Примечание

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

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

  • поля строк применяются для группировки записей в строках;

  • поля столбцов используются для группировки записей в столбцах;

  • поля итогов применяются для вычисления итоговых значений в каждой группе;

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

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

Примечание

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

Самый легкий способ освоить сводные таблицы и множество их функциональных воз­можностей — попытаться построить хотя бы одну своими руками. Приведенные далее дей­ствия подробно описывают процесс создания простой сводной таблицы, которая отображает итоги объемов продаж, сгруппированных по странам и категориям товаров. Если вы хотите действовать в соответствии с ними, используйте запрос OrderedItems в БД AdventureWorks, которую можно загрузить с Web-страницы "Missing CD" на сайте www.missingmanuals.com. Затем вы сможете усовершенствовать сводную таблицу, вос­пользовавшись ее богатыми возможностями.

Примечание

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

1. Из окна Список полей сводной таблицы перетащите с помощью мыши поле РгоductCategory в область Перетащите сюда поля строк (Drop Row Fields Here). Когда вы переместите поле, программа Access выведет все категории товаров сверху до­низу в алфавитном порядке (рис. 9.12). Если нужен обратный порядок сортировки, про­сто щелкните правой кнопкой мыши одно из значений и выберите последовательно Сор­тировка Сортировка по убыванию (Sort →Sort Descending).

Подсказка

Если вы случайно закрыли окно со списком полей сводной таблицы, его можно вернуть выбрав на ленте Работа со сводными таблицами I Конструктор -> Показать или скрыть -» Список полей (PivotTable Tools I Design -> Show/Hide -> Field List).

Рис. 9.12.В данном примере в область строк добавлен список товаров, а элементы второй группировки (список стран) переносится в область столбцов. Обратите внимание, как только поле выбрано, его имя отображается жирным шрифтом в окне Список полей сводной таблицы

2. Из списка полей сводной таблицы перетащите поле Country в область Перетащите сюда поля столбцов (Drop Column Fields Here).

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

Подсказка

Если перемещение с помощью мыши утомительно, есть другой способ создания макета свод­ной таблицы. В окне Список полей сводной таблицы просто выберите поле, которое хотите добавить в сводную таблицу, и затем в раскрывающемся списке в нижней части окна выберите область, в которую нужно поместить поле. В завершение для вставки поля щелкните мышью кнопку Добавить в (Add to) (расположенную под списком).

3. Теперь нужно выбрать данные для анализа. Переместите поле OrderQty в область Перетащите сюда поля итогов или деталей (Drop Totals or Details Fields Here).

Этот шаг заполняет сводную таблицу данными (программе Access может понадобиться не­сколько мгновений для группировки всех данных, если у вас таблица большого объема).

Поле OrderQty добавлено как подробность, т. е. вы увидите все записи в таблице (или запросе) в соответствующих группах (рис. 9.13).

4. Пришло время добавить итоговые вычисления. Щелкните правой кнопкой мыши в сводной таблице поле OrderQty (подойдет любое поле OrderQty) и выберите вариант из подменю Автовычисления (AutoCalc).

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

Автовычисления Сумма, если хотите найти общее количество товаров, проданных в дан­ной категории.

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

Все сводные данные, которые создаются с помощью подменю Автовычисления, называют итогами. Они добавляются в группу Итоги (Totals) в верхней части окна Список полей сводной таблицы. (Щелкните кнопкой мыши квадратик со знаком +/-, расположенный рядом со словом Итоги для вывода на экран содержимого группы.) Для удаления итога щелкните его в списке правой кнопкой мыши и выберите команду Удалить (Delete).

5. Для скрытия подробной информации и отображения только сводных данных снова щелкните правой кнопкой мыши поле OrderQty и выберите команду Без подробностей (Hide Details).

После того как подробности будут скрыты, вы получите приемлемый результат, напоми­нающий перекрестный запрос (рис. 9.14).

Подсказка

Если вы знаете наперед, что никогда не захотите отображать подробности, можно добавить итоги сразу же. Для этого выберите поле (в данном случае OrderQty) в окне Список полей сводной таблицы и затем в раскрывающемся списке в нижней части этого окна выберите ва­риант Данные (Data Area). Далее щелкните мышью кнопку Добавить в. Этот подход удобен при работе с громадными таблицами, содержащими тысячи записей. В такой ситуации быстрее добавить итог, а не подробные сведения из каждой записи.

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

Манипуляции сводной таблицей

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

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

  • Для удаления поля щелкните его правой кнопкой мыши и выберите команду Удалить (Remove). Или перетащите его за пределы окна программы Access (так, чтобы указатель мыши превратился в стрелку со знаком X) и отпустите.

  • Для перемещения поля из одной позиции в другую просто перетащите имя поля в нужное место. Например, можно изменить приведенный ранее пример, перетащив поле столбцов (Country) в область строк, а поле строк (ProductName) в область столбцов.

  • Для упорядочивания группы щелкните правой кнопкой мыши внутри столбца этой группы и выберите последовательность команд Сортировка Сортировка по возрастанию (Sort → Sort Ascending) или Сортировка Сортировка по убыванию (Sort → Sort Descending). Вы можете использовать этот прием для поиска стран и категорий с максимальным объемом продаж (или приносящих максимальный доход).

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

  • Для включения дополнительных уровней группировки перетащите дополнительные поля из окна Список полей сводной таблицы в область строк или столбцов. Хитрость заключается

вразмещении поля в нужном месте иерархии группировок. Например, если вы хотите разбить группу страны на группы штатов, нужно поместить полеStateProvince справа от поля Country, как показано на рис. 9.15. Если же вы хотите разбить группы ка­тегорий товаров на группы отдельных товаров, нужно поместить поле ProductName справа от поля ProductCategory.

Рис. 9.15. Вверху: поле StateProvince располагается справа от поля Country. Теперь столбцы будут группироваться по странам (поле Country) и внутри стран по штатам (поле StateProvince) — как раз то, что нужно. Программа Access отображает толстую голубую линию, обозначая место расположения столбца после того, как вы отпустите левую кнопку мыши. Внизу: поле StateProvince располагается слева от поля Country. Теперь столбцы группируются сначала по штатам, а затем по странам. Программа разрешает сделать это, хотя в подобном действии мало смысла. Каждый штат принадлежит только одной стране, и в группе будет только одна подгруппа, которая бесполезна

Каждый раз, когда вы изменяете структуру сводной таблицы, программа просматривает вашу таблицу и полностью перестраивает сводную. Если вы изменяете данные в открытой сводной таблице, можно выбрать на ленте Работа со сводными таблицами | Конструктор Данные Обновить (PivotTabie Tools | Design → Data → Refresh Pivot), чтобы заставить программу Access сразу перестроить сводную таблицу.

Создание вычисляемого поля

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

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

1. В режиме Сводная таблица выберите на ленте Работа со сводными таблицами | Конструктор Сервис Формулы Создание вычисляемого поля сведений (PivotTable Tools | Design → Tools → Formulas → Create Calculated Detail Field).

На экране появится окно Свойства (Properties) с несколькими вкладками, в данный мо­мент отображена вкладка Вычисление (Calculation) (рис. 9.16).

Рис. 9.16. Это вычисляемое поле перемножает значения двух полей

  1. В поле Имя (Name) введите имя вычисляемого поля. Например, можно ввести имя TotalRevenue.

  2. В большое поле, расположенное под полем Имя, введите выражение, выполняющее вычисление.

Можно ввести, к примеру, [UnitPrice] * [OrderQty].

Вы можете применять любую комбинацию функций Access и полей исходной таблицы. (Сведения о создании выражений для вычисляемых полей можно найти в разд. "Вычисляемые поля "главы 7.) Если вы забыли имя поля, можно воспользоваться раскры­вающимся списком, расположенным под текстовым полем. Просто выберите поле и щелкните мышью кнопку Добавить ссылку на (Insert Reference To).

4. Используя другие вкладки, измените, как считаете нужным, параметры форматирования вашего поля.

Другие вкладки позволяют управлять тем, как ваше вычисляемое поле решает иные за­дачи, связанные со сводной таблицей (например, отбор записей) и параметрами форма­тирования поля. Самые полезные параметры находятся на вкладке Формат (Format), позволяющей задать шрифт, цвет и (что особенно важно) формат вывода Денежный для поля TotalRevenue, таким образом, оно отображается со знаком валюты в соответствии с настройками вашего компьютера, запятыми и двумя знаками в дробной части.

5. Щелкните кнопкой мыши вкладку Вычисление (если она не выбрана в настоящий момент) и щелкните мышью кнопку Изменить (Change) для вставки вычисляемого поля в сводную таблицу.

Если вы воспользовались кнопкой Без подробностей (Hide Details) для сворачивания сводной таблицы и отображения только итоговых данных, то ничего не увидите в ней. Только что добавленное вами вычисляемое поле — это поле сведений или подробностей. Для того чтобы увидеть полный список значений всех записей, выберите на ленте Работа со сводными таблицами | Конструктор Показать или скрыть С подробностями (PivotTable Tools | Design → Show/Hide → Show Details), прежде чем продолжить. Ваше вычисляемое поле также появится в окне Список полей сводной таблицы. Если позже захотите от него избавиться, щелкните поле в этом списке правой кнопкой мыши и выберите команду Удалить. В следующем пункте добавляется полезный итог к вашему полю сведений.

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

Ваше итоговое поле появится в списке полей сводной таблицы в группе Итоги, располо­женной в верхней части списка. Для удаления этого поля щелкните его правой кнопкой мыши и выберите команду Удалить. Для удаления поля из сводной таблицы, но сохране­ния его под рукой для применения в дальнейшем, щелкните мышью поле в таблице и выбе­рите команду Удалить. Если вам не нравится длинное имя итогового поля (которое обычно выглядит как "Sum of TotalRevenue" (Сумма TotalRevenue)), щелкните поле правой кноп­кой мыши и выберите команду Свойства, чтобы открыть одноименное окно. Укоротить имя можно на вкладке Заголовки (Caption) в текстовом поле Заголовок (Name).

На рис. 9.17 показан окончательный вариант примера.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]