Функции COUNTIF и SUMIF

advertisement
Функции COUNTIF и SUMIF
Функции COUNTIF и SUMIF часто используются для получения сводных данных.
Функция COUNTIF находит количество значений, удовлетворяющих критерию в
заданном диапазоне. Функция имеет следующий общий вид:
COUNTIF(диапазон; критерий)
Функция SUMIF находит значения, удовлетворяющие критерию в диапазоне, и суммирует
значения в тех же позициях из диапазона. Функция имеет следующий общий вид:
SUM IF (диапазон 1; критерий1; диапазон2 )
Если диапазон 2 отсутствует, то суммируются соответствующие значения из диапазона1.
Критерием может быть
•
константа: 13, "kask",
•
имя ячейки или ее адрес: kood, B15,
•
сравнение в виде "знак сравнения значение ": "<0", ">=5000".
=COUNTIF(liigid; "береза") Находит количество слов береза в диапазоне liigid.
=COUNTIF(liigid; liik)
Находит количество значений из ячейки liik в диапазоне liigid.
=SUMIF(arvud; ">0") Находит сумму положительных чисел в диапазоне arvud.
=SUMIF(arvud; ">0") / COUNTIF(arvud ;">0")
Находит среднее арифметическое значение положительных чисел в диапазоне arvud.
Задание- для моей базы данных составить сводную таблицу по продавцам, клиентам и
товарам
>
<
106800
39715
<>
критерий для диапазона не ввести
Natalie Petersen
Kevin Barney
Frank DiVito
Nicole
Brockmann
Aileen Jaitin
34800
SUMIF(Sheet1!G:G;">10000")
SUMIF(Sheet1!G:G;"<5000")
посчитать как разность больше либо равно 5000 и больше
10000
SUMIF(Sheet1!C:C;B7;Sheet1!G:G)
40140
57270
68430
25625
Nicole
Brockmann
7
COUNTIF(база!C:C;B13)
Функции поиска и ссылок
Функции поиска и ссылок дают возможность
 ссылаться на значения ячеек и наборов ячеек,
 делать запросы и выборки из таблиц,
 создавать связи между таблицами и автоматически переносить данные
из одной таблицы в другую
 находить в таблицах данные, отвечающие заданным условиям и др.
Ниже приведены основные функции поиска и ссылок. Элементы в квадратных скобках
являются не обязательными. В следующих разделах наиболее важные функции
рассматриваются подробнее.
1
Функции ссылок

INDEX (диапазон; [ индекс_строки; ] [ индекс__столбца ]) Возвращает из данного
диапазона значение ячейки, заданной индексами строга и столбца.
 ROW([ набор ячеек ]), COLUMN( [набор_ячеек]) Возвращают номер строки или
столбца рабочего листа, соответствующий первой строке или столбца заданного
набора ячеек. Если набор ячеек не задан, то возвращается номер строки или
столбца той ячейки рабочего листа, в которой расположена данная формула.
 ROWS (набор_ячеек), COLUMNS(Ha6op_ячeeк)
Возвращают соответственно количество строк и столбцов в заданном
наборе ячеек.
Функции поиска
 MATCH (искомое; диапазон [; способ_поиска ])
Возвращает порядковый номер искомого значения в заданном диапазоне (векторе).
 VLOOKUP (искомое; диапазон; номер_столбца [;способ_поиска]) Находит искомое
значение в первом столбце диапазона и возвращает значение из столбца, заданного
номером _столбца, в найденной строке.
 HLOOKUP (искомое; диапазон; номер__строки [;способ_поиска]) Находит искомое
значение в первой строке диапазона и возвращает значение из строки, заданной
номером_строки, в найденном столбце.
 LOOKUP (искомое; вектор1, вектор2)
Находит искомое значение в векторе1 и возвращает соответствующее
значение из вектора2.
В некоторой степени условно можно отнести к этим функциям также функции COUNTIF
и SUMIF. Формально они относятся к математическим функциям, однако также связаны и
с поиском:
 SUMIF (диапазон1; критерий [;диапазон2 ])
