2014-12-18 2 views
0

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

Column A (Risk)  Column B (Risk Mitigation) 

Risk A    Requirement1, Requirement2 

Risk B    Requirement2, Requirement6, Requirement7 

Risk C    Requirement1, Requirement3, Requirement9 

Когда я фильтр на столбце «требования в отношении уменьшения» Я хотел бы видеть флажки для следующих целей:

Requirement1 

Requirement2 


Requirement3 

Requirement4 

Requirement5 

... 

Requirement9 

Так что для моего Например, когда я проверяю только поле фильтра «Требование 1», будут отображаться только строки «Рис. А» и «Риск С».

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

Requirement1, Requirement2 

Requirement2, Requirement6, Requirement7 

Requirement1, Requirement3, Requirement9 

Обратите внимание, что приведенное выше является лишь примером, и у меня есть тысячи индивидуальных требований, поэтому было бы не так просто, как иметь один столбец за каждое требование.

Я открываю любые предложения, включая создание vbscripts.

Любая помощь была бы принята с благодарностью.

ответ

0

Это будет сложно.

  1. Сначала вам нужно создать форму, которая будет содержать поле списка, и заполнить этот список с помощью требований, которые у вас есть в их правильном синтаксисе.
  2. Тогда вам нужно создать цикл, который пройдет через каждую ячейку в столбце и сохранит каждую из них в строке, вы можете создать одномерный массив строк, чтобы сохранить их все в этом.
  3. Тогда вам понадобится цикл, который будет проходить через каждую строку, и использовать функцию разделения для разделения строк с помощью делиметра, вам нужно установить разделитель на «,», чтобы обеспечить его разделение строк в запятых ,
  4. Затем вам понадобится цикл, который будет запущен после того, как вы сделаете свой выбор из списка в своей форме. этот цикл будет проходить через каждую строку вашего 2D-массива и проверять, содержит ли он какие-либо требования в вашем списке. Если это не так, запустите код: Range («B» & x) .EntireRow.Hidden = True, где x - строка, вы можете использовать для этого одну из переменных в вашем цикле.

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