Excel как найти ячейку по ссылке

Поиск ссылок (внешних ссылок) в книге

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

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

Имя любой Excel книги, с помощью ссылки на которую вы ссылались, будет связана с расширением XL* (например, .xls, .xlsx, XLSM), поэтому рекомендуемый способ — найти все ссылки на частичное расширение XL. Если вы ссылались на другой источник, необходимо определить оптимальный поисковый запрос.

Поиск ссылок, используемых в формулах

  1. Нажмите CTRL+F, чтобы запустить диалоговое окно Найти и заменить.

  2. Нажмите кнопку Параметры.

  3. В поле Найти введите.xl.

  4. В поле В пределах выберите книга.

  5. В поле Искать в выберите формулы.

  6. Нажмите кнопку Найти все.

  7. В отображемом списке наймем в столбце Формула формул, содержащих XL. В этом случае Excel найдено несколько экземпляров функции бюджетного Master.xlsx.

    Диалоговое окно "Поиск и замена"

  8. Чтобы выбрать ячейку с внешней ссылкой, щелкните ссылку на эту строку в списке.

    Совет: Щелкните любой за колонок, чтобы отсортировать столбец и сгруппировать все внешние ссылки.

  1. На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.

  2. Проверьте каждую запись в списке и проверьте, нет ли в столбце Ссылка внешних ссылок. Внешние ссылки содержат ссылку на другую книгу, например [Budget.xlsx].

    Диалоговое окно "Диспетчер имен"

    Советы: 

    • Щелкните любой за колонок, чтобы отсортировать столбец и сгруппировать все внешние ссылки.

    • Если вы хотите удалить сразу несколько элементов, можно сгруппнуть несколько элементов, нажав клавишу SHIFT или CTRL и щелкнув левой кнопкой мыши.

  1. Нажмите клавиши CTRL+G, нажмите клавиши CTRL+G, чтобы перейти в диалоговое окно Перейти, а затем выберите специальные > объекты > ОК. При этом будут выбраны все объекты на активном сайте.

    Диалоговое окно > "Специальная"

  2. Нажимая клавишу TAB, переходить между выбранными объектами, а затем искать в строка формул Изображение кнопки ссылку на другую книгу, например [Budget.xlsx].

    Фигура, выбранная для показа имени ссылки в панели формул

  1. Щелкните название диаграммы, которую вы хотите проверить.

  2. В строка формул Изображение кнопкинаймем ссылку на другую книгу, например [Budget.xls].

  1. Выберите диаграмму, которую нужно проверить.

  2. На вкладке Макет в группе Текущий выделение щелкните стрелку рядом с полем Элементы диаграммы и выберите ряд данных, которые нужно проверить.

    Выбор параметра ряда в параметрах диаграммы > формат > текущий выделение

  3. На строка формул Изображение кнопки, наймем ссылку на другую книгу, например [Budget.xls] в функции РЯД.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Исправление недействительных ссылок

Разрыв связи с внешним ресурсом в Excel

Управление обновлением внешних ссылок (связей)

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

 

Beery

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

Есть два листа со списками. Оба списка нужно связать по одному полю – номер заказа, например. То есть – любая срока из второго  листа должна “жестко” ссылаться на какую-либо одну строку из первого листа (типа один заказ – платежей несколько).    

  Например ячейка “Платежи!B4” содержит абсолютную ссылку на “Заказы!$B$4” и ссылается на номер заказа 1.  

  Вопрос: Как из ячейки “Платежи!B5” сослаться на соседнюю ячейку первого листа (это будет “Заказы!$B$5”) как смещение на одну позицию от абсолютной ссылки, содержащейся в ячейке “Платежи!B4”? И получить например цену по этому заказу?  

  Другими словами идея такова, чтобы не водить кучу ссылок, а указывать только “смещение к ссылке”. Пардон за тавтологию 🙂  

  P.S. Понимаю, что можно реализовать через ВПР() и т.д, но интересует возможность именно такого варианта.

 

Diana

Пользователь

Сообщений: 982
Регистрация: 28.12.2012

Как вариант, и то от нечего делать… А вообще не понятно, чего Вы хотите этим добиться…

 

Beery

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

Уважаемая Диана,  

  благодарю Вас за подсказки. Благодаря Вашему примеру нашел решение. Оно не очень даже не изящное получилось, но именно то, что было нужно.  

  А добиться хотел только одного: исключить ошибки ввода по максимуму. Один раз связал строки через номер строки и данные подтягиваются с первой закладки.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

АДРЕС() вообще мало когда применяется (в практических задачах не видел), ДВССЫЛ() – летучая функция (пересчет при любом изменении на листе), СМЕЩ() такая же.  
Почему ВПР() не подошла?

 

zety4

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

