rss
  •  
Обучение Microsoft Excel: от основ до PowerBI

Быстрое получение данных из табличного массива

| Категория: Формулы и функции |

6

Каждая третья задача пользователя — это получение данных из табличного массива при заданных условиях:

cros1

Наиболее часто для решения подобных задач используют функции для работы с табличными данными, например: ПОИСКПОЗ, ИНДЕКС, ДВССЫЛ, СМЕЩ и т.д.

Однако, если список критериев уникален и при этом критерии располагаются в левом/правом столбце или верхней/нижней строке, то решение может быть совсем лаконичным.

1) Необходимо присвоить диапазонам имена — выделить таблицу так, чтобы в левом столбце и верхней строке были критерии, нажать клавиши CTRL+SHIFT+F3, чтобы создать имена по выделенным данным:

cros2

Выбрать создать имена из значений в зависимости от их расположения. в данном примере: в строке выше и в столбце слева, ОК.

2) создать простую формулу пересечения диапазонов: ИмяДиапазона1(ПРОБЕЛ)ИмяДиапазона2

cros3

Однако, такая формула не имеет гибкости, т.к. вводить имена в этом случае нужно с клавиатуры снова и снова.

Усовершенствуем!

1) Создадим в 2-х ячейках Н4 и H5 списки для выбора критериев.

2) Напишем формулу, ссылаясь на эти ячейки: =H4 H5

cros4

Но результата в этом случае не будет. т.к. пересечение 2-х текстовых значений не может давать никакого результата. Значит, необходимо сделать так, чтобы значение, которое присутствует в ячейке Н4 (H5) становилось именем. С подобной задачей отлично справляется функция ДВССЫЛ [INDIRECT].

Таким образом, конечная формула будет: =ДВССЫЛ(H4) ДВССЫЛ(H5) или =INDIRECT(H4) INDIRECT(H5)

cros5

Теперь можно легко выбирать месяца и города в списках и результат не заставит себя ждать!

Преобразование текста в число и наоборот

| Категория: Приемы и советы, Формулы и функции |

13

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

TV1

Что же делать? Самый простой способ распознать разницу — это выполнить равенство двух ячеек. Если они будут одинакового типа данных, то результат будет Истина, а если нет — Ложь. Если получен результат Ложь, то необходимо приводить к единому типу данных — или в обоих случаях текст или число. Многие, конечно же, пробуют прибегнуть к самому простому — изменению типа данных через Формат ячеек. Однако, это не решает проблемы.

Решение подобной проблемы возможно с использованием текстовых функций: ЗНАЧЕН и ТЕКСТ.

1-я ситуация: преобразуем текст в число.

Функция ЗНАЧЕН [VALUE] прекрасно в этим справляется. Эта функция имеет всего один аргумент — то текстовое значение, которое вы хотите преобразовать в число.

TV2

2-я ситуация: преобразуем число в текст.

Функция ТЕКСТ [TEXT]:

  • Значение [Value] — числовое значение, которое нужно преобразовать в текстовое
  • Формат [Format] — формат числа в тестовом формате, как в поле «числовые форматы» формата ячеек.

TV3

Итак, преобразовать текст в число =ЗНАЧЕН(Текст) — результат число, а преобразовать число в текст =ТЕКСТ(Число; «0»)

Особенности использования названий листов в функции ДВССЫЛ (INDIRECT)

| Категория: Приемы и советы, Формулы и функции |

7

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

Сперва многим кажется не привычным — «сочинять» адрес ячейки или диапазона, но вскоре этот барьер преодолевается. И одна из сложностей, с которой сталкиваются пользователи, — это наличие в названии листов пробелов, дефисов и т.д. Однако, и это не может служить проблемой, стоит только вспомнить/понять как Excel обозначает такие ссылки и проблема решена.

Адрес ячейки с другого листа выглядит в общем виде так: ИмяЛиста!Ячейка, если имя листа написано с какими-нибудь разделителями, то имя листа заключается в апострофы: ИмяЛиста’!Ячейка.

ind1.png

Поэтому в функции ДВССЫЛ [INDIRECT] простая сцепка названия листа (значение ячейки A2) и ячейки C1 дает результат только там, где название города написано без каких-либо разделителей:

ind2.png

Т.к.  результат аргумента функции не будет содержать апострофы, а значит Excel не сможет понять это правильно. Отсюда и ошибка #ССЫЛКА!

ind3.png

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

ind4.png

Таким образом, более универсальная формула для работы с именами листов будет:

=ДВССЫЛ(«‘»&A2&»‘!C1») или =INDIRECT(«‘»&A2&»‘!C1»)