Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Руководство_Calc.pdf
Скачиваний:
77
Добавлен:
28.03.2015
Размер:
4.1 Mб
Скачать

Глава 13Calc как простая база данных

Манипуляции с отфильтрованными данными

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

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

Функции Calc подобные функциям базы данных

Хотя каждая функция Calc может использоваться для манипуляции данными, функции в Таблице 8 чаще используются как таковые. Некоторые названия функций отличаются только буквой, добавленной на конце; AVERAGE и AVERAGEA, например. Функции, которые не имеют на конце буквы A оперируют только цифровыми значениями, а ячейки содержащие текст или пустые игнорируют. Соответствующая функция, название которой заканчивается буквой “A”, трактует текстовые значения как числовое со значением ноль; пустые ячейки по-прежнему игнорируются.

Таблица 10. Функции, часто используемые как функции базы данных.

Функция

Описание

AVERAGE

Возвращает среднее. Игнорируются пустые ячейки и ячейки, со-

 

держащие текст.

AVERAGEA

Возвращает среднее. Текстовые значения интерпретируются как 0,

 

а пустые ячейки игнорируются.

COUNT

Подсчитывает количество числовых элементов, текстовые элемен-

 

ты игнорируются.

COUNTA

Подсчитывает количество непустых записей

COUNTBLANK

Возвращает количество пустых ячеек.

 

 

COUNTIF

Возвращает количество ячеек, которые соответствуют критериям

 

поиска.

HLOOKUP

Ищет определенное значение по столбцам в первой строке массива.

 

Возвращает значение из другой строки в том же самом столбце.

INDEX

Возвращает содержимое ячейки, определенной номером строки и

 

столбца или дополнительным именем диапазона.

INDIRECT

Возвращает ссылку, определенную текстовой строкой.

 

 

LOOKUP

Возвращает содержимое ячейки из диапазона, состоящего из одной

 

строки или одного столбца, или из массива.

164

Руководство по Calc

 

Глава 13Calc как простая база данных

 

 

 

Функция

Описание

 

MATCH

Осуществляет поиск в массиве и возвращает относительное поло-

 

 

жение найденного элемента.

 

MAX

Возвращает максимальное числовое значение из списка аргумен-

 

 

тов.

 

MAXA

Возвращает максимальное числовое значение из списка аргумен-

 

 

тов. Текстовое значение интерпретируется как 0.

 

MIN

Возвращает минимальное числовое значение из списка аргументов.

 

MINA

Возвращает минимальное числовое значение из списка аргументов.

 

 

Текстовое значение интерпретируется как 0.

 

MEDIAN

Возвращает медиану набора чисел.

 

MODE

Возвращает наиболее общее значение в наборе данных. Если есть

 

 

несколько значений с одинаковой частотой, возвращается наимень-

 

 

шее значение. Ошибка происходит в том случае, когда значение не

 

 

появляется дважды.

 

OFFSET

Возвращает значение смещения ячейки заданной числом строк и

 

 

столбцов от заданной точки отсчета.

 

PRODUCT

Возвращает произведение ячеек.

 

 

 

 

STDEV

Определяет стандартное отклонение, исходя из выборки.

 

STDEVA

Определяет стандартное отклонение, исходя из выборки. Текстовое

 

 

значение интерпретируется как 0.

 

STDEVP

Вычисляет стандартное отклонение, основанное на генеральной со-

 

 

вокупности.

 

STDEVPA

Вычисляет стандартное отклонение, основанное на генеральной со-

 

 

вокупности. Текстовое значение интерпретируется как 0.

 

SUBTOTAL

Вычисляет указанную функцию, основанную на подмножестве, со-

 

 

зданном с использованием автофильтров.

 

SUM

Возвращает сумму ячеек.

 

 

 

 

SUMIF

Вычисляет сумму ячеек, которые соответствуют критериям поиска.

 

VAR

Определяет дисперсию, исходя из выборки.

 

 

 

 

VARA

Определяет дисперсию, исходя из выборки. Текстовое значение ин-

 

 

терпретируется как 0.

 

VARP

Определяет дисперсию, основанную на генеральной совокупности.

 

 

 

 

VARPA

Определяет дисперсию, основанную на генеральной совокупности.

 

 

Текстовое значение интерпретируется как 0.

 

VLOOKUP

Ищет определенное значение по строкам в первом столбце массива.

 

 

Возвращает значение из другого столбца в той же самой строке.

 

Большинство функций в Таблице 8 не требуют никакого объяснения, потому что они хорошо поняты (SUM, например) или потому что, если Вы их используете то, Вы знаете, что это такое (STDEV, например). К сожалению, некоторые из более полезных функций не часто используются, потому что они не хорошо поняты.

Руководство по Calc

165

Глава 13Calc как простая база данных

Количество и сумма ячеек, которые соответствуют условиям: COUNTIF и SUMIF

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

Функция COUNTIF подсчитывает количество ячеек в диапазоне, которые удовлетворяют определенным критериям. Первый аргумент COUNTIF определяет диапазон для поиска, а второй аргумент – критерий поиска. Таблица 11 иллюстрирует различные критерии поиска при использовании функции COUNTIF, ссылающейся на данные, показанные в Таблице 9.

Первые два аргумента SUMIF служат для той же самой цели, что и аргументы COUNTIF; диапазон, который содержит ячейки для поиска и критерий поиска. Третий и последний аргумент SUMIF определяет диапазон для суммирования. Для каждой ячейки в диапазоне поиска, которая соответствует критериям поиска, соответствующая ячейка в диапазоне суммы прибавляется к сумме.

Таблица 11. Примеры критериев поиска для функций COUNTIF и SUMIF .

Тип

Функция

 

Результа

Описание

 

критерия

 

 

т

 

 

 

Числовой