Наверно ВПР() не подходит из за того, что данные могут повторяться в таблице. У меня аналогичная проблема, но это решение не подходит так как я не знаю заранее адрес ячейки из которой брать данные. Теоретически все легко делается, если мы знаем адрес ссылки подстановочной таблицы, функцией ДВССЫЛ()и СМЕЩ(). Вопрос как узнать ссылку на ячейку в текстовом виде?    

  В моем примере первую ячейку я указываю как ссылку а остальные хочу чтоб заполнялись со смещением из другой таблицы(я их и заполнил вставив текстовый адрес “Реализация!C3” вручную).  
Вопрос – как узнать ссылку на ячейку в текстовом виде?

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

ТОВ “Агрокомплекс Аттіс” и “Аттис” нельзя записать одинаково?  
Можно ли в таблице Реализация название фирмы перенести в первый столбец?

 

{quote}{login=vikttur}{date=30.01.2012 05:28}{thema=}{post}ТОВ “Агрокомплекс Аттіс” и “Аттис” нельзя записать одинаково?  
Можно ли в таблице Реализация название фирмы перенести в первый столбец?{/post}{/quote}  

  К сожалению таблица Реализация отчетная и связать Оплаты и Реализация по фирме тяжело. Прикрепил таблицы полного вида чтоб Вы нагляднее увидели формирование.    