Находит сумму значений, удовлетворяющих критерию из диапазона1 или диапазона2
 COUNTIF (диапазон; критерий)
Находит количество значений в диапазоне, удовлетворяющих критерию
Функция INDEX
Функция INDEX возвращает (находит) в данном диапазоне значение ячейки, заданное
индексами (порядковыми номерами). Функция имеет три варианта:
INDEX {диапазон; индекс__строки; индекс_столбца) или INDEX (строка;
индекс_столбца) или INDEX (столбец; индекс__строки)
Здесь диапазон - это прямоугольная область - двухмерный массив (матрица), которая
состоит из строк и столбцов,
строка - часть строки рабочего листа - одномерный массив (вектор), столбец — часть
столбца рабочего листа — одномерный массив (вектор), индекс_строки и индекс
__столбца - порядковый номер строки (столбца) от начала массива (набора ячеек).
Примеры использования функции- Найти название дня недели по данной дате.
дата
09.02.2006
номер дня в неделе
4 WEEKDAY(C4;2)
2-это понедельник 1-ый
название дня
четверг
INDEX(дни_недели;C5)
вставил в функцию F3
2
дни недели
1понедельник
2вторник
3среда
4четверг
5пятница
6суббота
7воскресенье
имя создал -insert -create -назвал дни_недели - автоматически
Функция WEEKDAY по дате находит порядковый номер дня недели: 1 -Понедельник, 2Вторник, ... 7 — Воскресенье. Чтобы получить название дня недели, необходимо
образовать вспомогательный вектор дни (здесь — дни), содержащий названия дней
недели. Он может располагаться в любом месте рабочей книги, а также в другой рабочей
книге.
Найти тарифы работников (оплату за час) по категории зарплаты, если каждой
категории соответствует тариф.
Предположим, что набору ячеек вектора тарифов дано имя- Тарифы
Категории зарплат работников записаны в столбце с именем «категория». В каждой
ячейке столбца Тариф записана формула =INDEX(тарифы; категория).
категории
1
тарифы
13
№
| 2
| 20
|
|
3
27
4
35
фамилия
1Иванов
2Петров
3Сидоров
4Фёдоров
5Потапов
5
42
6
55
категория
тариф
3
7
5
4
3
7
65
часы
27
65
42
35
27
8
72
9
85
10
100
зарплата
8
216
10
650
12
504
14
490
16
432
по категории ставим тариф
через индекс
Задана таблица с данными о квартирах, которая может быть расположена на любом
рабочем листе. Найти по номеру квартиры имя владельца, площадь и количество
жителей
Для ссылки с помощью функции INDEX на данные таблицы можно использовать
различные варианты, например:
•
один двухмерный массив (матрица),
•
три одномерных массива (столбца).
Двухмерный массив - имя «квартиры» задано набору ячеек, в котором n строк (n количество квартир) и 4 столбца. Для ссылки на данные необходимо использовать два
индекса: индекс строки в таблице «квартиры» задается с помощью номера квартиры
в ячейке krt, индексы столбца заданы с помощью констант.
Три одномерных массива. Столбцам таблицы заданы отдельные имена: владелец,
жителей, площадь. Для ссылок на данные используется один индекс, которым является
номер квартиры. Его значение записано в ячейке krt.
3
Квартира Владелец
1Иванов
2Петров
3Сидоров
4Фёдоров
5Потапов
жителей площадь
2
55
3
67
5
45
4
67
3
55
№ квартиры
5
Владелец
Потапов
площадь
55
жителей
3
INDEX(Владелец;K11)
по номеру квартиры
определяем
владельца, площадь и
кол-во жителей
Основные принципы использования функций поиска
Искомое значение может быть текстом, числом, датой и т.п.
Соответствующее ему значение ищется в диапазоне ключей таблицы поиска.
Диапазон поиска или таблица поиска - таблица или вектор (столбец, строка), в которых
ищется заданное значение, а также часто выбирается возвращаемое значение.
Диапазон ключей или поле ключа - диапазон (столбец или строка), в котором ищется
значение, соответствующее заданному. Часто часть диапазона поиска (столбец, строка)
может быть в свою очередь отдельным диапазоном.
Возвращаемое значение - позиция искомого значения (порядковый номер) в диапазоне
ключей или найденное на его основе значение в диапазоне поиска.
Используется два основных способа поиска:
•
точное соответствие, или поиск по ключу,
•
поиск промежутка.
При поиске по ключу предполагается, что в диапазоне ключей имеется точно такое же
значение, как искомое. Обычно искомое значение, а также значения в диапазоне ключей
представляют собой какие-либо коды или признаки, которые однозначно
идентифицируют записи (строки) в таблице поиска (диапазоне поиска). Если искомая
величина в диапазоне ключей отсутствует, то выдается сообщение об ошибке. Значения
в диапазоне ключей могут быть в любом порядке.
При поиске промежутка значений в общем случае не предполагается существование
искомого значения в диапазоне ключей. Если точно такое значение отсутствует, то
искомое значение сопоставляется с ближайшим значением, которое меньше искомого.
Значения в диапазоне ключей должны быть упорядочены в возрастающем порядке.
Обычно искомое значение и значения в диапазоне ключей представляют собой числа. В
диапазоне ключей они представляют собой нижнюю границу искомого промежутка.
Функция MATCH
Функция MATCH возвращает порядковый номер (позицию) искомого значения в данном
векторе (строке или столбце), её общий вид следующий:
4
MATCH (искомое; вектор [; способ_поиска ])
способ_поиска - не обязателен, возможные значения: 0 и 1. По умолчанию (если
отсутствует) равен 1.
0
- точное совпадение, или поиск по ключу. Значения в векторе могут быть в любом
порядке. Если искомого значения в векторе нет, выдается сообщение об ошибке - #N/A.
1
- поиск промежутка. Значения в векторе должны быть упорядочены в
возрастающем порядке. Если искомого значения в векторе нет, то возвращается
ближайшее меньшее значение.
Самостоятельно функция используется сравнительно редко. Обычно она используется
вместе с функцией INDEX.
Примеры
Найти в прейскуранте по виду древесины (виды) её цену.
ель
liik
Виды
Цены
береза
450
сосна
510
осина
390
ель
550
дуб
850
ясень
650
nr
1
2
3
4
5
6
4 MATCH("ель";Виды;0)
hind
550 INDEX(Цены;G3)
550 INDEX(Цены;MATCH(G2;Виды;0))
Вид древесины (liik) ищется с помощью функции MATCH в векторе Liigid (Виды).
Функция возвращает порядковый номер искомого значения в заданном векторе (береза 1, сосна - 2 и т.д.). Так как предполагается точное совпадение, признак способа поиска
равен 0. Порядковый номер, найденный функцией MATCH, используется в функции
INDEX для ссылки на соответствующий элемент в векторе Hinnad (Цены). Векторы
(столбцы) Liigid и Hinnad не обязательно должны быть расположены рядом, имеет
значение только их соответствие.
Найти вид древесины (Виды), имеющей наибольшую цену (Цены)
максцена
850
Вид
дуб
Вид
дуб
MAX(Цены)
INDEX(Виды;MATCH(B14;Цены;0))
INDEX(Виды;MATCH(MAX(Цены);Цены;0))
при заполнении вторго варианта индекса надо сперва занести в функции match и 0, и
затем идти в максимум
Функция MAX находит максимальное значение в векторе Hinnad (Цены). Функция
MATCH находит порядковый номер этого значения в векторе Hinnad и функция INDEX
возвращает имя с соответствующим номером из вектора Liigid (Виды).
Найти стоимость древесины в зависимости от поперечного сечения, используя
приведенный ниже прейскурант
d Цена
1
520
5
2
550
2
3
2
565
5
INDEX(Цены1;MATCH(d;Размеры))
Прейскурант
Диаметр
Цена
<10
440
480
520
550
580
565
10-14
15-19
20-24
25-29
>=30
Таблица поиска
Размеры
0
Цены
440
10
15
20
480
520
550
580
565
25
30
Для поиска цен можно использовать функции MATCH вместе с
функцией INDEX. Первая из них должна находить по заданному
размеру диаметра соответствующий промежуток, вторая - по
полученному порядковому номеру найти соответствующую цену.
1
Прейскурант, приведенный выше, не подходит в таком виде для
2
3 поиска функцией MATCH. Необходимо создать подходящую
4 таблицу поиска.
5 Она состоит из двух векторов, значения в которых находятся в
6 соответствии: Размеры и Цены. При составлении таблицы поиска
учитывается, что функция MATCH при отсутствии точного
совпадения значений возвращает ближайшее меньшее значение: в
векторе Размеры заданы нижние границы промежутков размеров, в
вектор Цены - цены для соответствующих размеров поперечного
сечения.
Для сравнения приведена возможная функция IF для нахождения цен
=IF(d<10;440;IF(d<15;480;IF(d<20;520;IF(d<25,550;IF(d<30;580;565)))))
Функция IF содержит константы. Если прейскурант изменится, то
необходимо изменять формулы. В случае использования функций
MATCH и INDEX вносить изменения следует только в таблицу
поиска.
Найти цену древесины в зависимости от вида и размера поперечного сечения.
У нас имеется таблица Hinnad стоимости древесины в зависимости от вида дерева
и диаметра –для наименования выделял без левой и верхней строки –define. Столбец
Виды 1 тоже озаглавил (create), а строку Размеры1 –определил. Индекс искать
теперь надо в массиве, а не в столбце -1-ый вариант. В приведенном примере первая
функция MATCH находит порядковый номер вида в векторе виды (соответствует номеру
строки в таблице Hinnad), вторая - порядковый номер значения, соответствующего
величине поперечного сечения (d) в векторе размеры (задает номер столбца в таблице
Hinnad).
Таблица продаж древесины
вид1
d1
береза
15
сосна
22
цена
410
660
количество
56,6
70,5
всего
23 206,00
43 005,00
INDEX(hinnad;MATCH(вид1;виды1;0);MATCH(d1_;Размеры1))
Функция INDEX возвращает по найденным числам соответствующее значение из
таблицы hinnad.
виды1
haab
0
180
10
250
15
290
сосна
480
530
береза
230
ель
saar
дуб
440
510
600
1
Таблица
20
Hinnad
размеры1
360
25
380
30
370
1
570
610
640
625
2
350
410
480
500
490
3
480
540
680
2
520
610
750
3
550
660
850
4
580
680
900
565
670
1100
4
5
6
5
6
hinnad - таблица (6 * 6), виды1- столбец (6), размеры1- строка (6)
6
Функции VLOOKUP и HLOOKUP
Функция VLOOKUP находит позицию (строку) искомого значения в 1-м столбце
диапазона и возвращает значение из найденной строки в столбце с заданным номером.
Общий вид функции следующий:
VLOOKUP (искомое; диапазон; столбец [; способ_поиска ]) Здесь способ поиска не
является обязательным. Задается с помощью логических значений True или False, по
умолчанию - True.
True (то же, что 1 в функции MATCH) - поиск промежутка. Значения в 1-м столбце (в
диапазоне поиска) должны быть упорядочены в возрастающем порядке. Если такого
значения нет, то в качестве результата возвращается ближайшее меньшее значение.
False (то же, что 0 в функции MATCH) - точное совпадение или поиск по ключу.
Значения в 1-м столбце могут быть в любом порядке. Если искомого значения нет, то
выдается сообщение об ошибке - #N/A.
Примеры
Найти в прейскуранте по коду товара его название и цену
прейскурант
коды
товар
цены
VLOOKUP(код;прейскурант;2;FALSE)
sk01
сахар FIN
15,00
задали имя для кода (столбец С и для
sk02
сахар DEM
14,00
массива -А2:С9
sk13
сахар UKR
13,00
сами пишем нужный код в столбце кода
jan01 мука 1. Сорт
13,00
(или использовать ячейку) и рядом
jan02 мука 2. Сорт
12,00
получаем полное название и цену
jar01
мука ржаная
11,00
Таблица учета продаж имеет следующий вид:
таблица учёта продаж
код
jan02
sk02
jar01
sk01
название товара
цена
количество
мука 2. Сорт
12
сахар DEM
14
мука ржаная
11
сахар FIN
15
VLOOKUP(код;прейскурант;2;FALSE)
VLOOKUP(код;прейскурант;3;FALSE)
Найти цену древесины в зависимости от размера поперечного сечения
Размеры
0
Цены
440
10
15
20
480
520
550
580
565
25
30
Таблица поиска
hinnakiri (6 * 2)
Учет продажи древесины
Цена
d
15
22
32
8
520
550
565
440
Кол-во
Стоимость
VLOOKUP(d;цены;2)
для сравнения
INDEX(Цены1;MATCH(d;Размеры))
7
Найти цену древесины в зависимости от вида и размера поперечного сечения
размеры
1
0
2
3
4
10
15
20
5
25
6
30
осина
сосна
180
480
250
530
290
570
360
610
380
640
370
625
береза
ель
230
440
350
480
410
520
480
550
500
580
490
565
ясень
дуб
510
600
540
680
610
660
850
680
900
670
1100
750
1
2
3
4
Таблица поиска hinnakiri - 6 * 7 и вектор (строка) - moodud - 1*6
Таблица учета
продаж
вид
береза
ясень
d
15
22
цена
410
660
кол-во
56,6
5
6
7
стоим.
VLOOKUP(вид;preis;MATCH(B60;razm)+1;FALSE)
+1 из за наименования деревьев в массиве
Функция VLOOKUP ищет вид древесины (вид) в 1-м столбце таблицы preis и задает
строку, из которой выбирается возвращаемое значение. Функция MATCH ищет значение,
соответствующее размеру поперечного сечения в векторе razm. Полученный порядковый
номер плюс 1 (1 из за наименования деревьев в массиве) задает номер столбца для функции
VLOOKUP. Эта функция (VLOOKUP) обычно заменяет две – INDEX и MATCH
Функция HLOOKUP находит позицию (столбец) искомого значения в 1-й строке
диапазона и возвращает значение из строки с заданным номером в найденном столбце.
Общий вид функции следующий:
HLOOKUP (искомое; диапазон; строка [; способ поиска ])
Принципы работы этой функции аналогичны работе VLOOKUP. Различие состоит только
в ориентации таблицы поиска.
8
Функция LOOKUP
Функция LOOKUP находит значение, соответствующее порядковому номеру искомого
значения в векторе вектор1 (диапазон поиска), и возвращает значение с тем же номером
из вектора вектор2. Функция имеет следующий общий вид:
LOOKUP (искомое; вектор 1; вектор2)
Значения в векторе вектор1 должны быть всегда упорядочены в возрастающем порядке.
Если искомого значения нет, то возвращается значение, соответствующее ближайшему
значению, меньшему чем искомое.
Пример
Найти стоимость древесины в зависимости от размера сечения.
Диапазон поиска состоит из двух векторов Размеры и цены1.
Размеры
Цены1
0
440
10
480
15
520
20
550
25
580
30
565
Учет продажи древесины
Цена
d
15
22
32
8
520
550
565
440
Кол-во
Стоимость
LOOKUP(d;Размеры;Цены1)
для сравнения
INDEX(Цены1;MATCH(d;Размеры))
9
Download