Уокенбах Формулы в Excel
.pdfОдин из способов решения этой проблемы— использовать функцию ПРОСМОТР, которая требует в качестве аргументов два диапазона. Следующая формула (в ячейке F3) возвращает средний темп игрока (из столбца В), имя которого введено в ячейку LookupValue:
=ПРОСМОТР(LookupValue;Players;Averages)
Для того чтобы использовать функцию ВПР, диапазон поиска (в данном случае диапазон Players) необходимо упорядочить в порядке возрастания. В дополнение к этому ограничению, формула имеет еще одну небольшую проблему: при вводе имени несуществующего игрока (другими словами, если ячейка LookupValue содержит значение, которое отсутствует в диапазоне Players), результат, возвращаемый формулой, будет ошибочным.
Более эффективный способ — совместное использование функций ИНДЕКС и ПОИСКПОЗ. Следующая формула работает точно так же, как предыдущая, за исключением того, что она возвращает ошибку #Н/Д,если искомый игрок не найден. Другое преимущество этой формулы состоит в том, что имена игроков не требуют сортировки:
=ИНДЕКС(Averages;ПОИСКПОЗ(LookupValue;Players;0))
Поиск сучетом регистра
Давайте рассмотрим задачу поиска текста в таблице данных. Базовые функциипоискаданных в Excel (ПРОСМОТР, ВПР и ГПР) не учитывают регистр символов. Поэтому, если вы используете эти функции, чтобы найти в таблице текст бюджет, формула будет возвращать любую найденную, соответствующую этому тексту строку, например:БЮДЖЕТ, Бюджет или БюДжЕт.
Обратите внимание, рабочий лист, отображенный на рис. 8.8, содержит два диапазона: первый диапазон включает ячейки D2 :D7 (Rangel), второй — ячейки Е2 : Е7 (Range2). Текст, который необходимо найти, содержится в ячейке Bl (Value).
APPLE |
100 |
Следующая формула |
массива, введенная в |
apple |
200 |
||
DOG |
300 |
ячейку В2, осуществляет |
поиск заданного значе- |
dog |
400 |
||
CANDY |
500 |
ния в диапазоне Range 1, учитывая при этом ре- |
|
|
|
||
candy |
600 |
|
|
гистр символов, и возвращает соответствующее значение из Range2.
|
{^ИНДЕКС(Range2;ПОИСКПОЗ(ИСТИНА;СОВПАД( |
Рис. 8.8. Чтобы найти текст, учитывая |
|
регистр символов, воспользуйтесь фор-V a l u e ; R a n g e l ) ; 0 ) ) } |
|
мулой массива |
Данная формула находит слово DOG (все симво- |
|
|
|
лы верхнего регистра) и возвращает соответствую- |
щее значение 300. В свою очередь, стандартная формула поиска, использующая функцию ПРОСМОТР, возвращает значение 400:
=ПРОСМОТР(Value;Rangel;Range2)
Помните, что при вводе формулы массива необходимо использовать клавиши <Ctrl+Alt+Enter>.
Поиск значения вмножестве таблиц
Действительно, рабочий лист может содержать любое количество таблиц поиска данных. В таких случаях в форму необходимо ввести информацию о том, в какой именно таблице
210 |
Часть //. Использованиефункций в формулах |
должен осуществляться поиск. Обратите внимание, на рис. 8.9 приведен пример использования множества таблиц на одном рабочем листе.
Рис. 8.9.Данный рабочийлист содержит множество таблицпоиска данных
Данная рабочая книга содержит два диапазона: диапазон G3:Н9 (Table!) и диапазон J 3 : К8 (ТаЫе2) и вычисляет комиссионные вознаграждения продавцов фирмы. Ставка комиссионного вознаграждения каждого отдельного продавца зависит от двух факторов: срока работы продавца в данной фирме (столбец В) и объема сделанным им продаж (столбец С). Столбец D содержит формулы поиска ставки комиссионного вознаграждения в соответствующей таблице. Например, ячейка D2 содержит следующую формулу:
=ВПР(С2;ЕСЛИ(В2<3;ТаЫе1;ТаЫе2) ;2)
Второй аргумент функции ВПР содержит функцию ЕСЛИ, которая использует значение ячейки В2 для того, чтобы определить, какую из таблиц следует просматривать.
Формула в столбце Е просто умножает объем продаж каждого продавца в столбце С на ставку комиссионного вознаграждения из столбца D.Ячейка Е2 содержит следующую формулу:
=C2*D2
Определение оценки по количеству набранных баллов
Еще один типичный пример использования таблиц поиска данных — это выставление экзаменационных оценок по результатам тестирования студентов. На рис. 8.10 показан рабочий лист, который содержит таблицу с количеством набранных баллов и соответствующих категории (диапазон Е2 : F6 с именем GradeList), которая используется для присвоения студенту одной из оценок.
Глава ДПоискданных |
211 |
|
\ХХ^ --<J\ " v | Hiв |
|
•nС |
г D |
E |
F |
0 \ T |
f} |
Student\ | |
|
Grade |
|
-:£csreч |
|
|
2 |
:Adams |
36 |
F |
|
0 |
F |
|
3 JBaker |
68 |
D |
|
40 |
D |
\ |
|
4 |
SCamden |
50 |
D |
|
70 |
С |
|
5 |
IDailey |
77 |
С |
|
80 |
В |
I |
8 |
'Gomez |
92 |
A |
|
90 |
A |
|
7 4 |
Hernandez |
100 |
A |
|
|
|
> > |
8 |
Jackson |
74 |
С |
|
|
|
|
9 |
;Maplethorpe |
45 |
D |
|
|
|
|
10'Paulson |
60 |
D |
|
|
|
,] |
|
11 |
\ Ramirez |
89 |
В |
|
|
|
|
j2jSosa |
99 |
A |
|
|
|
|
|
13 'Thompson |
91 |
A |
|
|
|
|
|
14 |
iWilson |
59 |
D |
|
|
|
|
1С |
|
|
|
|
|
|
|
(^"riKvlookupjf |
|
|
• |
I«J |
|
|
|
Рис. 8.10. Назначение категории оценки по результатам тестирования
Столбец С содержит формулы, которые используют функцию ВПР и таблицу поиска, чтобы на основании полученного каждым студентом количества баллов (столбец В) присвоить студенту соответствующую оценку. Например,ячейка С2 содержит следующую формулу:
=BIlP(B2;GradeList;2)
В том случае, когда таблица поиска содержит небольшое количество значений (как, например, нарис. 8.10), вместо нееможно использовать массивы символов. Например, приведенная ниже формула возвращает категории оценок, не используя при этом таблицу поиска. Информация таблицы поиска введена непосредственно в формулу массива. Для получения дополнительной информации о массивах обратитесь кглаве 14.
= В П Р ( В 2 ; { 0 , " F " ; 4 0 , " D " ; 7 0 , " С " ; 8 0 , " В " / 8 0 , " А " } ; 2 )
Другая, более удобная формула назначения категорий оценок, заключается в использовании функции ПРОСМОТР с двумя аргументами, представляющими собой массивы:
= П Р О С М О Т Р ( В 2 ; { 0 ; 4 0 ; 7 0 ; 8 0 ; 9 0 } ; { " F " ; " D " ; " С " ; " В " ; " А " } )
Вычисление среднего уровня оценок
Средний уровень оценок студентов в данном примере представляет собой числовое представления средней оценки, полученной студентами. Для вычисления этого показателя каждому буквенному символу оценки назначается определенное числовое значение (А=4, В=3, С=2,
D=l |
и F=0). Средний уровень оценки рассчитывается как средняя величина числовых значе- |
ний |
оценок, взвешенная наколичество часов, пройденных поданному курсу. К примеру,од- |
ночасовой курс встречается реже, чем трехчасовой. Градация показателя среднего уровня оценок начинается с 0 (F) изаканчивается 4,00 (А).
На рис. 8.11 показан рабочий лист, содержащий информацию о студенте. Этот студент прошел пять курсов, общее количество прослушанных им часов— 13 (диапазон В2:Вб — CreditHours). Оценки, полученные за каждый курс, содержатся в столбце С (диапазон С2 :С б — Grades). Столбец Dсодержит формулу поиска, которая вычисляет числовое значение оценки длякаждого курса. Например, следующая формула (вячейке D2) используеттаблицу поиска диапазона G2 :Нб {GradeTable).
=ВПР(С2;GradeTable;2;ЛОЖЬ)
212 |
Часть //. Использование функций вформулах |
US
• I 1 |
|
i |
Psych 101 |
2 |
|
3 |
PhysEd |
4 * PoliSci101 |
|
5 |
IndepStudy |
6 |
IntroMath |
mmi |
|
tai i в
1 ' э
2
4
1
3
GPA: 3,38
\ |
С |
; |
G«de Vtl |
»!" |
E |
F , |
и |
|
|
|
|
|
|
Grade! able |
|
||
|
|
|
•p |
{WeightedVal \ |
|
|
f |
|
|
A |
|
4 |
|
12 |
A |
4 |
|
|
С |
|
2 |
|
4 |
В |
3 |
I |
|
В |
|
3 |
|
12 |
С |
2 |
|
|
A |
|
4 |
|
4 |
, D |
1 |
|
|
A |
|
4 |
|
12 |
F |
0 |
|
<-- Requires multiple formulas and lookuptable |
|
|
||||||
|
|
|
* * |
lii |
|
_ |
|
|
Рис. 8.11.Для вычисленияпоказателя среднегоуровня оценки вы можете использовать множество формул
Формулы, введенные в столбец Е, вычисляют взвешенные значения. Например, формула в ячейке Е2 выглядит следующим образом:
=D2*B2
И, наконец, следующая формула в ячейке В 8 вычисляет показатель среднего уровня оценки: =СУММ(Е2:Еб)/СУММ(В2:Вб)
Несмотря на то, что предыдущие формулы работают достаточно хорошо, вы можете несколько упростить вычисление среднего показателя. Чтобы выполнить это вычисление, можно использовать единственную формулу массива, не прибегая к использованию таблицы поиска и формул в столбцах Dи Е. Эта формула выглядит следующим образом:
{=СУММ((ПОИСКПОЗ(Grades;{"F";"D";"С";"В";"А"};0)- 1)*CreditHours)/CYMM(CreditHours)}
Поиск на пересечении строк и столбцов
На рис. 8.12 показан рабочий лист, который содержит данные о ежемесячных объемах продаж товаров компанией. Для того чтобы найти информацию об объеме продаж определенного товара в течение одного заданного месяца, в ячейку В1 необходимо ввести искомый месяц, а в ячейку В2 название товара.
1 i
2
3
4
5
S
:7
8
10
п
12
13
14 f15
..'v.:.. л^Л"" |
в .Го |
|
Month: I |
|
July |
Product: |
Sprockets |
|
Month Offset: r |
|
8 |
Product Offset: r |
|
3 |
Sales: r |
|
3 337 |
* «\sheett/
|
|
|
e |
F |
|
H |
|
|
|
|
|
|
Sprockets : |
|
Combined |
|
|
JWMWQf |
|
2892 |
1771 |
4 718 |
9 381 |
|
||
February |
|
3380 |
4711 |
2 615 |
10 706 |
|
||
March |
|
|
3 744 |
3 223 |
5 312 |
12 279 |
|
|
*Ц*«' |
„;,,,; |
3 221 |
2 438 |
1 108 |
6 767 |
|
||
MW |
- |
|
4839 |
1999 |
1 994 |
8 832 |
|
|
Owe |
|
|
3^67 |
5140 |
3830 |
12 737 |
|
|
A*,;.3 |
;,.,. |
5 467 |
3 337 |
3 232 |
12 036 |
|
||
iSfSssr |
1 718 |
2 040 |
1563 |
5 321 |
|
|||
October |
- т |
1548 |
1061 |
2 590 |
5 199 |
|
||
November |
5083 |
3 558 |
3960 |
12 601 |
|
|||
|
|
|
5 753 |
2839 |
3 013 |
11605 |
|
|
Total |
|
|
44 566 |
37 012 |
35 542 |
117 |
120 |
|
|
|
|
|
J«JL |
|
|
.„.i |
>}& |
Puc. 8.12. Таблица поиска информациина пересечениистроки столбцов
Для упрощения работы с формулами на данном рабочем листе используются следующие диапазоны ячеек:
Глава 8. Поискданных |
213 |
Имя диапазона |
Диапазон |
Month |
B1 |
Product |
B2 |
Table |
D1:H14 |
MonthList |
D1.-D14 |
ProductList |
D1:H1 |
Следующая формула (ячейка В4) использует функцию ПОИСКПОЗ и возвращает позицию заданного месяца в диапазоне ячеек MonthList. К примеру, если вы ищете месяц January, то данная формула возвращает значение 2, поскольку январь — это второй элемент диапазона MonthList (первый элемент — незаполненная ячейка D1).
=n0MCKnO3(Month;MonthList;0)
Формула, введенная в ячейку В5, работает тем же образом, но применяется для диапазона ProductList,
=П0ИСКП03{Product;ProductList;0)
И, наконец, формула в ячейке Вб возвращает соответствующий заданным условиям объем продаж. Формула использует функцию ИНДЕКС и, в качестве аргументов, результаты, полученные в ячейках В4 и В5.
=ИНДЕКС(Table;В4;В5)
Безусловно, все приведенные формулы можно объединить в одну, например: =ИНДЕКС(Table/ПОИСКПОЗ(Month/MonthList;0)/ПОИСКПОЗ{Product;ProductList;0))
Если у вас установлена Ехсе! 97 или более поздняя версия программы, то можете использовать надстройку Мастер подстановок. Мастер подстановок помогает создать формулу для поиска значения, находящегося на пересечении строки и столбца (рис. 8.13).
Еще один способ быстрого создания таблицы для поиска значения на пересечении строк и столбцов предусматривает присвоение имен каждой строке и каждому столбцу таблицы. Чтобы сделать это, выделите таблицу с данными и выберите команду Вставка^Name^Create. После создания имен приведенные формулы выглядят гораздо проще,например:
=Колеса Июль Данная формула использует пересечение двух диапазонов и возвращает данные
о продажах колес в июле. Подробнее об этом см. в главе 3.
Поиск информации вдвух столбцах
В отдельных случаях таблица поиска может содержать два столбца с искомыми данными. На рис. 8.14 приведен пример такой таблицы.
Таблица поиска содержит список автомобилей, для каждого из которых указаны марка, модель и номер. Диапазоны рабочего листа названы следующим образом:
F2 :F12 |
Code |
В1 |
Make |
В2 |
Model |
D2 :D12 |
Rangel |
Е2 :Е12 |
Range2 |
214 |
Часть II. Использование функций в форму |
' [widgets |
|
|
|
|
|
|
1521994 |
"'t fi IS- |
2571995 |
|
0845 |
5 31 |
|
5155 |
Г |
101*: |
iD?i4 |
13 |
S4 «7 |
15 30 |
1283 |
fip |
83 87 |
|
1845 |
1598 |
<-. «Л |
95 02 |
Выберите сгр<*у,«
Pwc. 8.75. Мастерподстановок создает формулыдля поиска значения, находящегося на пересечении строк и столбцов
'Make: Jeep шштштшшшшшшшшшшшштшт
^Model: |
Grand erokee |
Chew |
Blazer |
C-094 |
Icode: |
J-701 |
Chevy |
Tahoe |
C-823 |
|
|
Ford |
Explorer |
F-772 |
|
|
Ford |
Expedition |
F-229 |
|
|
Isuzu |
Rodeo |
t-897 |
|
|
fsuzu |
Trooper |
1-900 |
|
|
Jeep |
Cherokee |
J-983 |
|
|
Jeep |
Grand Cherokee |
J-701 |
|
|
Nissan |
Pathfinder |
N•231 |
|
|
Toyota |
4Runner |
T-871 |
|
|
Toyota |
Land Cruiser |
T-961 |
31 |
|
|
|
|
Рис. 8.14. В данной рабочей книге выполняется поиск информации, на основе данных двух столбцовтаблицы (DuE)
Следующая формула массива выводит на экран номер, соответствующий автомобилю определенной марки и модели:
{=ИНДЕКС (Сосае;П0ИСКП03(Make&Model; |
nokup addiess xls |
|
H P |
|
Rangel&Range2";0))} |
Target: |
24 |
|
i |
|
|
|||
Данная формула связывает текстовые строки, содержащиеся |
Address: |
$C$9 |
74 |
|
fed |
|
62 |
'I |
|
в ячейках Make и Model, а затем отыскивает текст в соответст- |
|
GO |
||
4 |
|
44 |
|
|
вующем объединении двух диапазонов: Range 1 и Range2. |
|
50 |
i |
|
22 |
|
77 |
||
|
за |
|
41 |
|
Определение расположения |
|
24 |
|
|
|
|
55 |
|
|
|
|
|
30 |
|
значения вдиапазоне |
|
|
12 |
|
|
|
1 |
I |
|
|
|
|
7 |
|
|
IS* |
|
21 |
* |
|
11] |
|
22 |
|
В большинстве случаев, формулы просмотра данных |
|
|
|
|
1?^ |
|
53 |
и |
|
таблицы используются для поиска определенных значений. |
18». |
|
36 |
|
ifl |
|
18 |
||
Однако, иногда, пользователю необходимо определить рас- |
|
68 |
|
|
положение определенного значения или ячейки, содержа- |
H';" |
|
|
|
|
|
|
|
|
щей это значение. К примеру, на рис. 8.15 показан рабочий |
Рис. 8.15. Формула в ячейке В2воз- |
|||
лист, содержащий диапазон данных, состоящий всего лишь |
вращает адресячейки в диапазоне |
|||
из одного столбца (Data). Ячейка В1 содержит значение,ко- |
Data, в которой содержится зна- |
|||
торое необходимо найти (Target). |
чение, введенное вячейке В1 |
|
||
Следующая формула, введенная в ячейку В2, возвращает
адрес ячейки из диапазона Data, которая содержит значение Target: =АДРЕС(СТРОКА(Data)+П0ИСКП03(target;Data;0)-1;СТОЛБЕЦ(Data))
Если диапазон Data содержит только одну строку, для поиска адреса значения воспользуйтесь следующей формулой: =АДРЕС(СТРОКА(Data);СТОЛБЕЦ(Data)+П0ИСКП03(Target/Data;0)-1)
Если диапазон Data содержит более одного экземпляра искомого значения, формулы возвратят первую найденную ячейку с этим значением. Если искомое значение не найдено, формулы возвратят ошибку #Н/Д.
Глава8.Поиск данных |
215 |
Поиск значения, максимально приближенного к заданному
Формулы ПРОСМОТР и ГПР могут быть весьма полезны в следующих ситуациях:
•Если необходимо найти значение, в точности соответствующее контрольному значению. Для этого в качестве четвертого аргумента функций используется логическое значение ЛОЖЬ.
•Если необходимо найти значение максимально, приближенное к искомому. Для этого
вкачестве четвертого аргумента функций используется логическое значение ИСТИНА или аргумент опускается, а точное соответствие не ищется вообще; формула возвращает ближайшее к искомому значение, но в меньшую сторону.
Что делать, если пользователю необходимо найти значение, максимально соответствующее искомому, независимо от направления отклонения? Ни одна из предложенных нами базовых формул (ПРОСМОТР и ГПР) не сможет выполнить эту задачу.
На рис. 8.16 показан рабочий лист, содержащий имена студентов (столбец А) и некоторые значения (столбец В). Диапазон В2 : В20 носит название Data, ячейка Target содержит значение, которое необходимо найти в диапазоне Data. Ячейка ЕЗ (ColOffset) содержит значение, которое определяет, на сколько столбцов и в какую сторону от диапазона Data происходит смещение при поиске возвращаемого значения.
Приведенная ниже формула массива определяет самое ближайшее значение диапазона Data, соответствующее значению Target, и возвращает имя студента в столбце А (т.е. столбец, смещенный на -1 от столбца с диапазоном Data). Формула возвращает имя Leslie, которому соответствует значение 8 000— самое ближайшее значение к Tar get=8 025.
1 |
Student |
Data |
|
|
2 |
-Ann |
9.101 |
Target Value > |
8025 |
3 |
Betsy |
8.873 |
Column Offset ••> |
-1 |
4 |
.-Chuck |
6,000 |
|
|
S |
'David |
9,820 |
|
|
В |
Georqe |
10,500 |
|
|
7 vHilda |
3,500 |
|
|
|
8 |
Uames |
12,873 |
|
|
9 |
John |
5,867 |
|
|
$0'Keith |
8.989 |
|
|
|
1Г; Leslie |
8,000 |
|
|
|
:12 '.Michelle |
1.124 |
|
|
|
13 |
Nora |
9,099 |
|
|
14= Paul |
6.800 |
|
|
|
15 |
Peter |
5,509 |
|
|
IB^Rasmusen |
5,460 |
|
|
|
17'Sally |
8,400 |
|
|
|
18 -Theresa |
7.777 |
|
|
|
19 |
Violet |
3,600 |
|
|
20 |
Wendy |
5.400 |
|
|
21*
Рис. 8.16. Даннаярабочая книга демонстрирует выполнение поиска значения, ближайшего к заданному значению
{=ДВССЫЛ(АДРЕС(СТРОКА(Data)+П0ИСКП03(МИН(ABS(Target-Data));ABS(Target- Data) ;0)-1;СТОЛБЕЦ(Data)+ColOffset))}
Если в диапазоне Data формула находит два значения, которые одинаково близки к значению Target, формула возвращает первое значение, найденное в списке.
216 |
Часть II. Использованиефункций в формулах |
Значение, содержащееся в ячейке ColOf f set, может быть отрицательным (если столбец расположен слева от диапазона Data), положительным (если столбец расположен справа от диапазона Data) илиравным 0 (если ближайшее значениерасположено в этом же диапазоне Data).
Чтобы понять, как работает эта формула, вы должны уяснить себе принцип работы функции ДВССЫЛ. В качестве первого аргумента этой функции используется текстовая строка в виде ссылки на ячейку (или ссылки на ячейку, содержащую текстовую строку). В нашем примере текстовая строка создается с помощью функции АДРЕС, которая принимает номера строки и столбца, а возвращает адрес ячейки.
Поиск значения сиспользованием линейной интерполяции
Интерполяция представляет собой процесс создания недостающих значений на основе существующего ряда значений. Давайте рассмотрим пример интерполяции данных. На рис. 8.17 показан рабочий лист, в котором столбец Dсодержит список значений х, а столбец Е — список значенийу, соответствующих каждому значению х.
Кроме того, рабочий лист содержит график, который описывает связь между диапазонами хну визуально. Расположение точек на диаграмме говорит о том, что зависимость между значениями хну линейная: рост значения JC вызывает пропорциональный рост значения у. Обратите внимание, что значения в диапазоне х введены не в строгой последовательности. Например, отсутствуют значения 3, б, 7, 14, 17, 18 и 19.
Рис. 8.17. Данная рабочая книга демонстрируетвыполнение поисказначения с помощью интерполяции
Вы уже умеете создавать формулы, которые, просматривая значения диапазона х, будут возвращать значения диапазона у. Но как быть, если необходимо рассчитать значение у для отсутствующего значения х? Обычная формула таблицы поиска возвращает неправильный результат, поскольку оперирует только существующими значениями у (вместо расчетного). Например, следующая формула ищет значение 3, но возвращает значение 18,00 (как значение, соответствующее значению 2 в диапазоне х).
=ПРОСМОТР(3;х;у)
Именно в таких случаях используется интерполяция значений. Другими словами, поскольку искомое значение (3) находится посередине существующих значений х (2 и 4), воз-
Глава 8.Поискданных |
217 |
вращаемое значение у должно равняться 21,00, то есть также располагаться посередине междузначениями 18, 00 и 24, 00.
Формулы линейной интерполяции
На рис. 8.18 показан рабочий лист с формулами, введенными в столбец В. Искомое значение введено в ячейку В1, а итоговая формула в ячейке В16 возвращает результат подсчетов. В том случае, если значение, содержащееся в ячейке ВЗ, найдено в диапазоне дг, формула возвращает соответствующее значение у. В противном случае, если значение в ВЗ не найдено, формула в ячейке В16 возвращает расчетное значение у, полученное путем линейнойинтерполяции.
Д 4 |
X-value to look up: |
|
|
*>"*$ If -^f% |
|
|
|
|
|
V |
1000 |
|
Matching row: |
: |
2 |
18 00 |
|
|
Exact match? |
FALSE |
|
24 00 |
|
|
|
|
|
5 |
33 25 |
|
|
|
|
8 |
41.00 |
|
|
|
|
9 |
47 00 |
|
|
|
|
10 |
52 25 |
|
1st |
x value: |
|
11 |
6150 |
|
2nd |
x value: |
|
12 |
72 75 |
|
|
|
|
13 |
75 00 |
|
1st looked up у value: |
|
15 |
85 00 |
|
У 2nd looked up у value: |
|
16 |
90 00 |
||
|
|
|
|
20 |
105 25 |
I S l |
Adjustment factor: |
|
|
|
|
|
Interpolated lookup: |
|
|
|
|
ё
Рис. 8.18. Столбец В содержит формулы, которые осуществляют поиск данных с помощью линейной интерполяции
Это может быть весьма неудобно, если значения в диапазоне х расположены в порядке возрастания, поскольку, если ячейка В1 содержит значение меньшее, чем самое низкое значение х, или большее, чем самое большое значение, формула возвращает значение ошибки. Формулы, используемые для получения значений методом интерполяции приведены в табл. 8.2.
Таблица 8.2.Формулы поиска значений методом интерполяции |
^;;f - |
||
Ячейка |
Формула |
Описание |
|
ВЗ |
=ПРОСМОТР(В1;х;у) |
Выполняет обычный поиск ивозвращает значение диапа- |
|
|
|
зона х. |
|
В4 |
=В1=ВЗ |
Возвращает значение И С Т И Н А , если найденное значение |
|
|
|
соответствует искомому. |
|
Вб |
=ПОИСКПОЗ(ВЗ;х;0) |
Возвращает номер строки диапазона х,которая содержит |
|
|
|
совпадающее значение. |
|
В7 |
=ЕСЛИ(В4;в6;В6+1) |
Возвращает ту же строку, что иформула вячейке вб, если |
|
|
|
найдено значение, вточности соответствующее заданному.В |
|
|
|
противном случае, крезультату ячейки вбдобавляется1. |
|
В9 |
=ИНДЕКС(х;Вб) |
Возвращает соответствующее значение хдля строки, по- |
|
|
|
лученной вячейкевб . |
|
В10 |
=ИНДЕКС(х;В7) |
Возвращает соответствующее значение хдля строки, по- |
|
|
|
лученной вячейке В7. |
|
218 |
Часть II. Использование функцийвформулах |
|
|
Окончаниетабл. 8.2 |
Ячейка |
Формула |
Описание |
В12 |
=ПРОСМОТР(В9;х;у) |
Возвращает значение у, соответствующее значению х, по- |
|
|
лученному вячейкевэ . |
В13 |
=ПРОСМОТР(В10;х;у) |
Возвращает значение у, соответствующее значению х, по- |
|
|
лученному вячейкев ю . |
В15 |
=ЕСЛИ(В4;0;( |
Вычисляет корректирующий фактор, основанный на раз- |
|
В1-ВЗ)/(В10-В9)) |
нице между значениями х. |
В16 |
=В12+((В13-В12)*В15) |
Вычисляет расчетное значение у с помощью корректи- |
|
|
рующего фактора, полученного вячейкеВ15. |
Комбинирование функций ПРОСМОТР и ТЕНДЕНЦИЯ
Существует еще один, более предпочтительный способ поиска данных в таблице с помощью линейной интерполяции. Этот способ основан на использовании функций ПРОСМОТР и ТЕНДЕНЦИЯ и имеет одно большое преимущество — он требует использования только одной формулы (рис. 8.19).
X-value to look up: |
3 |
|
e,, |
|
4 >,'Ч, • • |
||
|
|
1 |
1000 |
у value: |
20 27913834 |
2 |
1800 |
|
|
4 |
24 00 |
|
|
5 |
33 25 |
|
|
8 |
4100 |
|
|
9 |
47 00 |
|
|
10 |
52 25 |
|
|
11 |
61 50 |
|
|
12 |
72 75 |
|
|
13 |
75 00 |
|
|
15 |
85 00 |
|
|
16 |
90 00 |
|
|
20 |
105 25 |
, \
Рис. 8.19. Данный рабочий лист содержит формулу, которая использует функции ПРОСМОТРи ТЕНДЕНЦИЯ
Формула, приведенная ниже (в ячейке ВЗ), для принятия решения использует функцию ЕСЛИ. В том случае, если в диапазоне х найдено значение, в точности соответствующее искомому, формула возвращает соответствующее значение из диапазона у (использование функции ПРОСМОТР). Если точное соответствие не найдено, формула использует функцию ТЕНДЕНЦИЯ и возвращает значение^, рассчитанное методом максимально близкой величины (не прибегая к линейнойинтерполяции).
=Е С Л И ( В 1 = П Р О С М О Т Р ( В 1 ; х ; х ) / П Р О С М О Т Р ( И Н Д Е С К ( х / П О И С К П О З ( П Р О С М О Т Р ( В 1 / Х / х ) ;
х; 0 ) ) ; х ; у ) / Т Е Н Д Е Н Ц И Я ( у ; х ; В 1 ) )
Резюме
Вэтой главе мы вкратце обсудили функции, которые позволяют осуществить поиск информации в таблицах Excel. В данной главе рассматривалось множество примеров использования как основных формул поиска данных, так и различных дополнительных формул.
Вследующей главе вашему вниманию будут представлены формулы, очень полезные для сведения итоговой информации, содержащейся в базе данных.
Глава 8.Поискданных |
219 |