В Оплаты беруться данные из реализации + забиваю суммы оплат и потом на основе этой таблицы формируеться таблица Общая. Таблицу Оплаты могу изменять как угодно, она рабочая. Реализация и Общая – отчетные таблицы.  
Возможно есть способ вытянуть ссылку хотя бы самописной функцией… все равно пару уже написал для этих отчетов, лишняя не повредит.( в бейсике не силен, изменял под себя чужой код)  
<EM><STRONG>Файл удален</STRONG> – велик размер – [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>

 

zety4

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

Простите за размер, файл переделал 🙁

 

Ссылку на ячейку в текстовом виде можно получить например так:  

  =ЯЧЕЙКА(“address”;A1)  

  Но вообще работать с текстовыми ссылками на листе – это через одно место. Есть еще такие вещи как именованные диапазоны, функции ИНДЕКС() и ПОИСКПОЗ(), которые намного предпочтительнее, чем ДВССЫЛ()и СМЕЩ() в книгах с большим кол-вом формул. В вашем файле ничего не понял, а разбираться – времени нет.

 

zety4

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

=ЯЧЕЙКА(“address”;A1) – дает адрес ячейки, а необходимо получить формулу (ссылку на другой лист) содержащуюся в этой ячейке, в текстовом виде. Хотя это только для того способа который я вижу применимым(ДВССЫЛ()и СМЕЩ()) в силу скудных познаний.  

  Более понятный пример прикрепляю.

 

Не вижу большого смысла в таком “полу-ручном” подходе. Предположим, имена предприятий на листе Реализация будут повторяться, но ведь должна же существовать логика, по которой вы вручную выбираете ссыслку и которую можно было бы превратить в логическое выражение для формулы. Например: искать последнюю запись для данного предприятия.

 

zety4

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

Данные в таблице Реализация добавляются каждый день и переносятся в оплаты разбиваясь по фирмам и ценам продукции. Фирм количество за день разное да и фирмы разные. Поэтому и не мечтаю про полную автоматизацию. С базами данных как-то легче. Будем думать.  
Спасибо Вам огромное за потраченное на меня время 🙂 Прорвемся.

 

zety4

Пользователь

Сообщений: 5
Регистрация: 01.01.1970

#13

02.02.2012 13:53:09

Нашел пользовательскую функцию получения формулы:  

  Function IsFormula(ByVal Cell As Range, Optional ShowFormula As Boolean = False)  
   ‘Application.Volatile True  
   If ShowFormula Then  
       If Cell.HasFormula Then  
           IsFormula = “Формула: ” & IIf(Cell.HasArray, “{” & Cell.FormulaLocal & “}”, Cell.FormulaLocal)  
       Else  
           IsFormula = “Значение: ” & Cell.Value  
       End If  
   Else  
       IsFormula = Cell.HasFormula  
   End If  
End Function  

    Данная функция имеет два аргумента:  

     Cell — ссылка на проверяемую ячейку;  
   ShowFormula — необязательный аргумент. Если присвоено значение ЛОЖЬ или 0 или опущен(не указан) — то функция вернет значение ИСТИНА или ЛОЖЬ(в зависимости от наличия или отсутствия формулы в ячейке). Если присвоено значение ИСТИНА или 1, то в функция вернет не просто ИСТИНА или ЛОЖЬ, а еще и текст самой формулы.  
Чтобы при изменении формулы в целевой ячейке сразу же изменялось её отображение в ячейке с данной функцией необходимо убрать апостраф(‘) перед Application.Volatile True

Содержание

  • Найти внешние ссылки
  • Поиск внешних ссылок с помощью функции поиска и замены
  • Найдите внешние ссылки с помощью ссылок редактирования

Как найти ячейки, связанные с внешними источниками в Excel

В этой статье вы узнаете, как найти внешние ссылки в Excel.

Найти внешние ссылки

В Excel можно использовать данные из другой книги (файла). В этом случае Excel создает внешнюю ссылку на эту книгу. Рассмотрим набор данных на рисунке ниже, который содержит внешние ссылки на другую книгу.

Как вы можете видеть выше, значение в B2 связано с рабочим листом с именем Внешний файл .xlsx (Лист1, ячейка B2). Ячейки B5, B7 и B8 также содержат похожие ссылки. Теперь посмотрите на этот файл и значение в ячейке B2.

Выше видно, что значение ячейки B2 в файле Внешний файл .xlsx 55, и это значение связано с исходным файлом. Когда вы связываете ячейку с другой книгой, значения обновляются в обеих книгах при каждом изменении связанной ячейки. Таким образом, вы можете столкнуться с проблемой, если файл, на который вы ссылаетесь, будет удален.

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

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

Поиск внешних ссылок с помощью функции поиска и замены

1. В Лента, перейти к Главная> Найти и выбрать> Заменить.

2. Во всплывающем окне (1) введите «* .xl *» для Найти то, что, (2) нажмите Найти все, и (3) нажмите CTRL + A на клавиатуре, чтобы выделить все найденные ячейки.

Связанные файлы должны быть в формате Excel (.xlsx, .xlsm, .xls), поэтому вы хотите найти ячейки, содержащие «.xl» в формуле (ссылка). Звездочки (*) перед и после «.xl» обозначают любой символ, поэтому поиск найдет любое из расширений файлов Excel.

3. В результате выбираются все ячейки, содержащие внешнюю ссылку (B2, B5, B7 и B8). Чтобы заменить их определенным значением, введите это значение в поле Заменить коробка и удар Заменить все. Если оставить поле пустым, удаляется содержимое всех связанных ячеек. Например, если ввести 55 в поле Заменить на, получится Ценности столбец на картинке ниже. В любом случае замененные ячейки больше не связаны с другой книгой.

Найдите внешние ссылки с помощью ссылок редактирования

Другой вариант – использовать функцию редактирования ссылок в Excel.

1. В Лента, перейти к Данные> Изменить ссылки.

2. В окне «Редактировать ссылки» вы можете увидеть все книги, связанные с текущим файлом. Чтобы удалить ссылку, вы можете выбрать внешний файл и нажать Разорвать ссылку. В результате все ссылки на этот файл удаляются, а ранее связанные ячейки будут содержать значения, которые они имели на момент разрыва.

Вы поможете развитию сайта, поделившись страницей с друзьями

Всем привет.

При обработке некоторой таблички в MS Excel возникла простенькая задача – надо было найти все формулы в которых участовала определенная ячейка. Ммм, попробуйте далее не читать и решить ее самостоятельно.

Ну а кому не втерпеж, слушаем далее. Итак для примера мне надо найти кто использует ячейку B4.

Первое решение – используем поиск. Указываем ячейку в поиске и нажимаем “Найти все”. В результате имеем список всех ячеек где наша B4 участвует в расчетах. Для чего не подходит такой способ? Это не подходит в случае, если наша ячейка участвует  в диапазоне типа “=СУММ(B3:B7)” или ссылка абсолютная “=B$4”.

Решение второе – используем “Зависимости формул”. Ух ты, какая фишка есть в MS Excel. Закладка “Формулы -> Зависимость формул -> Зависимые ячейки” и MS Excel сам показывает где участвует наша ячейка. Красиво правда? Согласен.

Однако есть небольшое ограничение. Если ваша ячейка на другом листе, то MS Excel покажет только наличие зависимости, но не скажет на каком именно листе книги находится искомая формула. Пишите макрос.

Такие дела. Успехов.

Примеры функции АДРЕС для получения адреса ячейки листа Excel

Функция АДРЕС в Excel: описание особенностей синтаксиса

Функция АДРЕС имеет следующую синтаксическую запись:

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

Примеры использования функции АДРЕС в Excel

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

На листе «Курсы» создана таблица с актуальными курсами валют:

funkcii excel78 1

На отдельном листе «Цены» создана таблица с товарами, отображающая стоимость в долларах США (USD):

funkcii excel78 2

В ячейку D3 поместим ссылку на ячейку таблицы, находящейся на листе «Курсы», в которой содержится информация о курсе валюты USD. Для этого введем следующую формулу: =АДРЕС(3;2;1;1;»Курсы»).

funkcii excel78 3

Для расчета стоимости в рублях используем формулу: =B3*ДВССЫЛ(D3).

funkcii excel78 4

Функция ДВССЫЛ необходима для получения числового значения, хранимого в ячейке, на которую указывает ссылка. В результате вычислений для остальных товаров получим следующую таблицу:

funkcii excel78 5

Как получить адрес ссылки на ячейку Excel?

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

Исходная таблица имеет следующий вид:

funkcii excel78 6

Для получения ссылки на ячейку с минимальной стоимостью товара используем формулу:

funkcii excel78 7

Функция АДРЕС принимает следующие параметры:

Аналогичным способом получаем ссылку на ячейку с максимальной ценой товара. В результате получим:

funkcii excel78 8

Адрес по номерам строк и столбцов листа Excel в стиле R1C1

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

Исходная таблица имеет следующий вид:

Исходная таблица.» src=»https://exceltable.com/funkcii-excel/images/funkcii-excel78-9.png» >

Для получения ссылки на ячейку B6 используем следующую формулу: =АДРЕС(6;2;1;0).

funkcii excel78 10

В результате получим ссылку:

funkcii excel78 11

Примечание: при использовании стиля R1C1 запись абсолютной ссылки не содержит знака «$». Чтобы отличать абсолютные и относительные ссылки используются квадратные скобки «[]». Например, если в данном примере в качестве параметра тип_ссылки указать число 4, ссылка на ячейку примет следующий вид:

funkcii excel78 12

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

Источник

Поиск данных в таблице или диапазоне ячеек с помощью встроенных функций Excel

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

Описание

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

Создание образца листа

В этой статье используется образец листа для иллюстрации встроенных функций Excel. Рассматривайте пример ссылки на имя из столбца A и возвращает возраст этого человека из столбца C. Чтобы создать этот лист, введите указанные ниже данные в пустой лист Excel.

Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.

Определения терминов

В этой статье для описания встроенных функций Excel используются указанные ниже условия.

Вся таблица подстановки

Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».

Просматриваемый_массив
-или-
Лукуп_вектор

Диапазон ячеек, которые содержат возможные значения подстановки.

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

3 (третий столбец в инфо_таблица)

Ресулт_аррай
-или-
Ресулт_вектор

Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.

Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.

Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?.

Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).

