Может ли Excel сортировать по переписке с другим столбцом? - PullRequest
1 голос
/ 04 сентября 2010

Что у меня есть: два столбца текстовых данных, которые содержат только отдельные (не повторяющиеся) элементы.

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

Example   
Before         After 
Col1    Col2    Col1 Col2
A       Q       A       A
B       E       B       B
C       B       C       
D       W       D       
E       A       E       E
                        Q
                        W

Этот небольшой пример довольно легко сделать с помощью глазного яблока, но мои данные могут содержать от нескольких сотен до двух тысяч наименований.

Заранее спасибо.

1 Ответ

2 голосов
/ 04 сентября 2010

Нет практического способа сделать это за 1 шаг с формулой в точности так, как вы хотите. Вы МОЖЕТЕ сделать это, но это было бы настолько запутанным INDEX / ROW материалом, что это не читается. Вы можете разделить его на несколько этапов или сделать преобразования после Excel? В зависимости от вашего контекста, разные решения будут более практичными, чем другие.

Предполагается, что ваш лист похож на:

 A       B
---     ---
 A       Q
 B       E
 C       B
 D       W
 E       A

Я могу сделать это в 3 добавленных столбцах:

  1. Поиск подходящих значений и пропускаемых строк по формуле (введите C2) ="0"&IFERROR(VLOOKUP(A2,$B:$B,1,FALSE),"").
  2. Найти несоответствия по формуле (введите D2) =IF(ISNA(VLOOKUP(B2,$A:$A,1,FALSE)),"1"&B2,"")
  3. Объедините их вместе, столбец C перед столбцом D, с формулой в E2: =IF(ROW(E2)<=COUNTA(C:C),C2,INDEX(D:D,ROW(E2)-COUNTA(C:C)+1)). Обратите внимание, что +1 - потому что я предполагаю, что есть заголовок столбца.

В результате:

 A       B       C        D       E
---     ---     ---      ---     ---
 A       Q       0A       1Q      0A
 B       E       0B               0B
 C       B       0                0
 D       W       0        1W      0
 E       A       0E               0E
                                  1Q


                                  1W

Теперь вы можете скопировать / вставить текстовый столбец E куда-нибудь, отсортировать его и удалить 1-й символ. Добавление 0 и 1 позволяет сортировать столбец E таким образом. Если вы этого не сделаете сделав это таким образом, вы не сможете различить «удаление пробелов» и желательные пустые строки.

Это много шагов, чтобы сделать это; Вы можете написать макрос для этого, если вам нужно больше автоматизировать это.

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