У меня есть таблица с приличным количеством данных. Мне нужно вернуть некоторые из этих данных в определенные ячейки. Данные, которые мне нужно вернуть, всегда находятся рядом с ячейкой с «Прикрепленными компонентами». Проблема в том, что есть несколько ячеек «Присоединенные компоненты». Например, у меня есть две части, «Часть 1» и «Часть 2», и каждая из двух частей имеет раздел «Присоединенные компоненты» относительно близко друг к другу. Ячейки, в которых они расположены, тоже не остаются прежними, иначе я бы просто сослался на эти ячейки. Вот формула, которую я сейчас использую, чтобы вернуть данные рядом с «Прикрепленные компоненты» для ОДНОЙ части:
=IFNA(INDEX(L15:R46,MATCH("Attached Components",M15:M46,0)+2,3),"0")
Подводя итог, мне нужна формула, которая возвращает данные из ячейки, которая ссылается на «Присоединенные компоненты», которая затем ссылается на «Part #_».
Вот пример того, как позиция «Присоединенных компонентов» может измениться, и где она находится по отношению к «Части № 1».
Это довольно специфическая проблема, и я знаю, что мое объяснение не самое ясное. Я ценю помощь и не стесняйтесь спрашивать более конкретные детали!
Ответы:
Я пытался заставить это работать, предполагая, что:
И я буду использовать этот лист для работы над:
Это может быть не совсем то, что вам нужно, но я могу попытаться улучшить мой ответ с вашими замечаниями по этому поводу.
Повторно использовав вашу формулу, чтобы определить, где находится «Прикрепленные компоненты» в столбце, а затем добавьте 2, вы получите относительную строку, где начинается описание материала:
Результат в примере «7».
После нужно указать последний ряд, где находятся описания. Для поиска в правильном диапазоне необходимо изменить формулу в зависимости от того, какая строка «Присоединенные компоненты» расположена. Комбинация MATCH, ADDRESS, CONCATENATE воссоздает диапазон.
MATCH дает вам относительную строку, ADDRESS преобразует номер строки и номер столбца в строку с именем ячейки (ADDRESS (1,1) = "$ A $ 1"), CONCATENATE объединит строки, чтобы создать диапазон.
Это возвращает строку типа "$ C $ 7: $ C $ 25". Таким образом, он охватывает столбец Description и начинается со строки, где у вас есть значения на 18 строк ниже. Чтобы покрыть больше или меньше строк, просто измените «+20» в формуле на соответствующее значение.
Поиск последней строки - это всего лишь поиск первой пустой ячейки с IF и MIN.
Эта формула является формулой массива. Вот почему у него есть квадратные скобки (не вводите квадратные скобки, они появляются, когда вы вводите формулу, а затем нажимаете Ctrl + Shift + Enter)
INDIRECT преобразует строку, которую мы встроили в ссылку на ячейку. ROW дает номер строки в результате. MIN примет наименьшее значение в возвращаемом диапазоне. «-1» в конце должен иметь номер строки последнего описания, а не первую пустую строку.
В примере по этой формуле возвращается «9».
Теперь у нас есть номер строки первого и последнего описания от 7 до 9. Мы можем объединить эти числа так, как мы хотим, используя ADDRESS, CONCATENATE и INDIRECT для выполнения любой необходимой операции. Но на этот раз у вас есть конкретная ссылка на ячейку для работы.
Например поиск материала #:
В этом последнем примере ячейки содержат
E2:
F2 (чтобы войти используя Ctrl + Shift + Enter):
F7:
Таким образом, когда вы вводите Material # в ячейку E7, он отображает описание в ячейке F7.
РЕДАКТИРОВАТЬ :
Следуя комментариям, решение может быть разработано следующим образом:
Используя более сложный пример:
Сопоставление строк - это просто каскад функции 2 MATCH. Используя первую функцию MATCH, чтобы найти Part #, а затем вторую, чтобы найти интересующий раздел:
F3: строка части, которую вы ищете
F4: формула для поиска «Part #» в первом столбце.
F6: название раздела, который вы ищете
F7: формула для поиска раздела в части, определенной ранее. Сопоставление выполняется в диапазоне, который начинается в строке «Part #» (хранится в ячейке F4). Диапазон строится с использованием тех же формул, которые используют INDIRECT, CONCATENATE, ADDRESS. Затем относительная строка, возвращаемая MATCH, смещается на F4-1, чтобы получить абсолютный номер строки.
Теперь, чтобы идентифицировать первую и последнюю строки описания, мы можем использовать те же формулы, что и раньше:
F9: добавление 2 к номеру строки «Присоединенные компоненты», чтобы получить первую строку описания.
F10: поиск первой пустой строки в диапазоне описания (начиная со строки, сохраненной в F9). Это формула массива, которая должна быть введена с помощью
CTRL+SHIFT+ENTER
Затем для отображения описания мы можем использовать INDIRECT и столбец индекса:
F15:
G15:
В этих формулах будет отображаться № материала и описание строки, обозначенной индексом в столбце E. Оператор IF должен убедиться, что мы не отображаем строки, которые находятся ниже последних строк. В примере показано только 5 строк, но вы можете просто скопировать эту формулу, перетащив вниз первую строку и добавив новые индексы, чтобы получить больше.
источник