Функции

LOOKUP ()

Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.

Ниже приведен пример синтаксиса формулы подСТАНОВКи.

= Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)

Следующая формула находит возраст Марии на листе «образец».

= ПРОСМОТР (E2; A2: A5; C2: C5)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).

Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.

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

Ниже приведен пример синтаксиса формулы ВПР :

= ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)

Следующая формула находит возраст Марии на листе «образец».

= ВПР (E2; A2: C5; 3; ЛОЖЬ)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).

INDEX () и MATCH ()

Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.

Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:

= Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)

Следующая формула находит возраст Марии на листе «образец».

= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).

СМЕЩ () и MATCH ()

Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.

Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.

= СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)

Эта формула находит возраст Марии на листе «образец».

= СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).

Источник

Как вернуть адрес ячейки вместо значения в Excel (простая формула)

При использовании формул поиска в Excel (таких как VLOOKUP, XLOOKUP или INDEX / MATCH) цель состоит в том, чтобы найти совпадающее значение и получить это значение (или соответствующее значение в той же строке / столбце) в качестве результата.

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

Это может быть особенно полезно, если у вас большой набор данных и вы хотите узнать точное положение результата формулы поиска. В Excel есть несколько функций, которые предназначены именно для этого.

В этом руководстве я покажу вам, как найти и вернуть адрес ячейки вместо значения в Excel с помощью простых формул.

Поиск и возврат адреса ячейки с помощью функции ADDRESS

Функция ADDRESS в MS Excel предназначена именно для этого. Она берет строку и номер столбца и дает вам адрес ячейки этой конкретной ячейки.

Ниже приведен синтаксис функции ADDRESS :

Теперь давайте возьмем пример и посмотрим, как это работает.

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

63643be9fa9774ba236e607d36ef591cНиже приведена формула, которая сделает это:

cd006dfa216def2ae58224b990189bdeВ приведенной выше формуле я использовал функцию MATCH, чтобы узнать номер строки, содержащей данный идентификатор сотрудника. И поскольку отдел находится в столбце C, я использовал 3 в качестве второго аргумента.

Эта формула отлично работает, но у нее есть один недостаток — она ​​не будет работать, если вы добавите строку над набором данных или столбец слева от набора данных.

Это потому, что, когда я указываю второй аргумент (номер столбца) как 3, он жестко запрограммирован и не изменится.

Если я добавлю какой-либо столбец слева от набора данных, формула будет считать 3 столбца с начала рабочего листа, а не с начала набора данных.

Итак, если у вас есть фиксированный набор данных и вам нужна простая формула, это сработает.

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

Поиск и возврат адреса ячейки с помощью функции CELL

Хотя функция ADDRESS была создана специально для предоставления вам ссылки на ячейку с указанным номером строки и столбца, есть еще одна функция, которая также делает это.

