Переход по листам с помощью функции  ГИПЕРССЫЛКА()  и дополнительных функции ПОДСТАВИТЬ() ЯЧЕЙКА() ДВССЫЛ()  СТРОКА() ИНДЕКС() ПОИСКПОЗ()
Переход по листам с помощью функции ГИПЕРССЫЛКА() и дополнительных функции ПОДСТАВИТЬ() ЯЧЕЙКА() ДВССЫЛ() СТРОКА() ИНДЕКС() ПОИСКПОЗ()

 

Разбор только Формулы №2

=ГИПЕРССЫЛКА(ПОДСТАВИТЬ(ЯЧЕЙКА(«адрес»;ДВССЫЛ(«Лист»&(СТРОКА()-3)&»!A1″));»‘»;»»);СТРОКА()-3)

Задача:

Свободно перемещаться по большому количеству однотипных листов в рабочей открытой книге.

Используемые функции:

ГИПЕРССЫЛКА(), ПОДСТАВИТЬ(), ЯЧЕЙКА(), ДВССЫЛ(), СТРОКА(), ИНДЕКС(), ПОИСКПОЗ(),

Решение :

В первую очередь нам надо сформировать правильный адрес для гиперссылки.

ГИПЕРССЫЛКА(адрес;[имя])

адрес гиперссылки будет получен с помощью функции ЯЧЕЙКА(«тип сведений» ; «ссылка») и тип сведений выбираем «адрес» а для формирования  ссылки нам понадобится функция ДВССЫЛ() с значением такого вида «Лист»&(СТРОКА()-2)&»!A1″

объединяем текст «Лист» с формулой СТРОКА() которая определяет номер строки собственно ячейки, дальше объединяем текст  «!A1» и получаем ссылку на ячейку.

Будет Ошибка!! Если присмотрится в ссылке есть одинарная кавычка после Лист4 которую надо убрать  для получения корректного адреса.

убрать одинарную кавычку нам поможет функция ПОДСТАВИТЬ()

ПОДСТАВИТЬ(текст в котором ищем: найти символ: заменить символ на пусто)

получается что то на подобии:

ПОДСТАВИТЬ(ЯЧЕЙКА(«адрес»;ДВССЫЛ(«Лист»&(СТРОКА()-2)&»!A1″));»‘»;»»)

и задача практически решена.

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

Получится вот так:

=ГИПЕРССЫЛКА(ПОДСТАВИТЬ(ЯЧЕЙКА(«адрес»;ДВССЫЛ(«Лист»&(СТРОКА()-3)&»!A1″));»‘»;»»);«Имя гиперссылки»)

Так же можно добавить и другие варианты наименования ссылки.

используя функцию СТРОКА() получаем номер строки из которого надо вычесть количество строк до нужный диапазон.

=ГИПЕРССЫЛКА(ПОДСТАВИТЬ(ЯЧЕЙКА(«адрес»;ДВССЫЛ(«Лист»&(СТРОКА()-2)&»!A1″));»‘»;»»);СТРОКА()-2)

Скачайте файл с образцом решения для разбора.

 

 

 

 

Суммируем текст. СУММ текста  как число с функциями Ч, ИНДЕКС , ЕСЛИ и ПОИСКПОЗ

Перевод текстовых значений в числа и суммировать результат, вы можете использовать СУММ ИНДЕКС Ч ЕСЛИ ПОИСКПОЗ. В показанном примере, формула в K8-это:

{=СУММ(ИНДЕКС($O$8:$O$11;Ч(ЕСЛИ(1;ПОИСКПОЗ(F8:J8;$N$8:$N$11;0)))))}

  1. «Оценка» это диапазон $N$8:$N$11

      2.  «Балл» —  диапазон $O$8:$O$11.

      3. Диапазон для поиска и суммирования F8:J8

Примечание:

это формула массива, и должно вводиться с помощью

Control + Shift + ввод.

Как эта формула работает

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

=Индекс(Балл;ПОИСКПОЗ(«Зачет»;Оценка;0))

В ячейке : М12

=ИНДЕКС($O$8:$O$11;ПОИСКПОЗ(«Зачет»;$N$8:$N$11;0))

Формула возвращает 5.

Однако есть сложность так как мы хотим преобразовывать и суммировать ряд текстовых значений а не одно «Зачет» в Столбце N в Баллы столбца O. Нам нужен индекс, чтобы вернуть более одного результата. Формула такая:

=СУММ($O$8:$O$11;ПОИСКПОЗ(F8:J8;$N$8:$N$11;0))

После ПОИСКПОЗ, у нас есть массив из 5 элементов:

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

Ч(ЕСЛИ(1,ПОИСКПОЗ(F8:J8;$N$8:$N$11;0)))

Файл Суммируем текст. СУММ текста  как число с функциями Ч, ИНДЕКС , ЕСЛИ и ПОИСКПОЗ DEVSAP

Rак использовать функцию поискпоз EXCEL

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

Синтаксис

ПОИСКПОЗ ( значение; массив; [match_type] )
Параметры или Аргументы

значение
Значение для поиска в массиве.

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

match_type

Необязательно.

