Уокенбах Формулы в Excel
.pdfфункция НАИМЕНЬШИЙ возвращает второе наименьшее значение— 0. В третий раз второй аргумент — число 3, а возвращаемое значение — 2 (третье наименьшее).
Поэтому функции СУММ передается массив:
{-5;0;2}
Формула возвращает сумму элементов этого массива (-3).
Подсчет количества текстовых ячеек вдиапазоне
Функция ЕСЛИ используется в примере этого раздела для того, чтобы проверить, является ли содержимое ячейки текстом. В результате формируется новый массив, состоящий из нулей и единиц в зависимости от того, является ячейка текстовой или нет. Следует отметить, что новый массив имеет такой же размер и ориентацию, что и исходный. Затем новый массив передается функцииСУММ, которая возвращает сумму элементов в массиве. Таким образом, формула предоставляет результат —
количество текстовых ячеек в диапазоне:
Рис. 14.15. Формула массива возвра- щаетколичество ячеек с текстом в( = С У М М ( Е С Л И ( Е Т Е К С Т ( А 1 : Б 5 ) ; 1 ; 0 ) ) }
указанном диапазоне
функцией ЕСЛИ, имеет вид:
{ 0 ; 1; 1; 1:1 /0 ; 0 ; 0 : 1 ;0 ; 0 ; 0 : 1 ;0 ; 0 ; 0 : 1 ;0 ; 0 ; 0}
Такой тип формулы массива (а именно, функция ЕСЛИ, вложенная в функцию СУММ), очень полезна в любых расчетах. Глава 7 содержит дополнительные примеры по этому вопросу.
К такому же результату приводит использование формулы:
{=СУММ(ЕТЕКСТ(А1:Б5)*1)>
В этой формуле не используется функция ЕСЛИ, вместо этого берутся во внимание следующие равенства:
ИСТИНА*1=1
И
ЛОЖЬ*1=0
Устранение промежуточных формул
Одним из главных достоинств использования формул массива является возможность устранения промежуточных формул в электронной таблице. Это делает рабочие таблицы менее громоздкими и исключает необходимость отображения несущественных вычислений. На рис. 14.16 показана электроннаятаблица с баллами, набраннымина первом и втором этапетестирования.
Столбец D содержит разницу между баллами в столбцах В и С. Ячейка D17 содержит формулу, вычисляющую среднее значение в столбце D:
=CP3HA4(D2:D15)
340 |
Часть IV. Формулы массива |
При применении формулы массива можно не использовать промежуточные вычисления. Ниже представлена формула, вычисляющая среднюю разницу баллов без использованиязначений в столбце D:
{=СРЗНАЧ(С2:С15-В2:В15)}
Как она работает? Формула использует два массива, элементы которых хранятся в двух диапазонах (В2 : В15 и С2 :С15). Формула создает новый массив, состоящий изразности соответствующих элементов исходных массивов. Этот новый массив хранится только в памяти Excel, а не в ячейках электронной таблицы. Функция СРЗНАЧ использует этот новый массив в качестве аргумента. Новый массив состоит изследующих элементов:
{ 1 1 ; 1 5 ; - 6 ; 1 ; 1 9 ; 2 ; 0 ; 7 ; 1 5 ; 1 ; 8 ; 2 3 ; 2 1 ; - 1 1 }
Следовательно, формула сводится к следующей: =СРЗНАЧ({11;15; - 6;1;19;2;0;7;15;1;8;23;21; - 11} )
Andy |
|
|
|
|
|
|
|
Beth |
|
|
|
|
|
|
|
Cindy |
|
С |
> 0 |
в |
|
М21ЕГ |
|
Duane |
|
|
|
||||
Eddy |
1 Число -> |
Девять |
" 1 " |
Один |
|
|
|
Francis |
2 ' |
|
2 |
Два |
|
|
|
Georgia |
3 |
|
3 |
Три |
|
|
|
Hilda |
4 * |
|
4 |
Четыре |
|
|
|
Isabel |
5 |
|
5 |
Пять |
|
|
|
Jack |
6 * |
|
6 |
Шесть |
|
|
|
Kent |
JL |
|
7 |
Семь |
|
|
|
Unda |
9 ' |
|
8 |
Восемь |
|
|
|
Michelle |
|
9 |
Девять |
|
|
||
"10" |
|
|
|
||||
Nancy |
|
10 |
Десять |
|
|
||
11 |
|
|
|
||||
|
|
|
|
|
|
|
|
|
12 |
|
|
|
|
|
|
|
13' |
|
|
м |
|
-i |
иг; |
|
м\пист1/Л«ет2/ЛистЗ/ |
|
|
||||
Рис. 14.16. Без использования формулы |
Рис. 14.17. Таблицу |
преобразований, нахо- |
|||||
массива для подсчета среднейразницы |
дящуюся |
в D1: Е10, можно |
заменить |
на |
|||
баллов требуются промежуточные |
массив констант |
|
|
|
|
|
|
формулы в столбце D |
|
|
|
|
|
|
|
На основе данных этого примера можно вычислить и другие значения, используя формулы массива.
Например, следующая формула возвращает наибольшую разницу (характеризующее наибольшее улучшение успеваемости), равное 23 и соответствующее результатам тестирования студентки Linda:
{МАКС(С2:С15-В2:В15)}
Приведенная ниже формула возвращает наименьшую разницу (характеризующую ухудшение успеваемости), равное -11 и соответствующее результатам тестирования студентки Nancy:
{МИН(С2:С15-В2:В15)}
Использование массива вместодиапазона ссылок
Некоторые функции в качестве аргумента используют диапазон ссылок. Если в формуле используется такая функция, есть возможность заменить этот диапазон ссылок на массив констант. Это полезно, если значения в диапазоне ссылок не изменяются.
Глава 14.Введение вмассивы |
341 |
Исключение составляют функции работы с базами данных (например, БДСУММ). Эти функции в качестве обязательного аргумента используют критерий, находящийся в диапазоне ячеек. К сожалению, этот критерий нельзя задать, используя массив констант.
На рис. 14.17 показана электронная таблица, в которой используется таблица преобразования для отображения слова, соответствующего числу. Например, числу 9 в таблице преобразования (диапазон Dl:E10) соответствует значение Девять. Формула, возвращающая это значение, находится в ячейкеС1:
=ВПР(В1;Б1:Е10;2;ЛОЖЬ)
Вместо таблицы преобразований можно использовать двумерный массив. Приведенная формула возвращает такой же результат, что и предыдущая, но не требует наличия таблицы преобразований:
= В П Р ( В 1 ; { 1 ; " О д и н " : 2 ; " Д в а " : 3 ; " Т р и " : 4 ; " Ч е т ы р е " : 5 ; " П я т ь " : б ; " Ш е с т ь " : 7 ; "Семь":8;"Восемь":9;"Девять":10;"Десять"};2;ЛОЖЬ)
Резюме
В этой главе введено понятие массива — совокупности элементов, находящихся в диапазоне ячеек или памяти Excel. Формулы массива оперируют диапазоном значений и возвращают либо одно значение, либо массив значений. В следующей главе продолжается обсуждение вопросов примененияформул массива и приведено много полезных примеров.
342 |
Часть IV. Формулы ма |
Глава 15
Магия формул массива
Вэтой главе...
•Работа с формулами массива, возвращающими одно значение
•Работа с формулами массива, возвращающими несколько значений
•Резюме
Предыдущая глава была вводной в понятия массива и формулы массива. Она содержала примеры, которые призваны вызвать повышенный интерес к применению массивов. В настоящей главе продолжается повествование о формулах массивов. Она содержит полезные примеры, которые продолжают демонстрировать поразительную эффективность формул массива.
В этой главе многие пользователи найдут самые разнообразные и полезные примеры использования формул массива. Большинство из них можно непосредственно использовать в работе, нужно только в ряде случаев изменить имена диапазонов или ссылки. Во многиепримеры легко внести изменения, чтобы ониработали именно так, как нужно.
Работа сформулами массива, возвращающими одно значение
Как описывалось в предыдущей главе, формулу массива можно вводить в одну ячейку (а не в диапазон ячеек). Такие формулы массива обрабатывают массивы, хранящиеся либо в диапазоне ячеек, либо в памяти Excel. В этом раз-
деле представлены некоторые дополнительные примеры таких формул массива.
Суммирование вдиапазоне, который содержит ошибки
Вероятно, многие пользователи Excel знают, что функ- |
|
|||
ция СУММ не работает, если попытаться просуммировать |
Рис. 15.1. Формула массива мо- |
|||
диапазон |
ячеек, содержащих сообщения |
об ошибках |
жет складывать значения вдиа- |
|
(например, |
#ДЕЛ/0! или #Н/Д). Рис. 15.1 |
иллюстрирует |
||
пазоне, содержащем ошибки |
||||
такой случай. Формула СУММ в ячейке С 9 возвращает сооб- |
||||
щение об ошибке, так как в диапазоне ячеек С2 :С8, которые она складывает, содержатся сообщения об ошибках.
Следующая формула массива возвращает сумму значений в диапазоне с именем Data, даже если этот диапазон содержит сообщения об ошибке: {=СУММ(ЕСЛИ(ЕОШИБКА(Data);""/Data))}
Эта формула создает новый массив, включающий значения из диапазона с именем Data, но без сообщений об ошибке. Функция ЕСЛИ заменяет сообщения об ошибке на пустые зна-
Глава 15.Магия формул массива |
343 |
чения. Затем функция СУММскладывает элементы этого "отфильтрованного" массива. Такую же методику обработки диапазонов, содержащих сообщения об ошибках, можно применить и для других функций, например МИН и МАКС.
Возникают случаи, когда нужно использовать другие функции вместо ЕОШИБКА. Дело в том, что ЕОШИБКА возвращает значение ИСТИНА при любых значениях
ОШИбки (#Н/Д, #ЗНАЧ!, #ССЫЛКА!, #ДЕЛ/0!, #ЧИСЛО!, #ИМЯ? ИЛИ #ПУСТО!).
Функция ЕОШ возвращает значение ИСТИНА при любых значениях ошибки кроме #н/д, а функция ЕНД — только при значенияхошибки #н/д.
Подсчет количества ошибок вдиапазоне
Представленная ниже формула массива похожа на формулу предыдущего примера, только возвращает количество ошибок в диапазоне с именемData:
{=СУММ(ЕСЛИ(ЕОШИБКА(Data);1;0))}
Данная формула создает массив, состоящий из единиц (если соответствующая ячейка содержит сообщение об ошибке) и нулей (если в соответствующей ячейке отсутствует сообщение об ошибке).
Можно немного упростить формулу, удалив третий аргумент функции ЕСЛИ.Теперь, если условие не выполняется (ячейка не содержит сообщение об ошибке), функция ЕСЛИ будет возвращать значение ЛОЖЬ. Усовершенствованная формула возвращает такой же результат, что и предыдущая, но не использует третий аргумент функции ЕСЛИ:
{=СУММ(ЕСЛИ(ЕОШИБКА(Data);1))}
В действительности можно еще более упростить эту формулу:
{=СУММ(ЕОШИБКА(Data)*1)}
В этой версии формулы берутся во внимание следующие равенства:
ИСТИНА*1=1
и
ЛОЖЬ*1=0
Суммирование при выполнении условия
В ряде случаев возникает необходимость просуммировать значения, которые удовлетворяют одному и более условий. Например, представленная формула массива складывает положительные значения (исключая при этом отрицательные) в диапазоне с именемData:
{=СУММ(ЕСЛИ(Data>0/Data))}
Функция ЕСЛИ создает массив, состоящий из положительных значений, и значенийЛОЖЬ вместо отрицательных. Этот массив обрабатывается функцией СУММ, которая отбрасывает логические значения ЛОЖЬ и возвращает сумму чисел массива. Массив Data может состоять из любого количества строк и столбцов.
Для решения поставленной задачи можно, конечно, использовать функцию СУММЕ С ЛИ. Следующая формула не является формулой массива и возвращает такой же результат, что и предыдущая формула массива
= С У М М Е С Л И ( Б а Ь а ; " > 0 " )
344 |
Часть IV, Формулы ма |
Однако использование функции СУММЕСЛИ при задании сложных условий может приводить к появлению довольно замысловатых формул:
=СУММЕСЛИ(БаЬа;">0"/Data)-СУММЕСЛИ(Data;">5";Data)
Например, представленная выше формула (не формула массива) складывает значения диапазона с именем Data, находящиеся в интервале от 0 до 5. Эта формула работает следующим образом. Вначале складываются значения, большие 0. Потом из полученной суммы вычитается результат сложения значений, больших 5. Такая формула может любого сбить с толку, к тому же ее использование неэффективно.
При применении формулы массива эту же задачу можно решить намного изящнее:
{=СУММ((Data>0)*(Data<=5)*Data)}
Отметим, что эта формула имеет одно ограничение: она будет возвращать значение ошибки, если диапазон с именем Data содержит хотя бы одно нечисловое значение.
Вопреки возможным ожиданиям, в формулах массива нельзя использовать функцию и.Хотя, с точки зрения формальной логики, приведенная ниже формулаабсолютно верна, она не дает правильного результата:
{=CyMM(ECnH(H(Data>0;Data<=5)/Data))}
Нелогичное поведение логических функций
Функции и и или относятся к категории логических функций, которые возвращают значения ИСТИНА или ложь. Ксожалению, эти функции нельзя применять в формулах массива.
На представленном ниже рисунке столбцы А Й В содержат логические значения. Функция и возвращает значение ИСТИНА, если все ееаргументы ИСТИНА. Столбец с содержит обычные формулы, которые работают так, как они и должны работать. Например, ячейка сз содержит следующую функцию:
=И(АЗ;ВЗ) |
|
|
|
|
|
|
us |
|
33••—• |
|
щштшштшшшттшшжшт ^д\*} |
||
|
|
|
|
|||
I |
ИСТИНА |
ИСТИНА |
ИСТИНА |
ложь |
о |
v:v |
ИСТИНА |
ложь |
ложь |
ложь |
|||
|
ЛОЖЬ |
ИСТИНА |
ложь |
ложь |
о |
( '" |
|
ЛОЖЬ |
ложь |
ложь |
ложь |
0 |
У |
Диапазон D3 :D6 содержит следующую формулу массива:
{=И(АЗ:Аб;ВЗ:Вб)>
Можно ожидать, что формула массива возвратит следующий массив:
{ИСТИНА;ЛОЖЬ;ЛОЖЬ;ЛОЖЬ}
Однако она возвращает только одно значение ложь. Фактически обе функции, как и так и или, всегда возвращают одно единственное значение и никогда невозвращают массив. Даже если использовать массив констант, функция и все равно возвратит только одно значение. Например, следующая формула массива не возвращает массив:
{=И({ИСТИНА/ИСТИНА;ЛОЖЬ;ЛОЖЬ};{ИСТИНА;ЛОЖЬ;ИСТИНА;ЛОЖЬ})}
Автору книги неизвестно, является ли такое поведение функций и и или ошибкойили программной особенностью. В любом случае несомненно, что все другие функций работают нетак, как эти две.
Глава 15.Магия формул массива |
345 |
Столбец Е содержит другую формулу массива, которая, как ей и полагается, возвращает массив. Массив создается следующей формулой, состоит из 0 и 1,причем этизначениясо-
относятся созначениями ИСТИНА ИЛОЖЬ.
{=АЗ:А6*ВЗ:В6}
Не возвращает массива только массив формула, в которой применяется функцияили:
{=ИЛИ(АЗ:Аб;ВЗ:Вб)}
Для получения корректных результатов предпочтительнее использовать следующую формулу массива, которая выполняет обработку соответствующих элементов поправилам логического сложения:
{=АЗ:А6+ВЗ:В6}
Формулы массива позволяют применять и более сложные условия отбора. Например, следующая формула складывает значения меньше 0 или больше 5:
{=СУММ(ЕСЛИ((Data<0)+(Data>5);Data))}
Так же как и в случае с функцией и,нельзя использовать функцию или в формулах массива. Например,следующая формула возвращает некорректный результат:
{=СУММ(ЕСЛИ(ИЛИ(БаЬа<0;ВаЪа>5) /Data) ) }
Для уяснения обходного пути, необходимого при использовании логических функций в формулах массива, обратитесь к врезке "Нелогичное поведение логических функций".
Суммирование n-гочисла наибольших значений в диапазоне
Следующая формула возвращает значение суммы десяти наибольших значений в диапазоне с именем Data:
{=СУММ(НАИБОЛЬШИЙ(БаЬа;СТРОКА(ДВССЫЛ(и1:10"))))}
Функция НАИБОЛЬШИЙвыполняется 10 раз, каждый раз с другим вторым аргументом (1, 2, 3, ... 10).Результаты этих вычислений хранятся в новом массиве, который выступает аргументом дляфункции суммирования СУММ.
Для суммирования другого количества значений нужно заменить число 10 в аргументе функции ДВССЫЛ на другое значение. Длясуммирования n-го числа наименьших значений в диапазоне нужно заменить функцию НАИБОЛЬШИЙ функцией НАИМЕНЬШИЙ.
Вычисление среднего без учета нулевых значений
На рис.15.2 представлен рабочий лист, на котором производится вычисление среднего уровня объема продаж. В ячейку В11 помещена формула:
=СРЗНАЧ(В2:В9)
Эта формула вычисляет среднее значение в диапазоне В2 :В9. Двое служащих из торгового персонала отсутствовали наработе некоторое время. Таким образом, представленная выше формула не точно показывает средний уровень продажи для принимавших участие в анализе продавцов.
346 |
Часть IV.Формулыма |
1 S a l e ^ n w n |
IS.Ie» N l |
|
IJAbner |
|
23,991 |
"ЭЦВакег |
' |
15.092 |
j n Charleston |
|
0 |
SPDavis |
' |
11,893 |
J^EIIerman |
|
32,116 |
_7JFIugelhart |
|
29.089 |
JVGallaway |
|
0 |
~ Harrison |
|
33.211 |
18,174 <-- Averagewith zeros
24.232 <- Average without zeros (array formula)
ii
Рис. 15.2. Вычисление среднего значения, исключая ячейки, содержащие ноль
Функция СРЗНАЧ не учитывает пустые ячейки, зато принимает в расчет ячейки,
содержащие нулевые значения.
Следующая формула массива возвращает среднее значение в диапазоне и при этом исключает ячейки, содержащие нулевые значения:
(=СРЗНАЧ(ЕСЛИ(В2:В9<>0;В2:В9))}
Эта формула создает новый массив, состоящий исключительно из ненулевых значений. Функция СРЗНАЧ впоследствии использует этот массив в качестве своего аргумента. Тот же результат получается при использовании обычной формулы (не формулы массива):
=СУММ(В2:В9)/СЧЕТЕСЛИ(В2:В9;"<>0")
Вначале рассчитывается сумма всех значений ячеек в диапазоне. Затем эта сумма делится на количество ненулевых ячеек диапазона, полученное с помощью функции СЧЕТЕСЛИ.
Поиск значения вдиапазоне
Для того чтобы определить, присутствует ли определенное значение в диапазоне ячеек, необходимо выбрать команду Правка^Найти и произвести поиск значения на рабочем листе. Можно поступить другим способом, и решить эту задачу с помощью формулы массива.
Формула массива в ячейке D1 проверяет имя, введенное в ячейку С1, которой присвоено имя TheName. Если имя присутствует в списке имен, формула выводит текст Found. В противном случае, она отображает фразу Not Found.
Формула в ячейке С1 имеет вид: {=ECTM(OTM(TheName=NameList);"Found";"Not Found")}
Эта формула сравнивает TheName с каждым элементом в диапазоне NameList.Она создает новый массив, который состоит из логических значений ИСТИНА или ЛОЖЬ. ФункцияИЛИ возвращает значение ИСТИНА, если хотя бы одно значение в новом массиве — ИСТИНА. Функция ЕСЛИиспользует этот результат для определения возвращаемого сообщения.
Более простой вариант этой формулы представлен ниже. Эта формула возвращает значение ИСТИНА, если имя найдено, в противном случае — ЛОЖЬ.
{=raH(TheName=NameList) }
Глава 15.Магия формулмассива |
347 |
На рис. 15.3 показан рабочий лист со списком имен в диапазоне A3 : Е22, которому присвоено имя NameList.
|
'Daniel |
Harold |
Lyle |
'Richard |
ЖАНеп |
Dave |
Ian |
'Maggie |
Rick |
Andrew |
David |
Jack |
, Margaret |
Robert |
ЖAnthony |
Dennis |
James |
Marilyn |
Rod |
Arthur |
Don |
Jan |
Mark |
|
Ш Barbara |
'Donald |
Jeff |
Marvin |
Ronald |
1 Bernard |
Doug |
Jeffrey |
Mary |
Russ |
Beth |
Douglas |
Jerry |
4Matt |
Sandra |
шBill |
Ed |
Jim |
Mel |
Scott |
Bob |
'Edward |
Joe |
Merle |
Simon |
'*Щ Brian |
Eric |
John |
'Michael |
Stacy |
^ Ц ] Bruce |
Fran |
Joseph |
Michelle |
Stephen |
tiSHCark |
Frank |
Karl |
Mike |
Steven |
^§01 Carl |
/red |
Kathy |
Norman |
^Stuart |
Wlcharles |
*Gary |
Keith |
Patrick |
Susan |
J i i C n r i s |
George |
Kenneth |
'Paul |
Terry |
Chuck |
'Glenn |
Kevin |
Peter |
Thomas |
Clark |
Gordon |
Larry |
Phillip |
Timothy |
ЖCurt |
Greg |
Leonard |
Ray |
Vincent |
Dan |
Gregory |
Louise |
Rebecca |
'William |
'•;
•*
~~
*^
11
.Z
t I™ yJZ
'дГ
^
,^
~
ч з
#^
~2
^
"^
""i *-ti ' *>*|
Pwc. 75.5. Использование формулымассива для определенияналичия значения в диапазоне
Подсчет отличающихся значений в двух диапазонах
Представленная ниже формула массива сравнивает соответствующие значения в двух диапазонах (имеющих имена MyData и YourData), и возвращает количество различных элементов в этих двух диапазонах. Если содержимое двух диапазонов идентично, формула возвращает значение О.
{=CyMM(E^M(MyData=YourData;0;l) ) }
Два диапазона должны иметь одинаковый размер и ориентацию.
Эта формула создает новый массив такого же размера, как и сравниваемые диапазоны. Функция ЕСЛИ заполняет этот новый массив нулями и единицами (ноль — если есть различие, единица— если нет различия у соответствующих ячеек). Функция СУММ возвращает сумму значений этого массива.
Тот же результат можно получить, применив более простую формулу: {=СУММ(1* (MyDataoYourData) ) }
Эта версия формулы базируется на следующих равенствах:
ИСТИНА*1=1
И
ЛОЖЬ*1=0
348 |
Часть IV.Формулымассива |
Возвращение расположения максимального значения диапазона
Для определения номера строки, в которой находится максимальное значение одномерного вертикального массива с именем Data, можно воспользоваться формулой:
{ = М И Н ( Е С Л И ( D a t a = M A K C ( D a t a ) / С Т Р О К А ( D a t a ) ; " " ) ) }
Функция ЕСЛИ создает новый массив, соотносящийся с диапазоном с именем Data, Если соответствующая ячейка содержит максимальное значение диапазона Data, то новый массив содержит номер ее строки. В противном случае, он содержит пустую текстовую строку. Функция МИНиспользует этот массив как второй аргумент и возвращает минимальное значение, которое соответствует номеру строки, в которой находится максимальное значение диапазона Data.
Если диапазон Data содержит более чем одну ячейку с максимальным значением, то возвращается номер первой ячейки с максимальным значением.
Представленная ниже формула массива подобна предыдущей, но она возвращает действительный адрес ячейки с максимальным значением в диапазоне Data. Формула использует функцию АДРЕС, которая имеет два аргумента: номер строки и номер столбца.
{=АДРЕС(МИН(ЕСЛИ(Data=MAKC(Data)/СТРОКА(Data);""))/СТОЛБЕЦ(Data))}
Поиск номера строки, вкоторой находится n-ое значение, совпадающее с заданным
Приведенная ниже формула ищет значения в одномерном вертикальном диапазоне с именем Data, совпадающие со значением в ячейке Value, и возвращает номер строки n-го совпадающего элемента.
{=НАИМЕНЫДИЙ(ЕСЛИ(Data=Value;СТРОКА(Data);"");п)}
Функция ЕСЛИ создает новый массив, состоящий из номеров строк, в которых значения из диапазона Data совпадают со значением Value. Если значение из Data не совпадает со значением Value, то новый массив содержит пустую текстовую строку. Функция НАИМЕНЬШИЙ обрабатывает этот новый массив и возвращает я-ый наименьший номер столбца.
Если п превышает количество значений в диапазоне Data, равных Value, или значение Value не найдено, формула выдает сообщение #ЧИСЛО!.
Возвращение самого длинного текста в диапазоне
Следующая формула отображает содержимое ячейки диапазона Data, в которой содержится наибольшее количество символов. Если в нескольких ячейках содержится самый длинный текст, то возвращается содержимое первой такой ячейки.
{=ИНДЕКС (Data; П0ИСКП03 (МАКС (ДЛСТР (Data))^CTP(Data) ;ЛОЖЬ);1)}
Эта формула работает с двумя массивами, каждый из которых представляет длину каждого элемента из диапазона Data. Функция МАКС находит наибольшее значение, которое соответствует элементу с самым длинным текстом. Функция П0ИСКП03 вычисляет смещение ячейки с максимальной длиной. Функция ИНДЕКС возвращает содержимое ячейки, в которой находится текст с наибольшим количеством символов. Эта формула возвращает правильный результат только в том случае, если диапазон Data состоит из одного столбца.
Глава 15.Магия формул массива |
349 |