Это называется функцией CELL (и она может дать вам гораздо больше информации о ячейке, чем функция ADDRESS ).

Ниже приведен синтаксис функции CELL:

Теперь давайте посмотрим на пример, в котором вы можете использовать эту функцию для поиска и получения ссылки на ячейку.

Предположим, у вас есть набор данных, показанный ниже, и вы хотите быстро узнать адрес ячейки, в которой находится отдел для идентификатора сотрудника KR256.

a9d82f50d86e63d3c2b6cee211a61b64Ниже приведена формула, которая сделает это:

2596339519856ad5ab305ec3bfbfc09bПриведенная выше формула довольно проста.

Я использовал формулу INDEX в качестве второго аргумента, чтобы получить отдел для идентификатора сотрудника KR256.

А затем просто обернул его в функцию CELL и попросил вернуть адрес ячейки с этим значением, которое я получаю из формулы INDEX.

Вот секрет того, почему это работает: формула INDEX возвращает значение подстановки, когда вы даете ей все необходимые аргументы. Но в то же время он также вернет ссылку на эту результирующую ячейку.

В нашем примере формула INDEX возвращает «Продажи» в качестве результирующего значения, но в то же время вы также можете использовать ее, чтобы дать вам ссылку на ячейку этого значения вместо самого значения.

Обычно, когда вы вводите формулу INDEX в ячейку, она возвращает значение, потому что это именно то, что от нее ожидается. Но в сценариях, где требуется ссылка на ячейку, формула INDEX даст вам ссылку на ячейку.

В этом примере это именно то, что он делает.

И самое лучшее в использовании этой формулы — это то, что она не привязана к первой ячейке на листе. Это означает, что вы можете выбрать любой набор данных (который может быть где угодно на листе), использовать формулу INDEX для регулярного поиска, и он все равно даст вам правильный адрес.

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

Источник

VBA Excel. Метод Find объекта Range

Метод Find объекта Range для поиска ячейки по ее данным в VBA Excel. Синтаксис и компоненты. Знаки подстановки для поисковой фразы. Простые примеры.

Предназначение и синтаксис метода Range.Find

Метод Find объекта Range предназначен для поиска ячейки и сведений о ней в заданном диапазоне по ее значению, формуле и примечанию. Чаще всего этот метод используется для поиска в таблице ячейки по слову, части слова или фразе, входящей в ее значение.

Синтаксис метода Range.Find

Expression – это переменная или выражение, возвращающее объект Range, в котором будет осуществляться поиск.

В скобках перечислены параметры метода, среди них только What является обязательным.

Метод Range.Find возвращает объект Range, представляющий из себя первую ячейку, в которой найдена поисковая фраза (параметр What). Если совпадение не найдено, возвращается значение Nothing.

Если необходимо найти следующие ячейки, содержащие поисковую фразу, используется метод Range.FindNext.

Параметры метода Range.Find

В справке Microsoft тип данных всех параметров, кроме SearchDirection, указан как Variant.

Знаки подстановки для поисковой фразы

Условные знаки в шаблоне поисковой фразы:

Простые примеры

При использовании метода Range.Find в VBA Excel необходимо учитывать следующие нюансы:

В примерах используются переменные:

Источник

Функции ИНДЕКС и ПОИСКПОЗ в Excel – лучшая альтернатива для ВПР

Этот учебник рассказывает о главных преимуществах функций ИНДЕКС и ПОИСКПОЗ в Excel, которые делают их более привлекательными по сравнению с ВПР. Вы увидите несколько примеров формул, которые помогут Вам легко справиться со многими сложными задачами, перед которыми функция ВПР бессильна.

В нескольких недавних статьях мы приложили все усилия, чтобы разъяснить начинающим пользователям основы функции ВПР и показать примеры более сложных формул для продвинутых пользователей. Теперь мы попытаемся, если не отговорить Вас от использования ВПР, то хотя бы показать альтернативные способы реализации вертикального поиска в Excel.

Зачем нам это? – спросите Вы. Да, потому что ВПР – это не единственная функция поиска в Excel, и её многочисленные ограничения могут помешать Вам получить желаемый результат во многих ситуациях. С другой стороны, функции ИНДЕКС и ПОИСКПОЗ – более гибкие и имеют ряд особенностей, которые делают их более привлекательными, по сравнению с ВПР.

indeks poiskpoz excel 1

Базовая информация об ИНДЕКС и ПОИСКПОЗ

Так как задача этого учебника – показать возможности функций ИНДЕКС и ПОИСКПОЗ для реализации вертикального поиска в Excel, мы не будем задерживаться на их синтаксисе и применении.

Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.

ИНДЕКС – синтаксис и применение функции

Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:

Каждый аргумент имеет очень простое объяснение:

