Формула или макрос для группировки ячеек по их значениям

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

Column A
EE
EE
SP
EE
CH
CH
EE
SP
CH
CH
EE
  • Для ячейки со значением EE, для которой ячейка под ней имеет значение EE, первая ячейка должна иметь значение "Только EE".
  • Для любой ячейки, имеющей EE и для которой ячейка под ней имеет значение SP, за которой следует еще одна EE, первые две ячейки должны читаться как "EE+SP".
  • Для любой ячейки EE, где ячейка (ячейки) под ней имеют значение CH, эти ячейки должны читаться как «EE+CH».
  • И для любой ячейки EE, где ячейки под ней SP и CH, все эти ячейки должны читаться как "EE+FAM".

Приведенный выше столбец должен выглядеть следующим образом:

Column A
EE Only
EE+SP
EE+SP
EE+CH
EE+CH
EE+CH
EE+FAM
EE+FAM
EE+FAM
EE+FAM
EE Only

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

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


person FrenchConnections    schedule 07.04.2015    source источник
comment
Вы можете сделать это с помощью VBA. Вам понадобится конструкция цикла для прохождения каждой строки. Для каждой строки посмотрите на ячейку и определите, содержит ли она EE или нет. Если это строка EE, установите флаг и используйте второй цикл, чтобы двигаться вниз до конца или до следующего EE. Это определит, как вы назовете эту строку и следующие строки до конца или до следующей строки EE.   -  person    schedule 07.04.2015
comment
У вас есть код, который может работать? Если бы я отправил конструкцию цикла, которая находит EE, похоже, мне понадобилось бы несколько вторичных циклов, чтобы увидеть, следует ли переименовать группу ячеек EE+SP или EE+FAM и т. д.   -  person FrenchConnections    schedule 07.04.2015


Ответы (1)


Из вашего примера ввода:

=IF(AND(A2<>"EE",B1="EE+FAM"),"EE+FAM",IF(AND(A2="EE",OR(A3="EE",A3="")),"EE Only",IF(OR(AND(A1="EE",A2="SP",A3="EE"),AND(A2="EE",A3="SP",A4="EE")),"EE+SP",IF(OR(A2="CH",A3="CH"),"EE+CH",IF(AND(A2="EE",A3<>"EE"),"EE+FAM","")))))  

должен получить ваш выходной пример.

person pnuts    schedule 07.04.2015
comment
Привет pnuts, я не уверен, что ваша формула работает полностью. Я изменил B1 на A1 в первом операторе AND, как я думаю, это то, что вы имели в виду, но когда я подключаю его, операторы IF, похоже, не работают. Тем не менее, я продолжу играть с вашей идеей, спасибо за помощь! - person FrenchConnections; 08.04.2015
comment
Тогда не будет ли это циклической ссылкой, если я вставлю формулу в B1, A1 или A2? - person FrenchConnections; 08.04.2015