=COUNTIF(B1:C16; 95)

3

Поиск числового значения

 

 

 

 

95.

 

 

Текстовый

=COUNTIF(B1:C16; "95")

3

Поиск числового или тек-

 

 

 

 

стового значения 95.

 

Выражение

=COUNTIF(B1:C16; ">95")

6

Поиск числового значения

 

 

 

 

большего чем 95.

 

Выражение

=COUNTIF(B1:C16; 2*45+5)

3

Поиск

только числового

 

 

 

 

значения 95.

 

Регулярное

=COUNTIF(B1:C16; "9.*")

12

Поиск числового или тек-

выражение

 

 

 

стового значения начинаю-

 

 

 

 

щегося с 9.

 

Ссылка на

=COUNTIF(B1:C16; B3)

3

Поиск числового или чи-

ячейку

 

 

 

слового и текстового зна-

 

 

 

 

чения

в зависимости

от

 

 

 

 

типа данных в ячейке B3.

Regular

=SUMIF(A1:A16;

"B.*";

227

Сумма по столбцу B для

expression

B1:B16)

 

 

имен,

начинающихся

с

 

 

 

 

буквы B.

 

Игнорирование фильтрованных ячеек при использовании SUBTOTAL

Функция SUBTOTAL применяет функцию (см. Таблицу 12) к диапазону данных, но она игнорирует ячейки, скрытые фильтром и ячейки, которые уже содержат

166

Руководство по Calc

Глава 13Calc как простая база данных

SUBTOTAL. Например, =SUBTOTAL(2, "B2:B16") считает число ячеек в диапазоне B2:B16, которые не скрыты фильтром.

Таблица 12. Индекс функции для функции SUBTOTAL.

Function index

Function

1

AVERAGE

 

 

2

COUNT

3

COUNTA

 

 

4

MAX

5

MIN

 

 

6

PRODUCT

7

STDEV

 

 

8

STDEVP

9

SUM

 

 

10

VAR

11

VARP

 

 

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

Поиск строк или столбцов с использованием функций VLOOKUP, HLOOKUP и LOOKUP

Используйте функцию VLOOKUP для поиска в первом столбце диапазона и возвращения значения ячейки в заданном столбце той же самой строки. Например, Таблица 9 содержит строки данных. Используйте VLOOKUP для поиска строки, которая начинается с “Bob” и возвращения столбца C; =VLOOKUP("Frank"; A1:C5; 3; 1). Функция HLOOKUP, с другой стороны, ищет в первой строке, а не в первом столбце, и возвращает значение, которое содержится ниже в том же столбце, а не в строке. Поддерживаются следующие формы для VLOOKUP и HLOOKUP:

VLOOKUP(search_value; search_range; column_index) VLOOKUP(search_value; search_range; column_index; st_order) HLOOKUP(search_value; search_range; row_index) HLOOKUP(search_value; search_range; row_index; sort_order)

Руководство по Calc

167

Глава 13Calc как простая база данных

Для VLOOKUP, первый аргумент, search_value, идентифицирует значение для поиска. Второй аргумент, search_range, определяет диапазон ячеек для поиска; поиск осуществляется только по первому столбцу. column_index определяет столбец из которого возвращается значение; значение 1 определяет, что возвращается первый столбец. Последний аргумент, sort_order, является необязательным. Значение по умолчанию для sort_order = 1, которое определяет, что первый столбец отсортирована в порядке возрастания; значение 0 определяет, что данные не отсортированы. Если данные отсортированы в порядке возрастания, используется более эффективная процедура поиска. Не сортированный поиск требует точного совпадения, но сортированный поиск всегда возвращает значение, если искомый текст находится между первым и последним значениями. Таблица 13 содержит примеры использования функции VLOOKUP.

Таблица 13. VLOOKUP примеры поиска данных в Таблице 9.

Использование

Возвра-

Комментарий

 

 

 

 

щаемое

 

 

 

 

 

 

значени

 

 

 

 

 

 

е

 

 

 

 

 

VLOOKUP("F.*"; A2:C9; 1; 0)

Frank

Возвращает первый столбец первой

 

 

строки, которая начинается с буквы

 

 

“F”.

 

 

 

 

 

 

 

VLOOKUP("F.*"; A2:C9; 1; 1)

Fred

Возвращает первый столбец первой

 

 

строки, начинающейся с “F”; это бы-

 

 

стрее, потому что данные, как извест-

 

 

но, отсортированы в порядке возрас-

 

 

тания.

 

 

 

 

VLOOKUP("FRED"; A2:C9; 2; 0)

87

Возвращает второй

столбец первой

 

 

строки, которая содержит “FRED”.

VLOOKUP("FRED"; A2:C9; 2; 1)

87

Возвращает второй столбец послед-

 

 

ней строки,

которая

содержит

 

 

“FRED”.

 

 

 

 

VLOOKUP("Fran"; A2:C9; 3; 0)

#N/A

Данные не отсортированы , так что

 

 

должно

быть

точное

совпадение.

 

 

Совпадения не существует, таким об-

 

 

разом, возвращается ошибка.

VLOOKUP("Fran"; A2:C9; 3; 1)

65

“Fran” не существует, таким образом,

 

 

возвращается третий столбец строки,

 

 

которая

должна

предшествовать

 

 

“Fran”.

 

 

 

 

VLOOKUP("Aaron"; A2:C9; 3; 1)

#N/A

“Aaron” предшествует первому эле-

 

 

менту таблицы, таким образом, воз-

 

 

вращается ошибка с отсортирован-

 

 

ным списком.

 

 

 

Внимание Поведение для LOOKUP, HLOOKUP, VLOOKUP и MATCH одинаковое в режимах отсортированного диапазона. Когда ищется числовое значение,

168

Руководство по Calc