Если указаны оба аргумента, то функция ИНДЕКС возвращает значение из ячейки, находящейся на пересечении указанных строки и столбца.

Вот простейший пример функции INDEX (ИНДЕКС):

Формула выполняет поиск в диапазоне A1:C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, то есть из ячейки C2.

Очень просто, правда? Однако, на практике Вы далеко не всегда знаете, какие строка и столбец Вам нужны, и поэтому требуется помощь функции ПОИСКПОЗ.

ПОИСКПОЗ – синтаксис и применение функции

Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.

Например, если в диапазоне B1:B3 содержатся значения New-York, Paris, London, тогда следующая формула возвратит цифру 3, поскольку “London” – это третий элемент в списке.

Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:

На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!

Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.

Как использовать ИНДЕКС и ПОИСКПОЗ в Excel

Теперь, когда Вам известна базовая информация об этих двух функциях, полагаю, что уже становится понятно, как функции ПОИСКПОЗ и ИНДЕКС могут работать вместе. ПОИСКПОЗ определяет относительную позицию искомого значения в заданном диапазоне ячеек, а ИНДЕКС использует это число (или числа) и возвращает результат из соответствующей ячейки.

Ещё не совсем понятно? Представьте функции ИНДЕКС и ПОИСКПОЗ в таком виде:

Думаю, ещё проще будет понять на примере. Предположим, у Вас есть вот такой список столиц государств:

indeks poiskpoz excel 2

Давайте найдём население одной из столиц, например, Японии, используя следующую формулу:

Теперь давайте разберем, что делает каждый элемент этой формулы:

Формула говорит примерно следующее: ищи в ячейках от D2 до D10 и извлеки значение из третьей строки, то есть из ячейки D4, так как счёт начинается со второй строки.

Вот такой результат получится в Excel:

indeks poiskpoz excel 3

Важно! Количество строк и столбцов в массиве, который использует функция INDEX (ИНДЕКС), должно соответствовать значениям аргументов row_num (номер_строки) и column_num (номер_столбца) функции MATCH (ПОИСКПОЗ). Иначе результат формулы будет ошибочным.

Стоп, стоп… почему мы не можем просто использовать функцию VLOOKUP (ВПР)? Есть ли смысл тратить время, пытаясь разобраться в лабиринтах ПОИСКПОЗ и ИНДЕКС?

В данном случае – смысла нет! Цель этого примера – исключительно демонстрационная, чтобы Вы могли понять, как функции ПОИСКПОЗ и ИНДЕКС работают в паре. Последующие примеры покажут Вам истинную мощь связки ИНДЕКС и ПОИСКПОЗ, которая легко справляется с многими сложными ситуациями, когда ВПР оказывается в тупике.

Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?

Решая, какую формулу использовать для вертикального поиска, большинство гуру Excel считают, что ИНДЕКС/ПОИСКПОЗ намного лучше, чем ВПР. Однако, многие пользователи Excel по-прежнему прибегают к использованию ВПР, т.к. эта функция гораздо проще. Так происходит, потому что очень немногие люди до конца понимают все преимущества перехода с ВПР на связку ИНДЕКС и ПОИСКПОЗ, а тратить время на изучение более сложной формулы никто не хочет.

Далее я попробую изложить главные преимущества использования ПОИСКПОЗ и ИНДЕКС в Excel, а Вы решите – остаться с ВПР или переключиться на ИНДЕКС/ПОИСКПОЗ.

4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:

1. Поиск справа налево. Как известно любому грамотному пользователю Excel, ВПР не может смотреть влево, а это значит, что искомое значение должно обязательно находиться в крайнем левом столбце исследуемого диапазона. В случае с ПОИСКПОЗ/ИНДЕКС, столбец поиска может быть, как в левой, так и в правой части диапазона поиска. Пример: Как находить значения, которые находятся слева покажет эту возможность в действии.

2. Безопасное добавление или удаление столбцов. Формулы с функцией ВПР перестают работать или возвращают ошибочные значения, если удалить или добавить столбец в таблицу поиска. Для функции ВПР любой вставленный или удалённый столбец изменит результат формулы, поскольку синтаксис ВПР требует указывать весь диапазон и конкретный номер столбца, из которого нужно извлечь данные.

Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:

=VLOOKUP(«lookup value»,A1:C10,2)
=ВПР(«lookup value»;A1:C10;2)

Если позднее Вы вставите новый столбец между столбцами A и B, то значение аргумента придется изменить с 2 на 3, иначе формула возвратит результат из только что вставленного столбца.

Используя ПОИСКПОЗ/ИНДЕКС, Вы можете удалять или добавлять столбцы к исследуемому диапазону, не искажая результат, так как определен непосредственно столбец, содержащий нужное значение. Действительно, это большое преимущество, особенно когда работать приходится с большими объёмами данных. Вы можете добавлять и удалять столбцы, не беспокоясь о том, что нужно будет исправлять каждую используемую функцию ВПР.

