Как получить динамический лист Excel из списка на основе значения столбца - PullRequest
0 голосов
/ 02 января 2019

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

||Name(Column A)||Age (Column B)||Status (Column C)||
|Albert|10|New|  
|Benjamin|20|New|    
|Carlos|30|Old|    
|Denis|40|New|

Теперь я хочу на втором листе, чтобы только записи показывались друг под другом, которые имеют статус «новый».(но на самом деле без отображения столбца состояния) Вот так

||Name(Column A)||Age (Column B)||Status (Column C)||
|Albert|10|    
|Benjamin|20|    
|Denis|40|

Несколько вещей: - Я не хочу использовать сводную таблицу в качестве второго листа, что является моим требуемым конечным результатом, так какдолжен быть в очень конкретном формате и порядке - я не хочу использовать автофильтр.(Я мог бы добавить столбец состояния на листе 2, отфильтровать по статусу новый и скрыть столбец. После добавления или удаления записи на листе 1 я должен повторить этот процесс фильтрации)

Есть идеи?Могу ли я сделать это как-нибудь с формулой Array и добавить условие if для столбца состояния?

Я пробовал обычную функцию IF, index / match и Array.но ни один из них не работал так, как я хотел.

Это на листе 1:

||Name(Column A)||Age (Column B)||Status (Column C)||    
|Albert|10|New|    
|Benjamin|20|New|    
|Carlos|30|Old|    
|Denis|40|New|

превращается в это на листе 2, но динамически, без какого-либо взаимодействия с пользователем:

||Name(Column A)||Age (Column B)||Status (Column C)||    
|Albert|10|    
|Benjamin|20|    
|Denis|40|

1 Ответ

0 голосов
/ 02 января 2019

Один путь таков.Если ваши исходные данные находятся в листе 1

enter image description here

, то в листе 2 поместите эту формулу в A2 и скопируйте ее по мере необходимости.Отрегулируйте диапазоны, чтобы удовлетворить.Это формула массива, поэтому подтвердите, нажав Ctrl + Shift + Enter, и фигурные скобки появятся вокруг формулы.

= IF (ROWS (A $ 2: A2) <= COUNTIF (Sheet1! $ C $ 2:$ C $ 5, "Новый"), INDEX (Лист1 $ A $ 2: $ C $ 5, МАЛЫЙ (IF (Лист1 $ C $ 2: $ C $ 5 = "Новый", СТРОКА ($ A $ 2:! $ A $ 5) -ROW ($ A $ 2) +1), ROWS (A $ 2: A2)), КОЛОННЫ ($ A $ 2: A2)), "") </p>

enter image description here

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