Как извлечь информацию о строке на основе значения в столбце в Excel или Google Sheets? - PullRequest
0 голосов
/ 29 апреля 2020

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

Если у меня есть такие данные: Имя Инфо1 Инфо2 Условие1 Условие2 foo1 3 9 X foo2 8 10 X foo3 2 7 XX

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

Пример: Ячейка генерирует Условие1, отображать все строки и значения, которые имеют «X» в столбце «Condition1».

Я знаю, что могу использовать фильтры, но это не будут пользовательские данные. Если фильтры являются единственным способом, существует ли сценарий, который можно выполнить для автоматической фильтрации на основе значения ячейки, чтобы пользователь не видел другие данные (если они не редактируют фильтр вручную)?

Я пробовал комбинации VLOOKUP и HLOOKUP, а также INDEX и баловался в MATCH. У меня проблема в том, что если у меня есть 40 элементов, которые соответствуют Условию 1, а на следующий день он автоматически переключается на Условие 2 и в нем 10 элементов, я испытываю трудности при написании сценария для генерации всех этих элементов.

1 Ответ

1 голос
/ 29 апреля 2020

Если вы используете Google Sheets или Excel 365, тогда вы можете использовать FILTER(). Если ваша версия Excel поддерживает функцию AGGREGATE(), то ее можно использовать. Если вы используете версию Excel для Jurassi c, то вы можете использовать MATCH() для получения необходимых данных. Скажем, у нас есть:

enter image description here

и нам нужны записи, в которых cond1 имеет x . А именно строки 2, 4, 7, 11, 13, 17 и 19.

In G1 введите:

=MATCH("x",D:D,0)

In G2 введите:

=IFERROR(MATCH("x",INDEX(D:D,G1+1):INDEX(D:D,9999),0)+G1,"")

и скопируйте вниз. Каждая формула MATCH() проверяет отдельный фрагмент столбца D :

enter image description here

Формула MATCH() в G1 начинается в верхней части столбца D , формула MATCH() в G2 начинается на одну ячейку ниже совпадения, найденного в G1 , et c , Когда у нас есть номера строк, INDEX() можно использовать для получения любой информации в этой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...