3. Нет ограничения на размер искомого значения. Используя ВПР, помните об ограничении на длину искомого значения в 255 символов, иначе рискуете получить ошибку #VALUE! (#ЗНАЧ!). Итак, если таблица содержит длинные строки, единственное действующее решение – это использовать ИНДЕКС/ПОИСКПОЗ.

Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:

Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:

4. Более высокая скорость работы. Если Вы работаете с небольшими таблицами, то разница в быстродействии Excel будет, скорее всего, не заметная, особенно в последних версиях. Если же Вы работаете с большими таблицами, которые содержат тысячи строк и сотни формул поиска, Excel будет работать значительно быстрее, при использовании ПОИСКПОЗ и ИНДЕКС вместо ВПР. В целом, такая замена увеличивает скорость работы Excel на 13%.

Влияние ВПР на производительность Excel особенно заметно, если рабочая книга содержит сотни сложных формул массива, таких как ВПР+СУММ. Дело в том, что проверка каждого значения в массиве требует отдельного вызова функции ВПР. Поэтому, чем больше значений содержит массив и чем больше формул массива содержит Ваша таблица, тем медленнее работает Excel.

С другой стороны, формула с функциями ПОИСКПОЗ и ИНДЕКС просто совершает поиск и возвращает результат, выполняя аналогичную работу заметно быстрее.

ИНДЕКС и ПОИСКПОЗ – примеры формул

Теперь, когда Вы понимаете причины, из-за которых стоит изучать функции ПОИСКПОЗ и ИНДЕКС, давайте перейдём к самому интересному и увидим, как можно применить теоретические знания на практике.

Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС

Любой учебник по ВПР твердит, что эта функция не может смотреть влево. Т.е. если просматриваемый столбец не является крайним левым в диапазоне поиска, то нет шансов получить от ВПР желаемый результат.

Функции ПОИСКПОЗ и ИНДЕКС в Excel гораздо более гибкие, и им все-равно, где находится столбец со значением, которое нужно извлечь. Для примера, снова вернёмся к таблице со столицами государств и населением. На этот раз запишем формулу ПОИСКПОЗ/ИНДЕКС, которая покажет, какое место по населению занимает столица России (Москва).

Как видно на рисунке ниже, формула отлично справляется с этой задачей:

indeks poiskpoz excel 4

Теперь у Вас не должно возникать проблем с пониманием, как работает эта формула:

Подсказка: Правильным решением будет всегда использовать абсолютные ссылки для ИНДЕКС и ПОИСКПОЗ, чтобы диапазоны поиска не сбились при копировании формулы в другие ячейки.

Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)

Вы можете вкладывать другие функции Excel в ИНДЕКС и ПОИСКПОЗ, например, чтобы найти минимальное, максимальное или ближайшее к среднему значение. Вот несколько вариантов формул, применительно к таблице из предыдущего примера:

1. MAX (МАКС). Формула находит максимум в столбце D и возвращает значение из столбца C той же строки:

2. MIN (МИН). Формула находит минимум в столбце D и возвращает значение из столбца C той же строки:

3. AVERAGE (СРЗНАЧ). Формула вычисляет среднее в диапазоне D2:D10, затем находит ближайшее к нему и возвращает значение из столбца C той же строки:

О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ

Используя функцию СРЗНАЧ в комбинации с ИНДЕКС и ПОИСКПОЗ, в качестве третьего аргумента функции ПОИСКПОЗ чаще всего нужно будет указывать 1 или -1 в случае, если Вы не уверены, что просматриваемый диапазон содержит значение, равное среднему. Если же Вы уверены, что такое значение есть, – ставьте 0 для поиска точного совпадения.

В нашем примере значения в столбце D упорядочены по возрастанию, поэтому мы используем тип сопоставления 1. Формула ИНДЕКС/ПОИСКПОЗ возвращает “Moscow”, поскольку величина населения города Москва – ближайшее меньшее к среднему значению (12 269 006).

indeks poiskpoz excel 5

Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу

Эта формула эквивалентна двумерному поиску ВПР и позволяет найти значение на пересечении определённой строки и столбца.

В этом примере формула ИНДЕКС/ПОИСКПОЗ будет очень похожа на формулы, которые мы уже обсуждали в этом уроке, с одним лишь отличием. Угадайте каким?

Как Вы помните, синтаксис функции INDEX (ИНДЕКС) позволяет использовать три аргумента:

И я поздравляю тех из Вас, кто догадался!

Начнём с того, что запишем шаблон формулы. Для этого возьмём уже знакомую нам формулу ИНДЕКС/ПОИСКПОЗ и добавим в неё ещё одну функцию ПОИСКПОЗ, которая будет возвращать номер столбца.

Обратите внимание, что для двумерного поиска нужно указать всю таблицу в аргументе array (массив) функции INDEX (ИНДЕКС).