1 (по умолчанию)
Функция ПОИСКПОЗ позволит найти наибольшее значение, которое меньше или равно значению. Вы должны быть уверены, что массив отсортирован в порядке возрастания.

Если параметр match_type опущен, то предполагается match_type  1.

0
Функция ПОИСКПОЗ найдет значение равное значению (точное совпадение). Массив можно отсортировать в любом порядке.

-1
Функция ПОИСКПОЗ найдет наименьшее значение, большее или равное значение. Вы должны быть уверены, чтобы отсортировать массив в порядке убывания.

Примечание

    • Функция ПОИСКПОЗ не различает верхний и нижний регистр.
    • Если функция ПОИСКПОЗ не находит совпадение, она будет возвращать значение #н/д ошибка.
    • Если параметр match_type 0 и текстовое значение, то можно использовать подстановочные символы в параметре значения.

Подстановочные символы

*
соответствует любой последовательности символов

?
соответствует любому одиночному символу

На основании изложенного таблице Excel следующие примеры матч вернется:

=ПОИСКПОЗ(10572;А2:А6;1)
Результат: 3 (это матчи на 10571 с match_type параметр имеет значение 1)

=ПОИСКПОЗ(10572;А2:А6)
Результат: 3 (он совпадает по 10571 с параметром match_type была опущена и по умолчанию 1)

=ПОИСКПОЗ(10572;А2:А6;0)
Результат: #н/д (он не совпадает с match_type параметр имеет значение 0)

=ПОИСКПОЗ(10573;А2:А6;1)
Результат: 4

=ПОИСКПОЗ(10573;А2:А6;0)
Результат: 4

=ПОИСКПОЗ(«А?Плес»; А2:А6; 0)
Результат: 1

=ПОИСКПОЗ(«о*ы»; А2:А6; 0)
Результат: 2

=ПОИСКПОЗ(«О?с»; А2:А6; 0)
Результат: #Н/Д

Если ошибка :

=Если(ПОИСКПОЗ(B94;D$54:D$96);»ЧЗ»,»ХЗ ЧТО»)

=Если(или(B94=D$54;B94=D55;B94=D56; {и т. д. через D96} );»ЧЗ»;»ХЗ ЧТО»)

Двусторонний поиск с ВПР и ПОИСКПОЗ-DEVSAP

=ВПР(критерий поиска;таблица поиска;ПОИСКПОЗ(критерий;диапазон поиска;0);0)

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

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

=ВПР($H$5;таб2;ПОИСКПОЗ(H6;B4:E4;0);0)

Н5 поставляет подстановки значений для строки, и H6 поставляет подстановки значений для столбца.

Как эта формула работает

Это стандартный точная формула ВПР  + ПОИСКПОЗ с одним исключением: индекс столбца снабжен функцией ПОИСКПОЗ.

Обратите внимание, что массив подстановок даны в соответствии с (B4:E4), представляющая заголовки столбцов намеренно включает ячейку В4. Это сделано для того, что число возвращаемых ПОИСКПОЗ в синхронизации с таблицей используется функция ВПР. Другими словами, нужно дать диапазона, который охватывает одинаковое число столбцов с помощью ВПР в таблице. В примере (для Месяц2) ПОИСКПОЗ возвращает значение 3, чтобы после ПОИСКПОЗ, работает формула ВПР выглядит так:

=ВПР(Н5,В5:Е8,3,0)

Что возвращает продажи для Капуста (строка 3) в Месяц2 (столбец 3), который составляет 2311 Руб.

 

Файл Excel Двусторонний-поиск-с-ВПР-и-ПОИСКПОЗ-devsap

Двусторонний поиск с индекс и поискпоз ( ПОИСКПОЗ и ИНДЕКС )

Двусторонний поиск с индекс и поискпоз ( ПОИСКПОЗ и ИНДЕКС )

=ИНДЕКС(данные ПОИСКПОЗ(критерий 1;столбец;1);ПОИСКПОЗ(критерий 2;строк;1))

Связанные формулы

Двусторонний поиск с ВПР

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

В показанном примере, формула k6 является:

=ИНДЕКС($D$6:$H$10;ПОИСКПОЗ($K$4;$D$5:$H$5);ПОИСКПОЗ($K$5;$C$6:$C$10))

Заметим, что эта формула делает и «приблизительное соответствие», поэтому значения строки и столбца должны быть отсортированы.

Как эта формула работает

Ядром этой формулы является индекс, который является просто получение значения от $D$6:$H$10 («данные») на основе номера строки и номера столбца.

=ИНДЕКС($D$6:$H$10;столбец;строка)

Чтобы получить номера строк и столбцов, мы используем ПОИСКПОЗ, настроенные на приблизительное соответствие, установив 3 аргумент 1 (истина):

ПОИСКПОЗ($K$5;$C$6:$C$10) // получаем количество строк
ПОИСКПОЗ($K$4;$D$5:$H$5) // получаем номер столбца

В примере, ПОИСКПОЗ вернет 60, Когда Столбц С = «3», а, строка d «D» = «4» .

В итоге, формула сводится к:

=Индекс($D$6:$H$10, 3, 4) = 60

 

 

Файл Двусторонний поиск с индекс и поискпоз ( ПОИСКПОЗ и ИНДЕКС ) DEVSAP