Я считаю, что использование функций базы данных в Excel более эффективно, чем использование формул массива, и это очень мощный, универсальный и c универсальный инструмент.
- Предположим, заголовок таблицы в строке 1. Мой Excel взят из Office 365.
- Удалите пробелы из заголовков столбцов (строка 1), как требуется в функциях базы данных.
- Имя столбца
B
(Ctrl + F3), например, C_COD
. - Откройте новый столбец
H
перед текущим столбцом H
(который будет изменен на I
) и поместите CRIT
в ячейку H1
или любой другой заголовок - В новом столбце
CRIT
введите формулу =NOT(ISERR (SEARCH(C_Cod, GemsBomDesignator)))
IN H2
и скопируйте до конца таблицы. Не беспокойтесь о значении ошибки в оценке - В ячейке
E2
введите формулу =DGET($F$2:$G$1000,"Value", H1:H2)
и скопируйте ее.
Замените 1000
на количество нижняя строка таблицы.
Объяснение :
DGET
- это функция базы данных в EXCEL для извлечения значения. Первый параметр - это таблица «базы данных», простая и плотная таблица с именами столбцов (без пробелов) в первой строке. «Значение» - это имя «поля» для возврата, которое является заголовком желаемого столбца в двойных кавычках, а H1:H2
- это критерий (условие), где H2
- условие критериев, а * 1039. * только предыдущая строка с любым содержанием (в данном случае в ней нет logi c, но это требование функции).
Критерии могут быть выражением с двумя особыми наблюдениями:
a) используется имя столбца (в данном случае C_COD
) для доступа к значению вне таблицы (префикс @ для указания использования одного значения). Это значение всегда извлекается по той же строке, что и критерий. Это уловка - поставить критерий один раз и просто скопировать его без изменений.
b) На любое значение в таблице можно ссылаться, просто используя имя столбца в двойных кавычках . Это более читабельно.