А теперь давайте испытаем этот шаблон на практике. Ниже Вы видите список самых населённых стран мира. Предположим, наша задача узнать население США в 2015 году.

indeks poiskpoz excel 6

Хорошо, давайте запишем формулу. Когда мне нужно создать сложную формулу в Excel с вложенными функциями, то я сначала каждую вложенную записываю отдельно.

Итак, начнём с двух функций ПОИСКПОЗ, которые будут возвращать номера строки и столбца для функции ИНДЕКС:

Результатом этой формулы будет 5, поскольку “2015” находится в 5-ом столбце.

Теперь вставляем эти формулы в функцию ИНДЕКС и вуаля:

Если заменить функции ПОИСКПОЗ на значения, которые они возвращают, формула станет легкой и понятной:

Эта формула возвращает значение на пересечении 4-ой строки и 5-го столбца в диапазоне A1:E11, то есть значение ячейки E4. Просто? Да!

indeks poiskpoz excel 7

Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ

В учебнике по ВПР мы показывали пример формулы с функцией ВПР для поиска по нескольким критериям. Однако, существенным ограничением такого решения была необходимость добавлять вспомогательный столбец. Хорошая новость: формула ИНДЕКС/ПОИСКПОЗ может искать по значениям в двух столбцах, без необходимости создания вспомогательного столбца!

Предположим, у нас есть список заказов, и мы хотим найти сумму по двум критериям – имя покупателя (Customer) и продукт (Product). Дело усложняется тем, что один покупатель может купить сразу несколько разных продуктов, и имена покупателей в таблице на листе Lookup table расположены в произвольном порядке.

indeks poiskpoz excel 8

Вот такая формула ИНДЕКС/ПОИСКПОЗ решает задачу:

Эта формула сложнее других, которые мы обсуждали ранее, но вооруженные знанием функций ИНДЕКС и ПОИСКПОЗ Вы одолеете ее. Самая сложная часть – это функция ПОИСКПОЗ, думаю, её нужно объяснить первой.

MATCH(1,(A2=’Lookup table’!$A$2:$A$13),0)*(B2=’Lookup table’!$B$2:$B$13)
ПОИСКПОЗ(1;(A2=’Lookup table’!$A$2:$A$13);0)*(B2=’Lookup table’!$B$2:$B$13)

В формуле, показанной выше, искомое значение – это 1, а массив поиска – это результат умножения. Хорошо, что же мы должны перемножить и почему? Давайте разберем все по порядку:

Теперь понимаете, почему мы задали 1, как искомое значение? Правильно, чтобы функция ПОИСКПОЗ возвращала позицию только, когда оба критерия выполняются.

Обратите внимание: В этом случае необходимо использовать третий не обязательный аргумент функции ИНДЕКС. Он необходим, т.к. в первом аргументе мы задаем всю таблицу и должны указать функции, из какого столбца нужно извлечь значение. В нашем случае это столбец C (Sum), и поэтому мы ввели 3.

И, наконец, т.к. нам нужно проверить каждую ячейку в массиве, эта формула должна быть формулой массива. Вы можете видеть это по фигурным скобкам, в которые она заключена. Поэтому, когда закончите вводить формулу, не забудьте нажать Ctrl+Shift+Enter.

Если всё сделано верно, Вы получите результат как на рисунке ниже:

indeks poiskpoz excel 9

ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

Как Вы, вероятно, уже заметили (и не раз), если вводить некорректное значение, например, которого нет в просматриваемом массиве, формула ИНДЕКС/ПОИСКПОЗ сообщает об ошибке #N/A (#Н/Д) или #VALUE! (#ЗНАЧ!). Если Вы хотите заменить такое сообщение на что-то более понятное, то можете вставить формулу с ИНДЕКС и ПОИСКПОЗ в функцию ЕСЛИОШИБКА.

Синтаксис функции ЕСЛИОШИБКА очень прост:

Где аргумент value (значение) – это значение, проверяемое на предмет наличия ошибки (в нашем случае – результат формулы ИНДЕКС/ПОИСКПОЗ); а аргумент value_if_error (значение_если_ошибка) – это значение, которое нужно возвратить, если формула выдаст ошибку.

Например, Вы можете вставить формулу из предыдущего примера в функцию ЕСЛИОШИБКА вот таким образом:

=IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),
«Совпадений не найдено. Попробуйте еще раз!») =ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));
«Совпадений не найдено. Попробуйте еще раз!»)

И теперь, если кто-нибудь введет ошибочное значение, формула выдаст вот такой результат:

indeks poiskpoz excel 10

Если Вы предпочитаете в случае ошибки оставить ячейку пустой, то можете использовать кавычки (“”), как значение второго аргумента функции ЕСЛИОШИБКА. Вот так:

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

Источник

Добавить комментарий