Автоматично сортиране на данни по азбучен ред с помощта на формула

Съдържание

Вграденото сортиране на данни в Excel е невероятно, но не е динамично. Ако сортирате данни и след това добавите данни към тях, ще трябва да ги сортирате отново.

Сортирайте данните по азбучен ред

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

Когато всички данни са текст без дубликати

Да предположим, че имате данни, както е показано по -долу:

В този пример всички данни са в текстов формат (без числа, заготовки или дубликати). За да сортирам това, ще използвам помощна колона. В колоната до данните използвайте следната формула COUNTIF:

= COUNTIF ($ A $ 2: $ A $ 9, "<=" & A2)

Тази формула сравнява текстова стойност с всички останали текстови стойности и връща относителния й ранг. Например в клетка В2 връща 8, тъй като има 8 текстови стойности, които са по -ниски или равни на текста „САЩ“ (азбучен ред).

Сега, за да сортирате стойностите, използвайте следната комбинация от функции INDEX, MATCH и ROWS:

= ИНДЕКС ($ A $ 2: $ A $ 9, MATCH (ROWS ($ B $ 2: B2), $ B $ 2: $ B $ 9,0))

Тази формула просто извлича имената по азбучен ред. В първата клетка (C2) тя търси името на държавата с най -малък брой (Австралия има 1). Във втората клетка връща Канада (която има номер 2) и така нататък …

Алергия към помощни колони ??

Ето формула, която ще направи същото без помощната колона.

= INDEX ($ A $ 2: $ A $ 9, MATCH (ROWS ($ A $ 2: A2), COUNTIF ($ A $ 2: $ A $ 9, "<=" & $ A $ 2: $ A $ 9), 0))

Това е формула на масив, така че използвайте Control + Shift + Enter вместо Enter.

Ще ви оставя да декодирате.

Опитайте сами … Изтеглете примерен файл

Тази формула работи добре, ако имате текстови или буквено -цифрови стойности.

Но се проваля зле, ако:

  • Имате дубликати в данните (опитайте да поставите САЩ два пъти).
  • В данните има празни места.
  • Имате комбинация от числа и текст (опитайте да поставите 123 в една от клетките).
Когато данните са смесица от числа, текст, дубликати и празни места

Сега това е малко сложно. Ще използвам 4 помощни колони, за да ви покажа как работи (и след това ще ви дам огромна формула, която ще го направи без помощните колони). Да предположим, че имате данни, както е показано по -долу:

Можете да видите, че има дублирани стойности, празно място и числа. Така че ще използвам помощни колони за решаване на всеки от тези проблеми.

Помощна колона 1

Въведете следната формула COUNTIF в Помощна колона 1

= COUNTIF ($ A $ 2: $ A $ 9, "<=" & A2)

Тази формула прави следното:

  • Връща 0 за заготовки.
  • В случай на дубликати, той връща същия номер.
  • Текстът и числата се обработват паралелно и тази формула връща един и същ номер за текст и номер (например 123 и Индия получават 1).

Помощна колона 2

Въведете следната функция IS в помощна колона 2:

=-ISNUMBER (A2)

Помощна колона 3

Въведете следната формула в помощна колона 3:

=-ISBLANK (A2)

Помощна колона 4

Въведете следната формула в помощна колона 4

= IF (ISNUMBER (A2), B2, IF (ISBLANK (A2), B2, B2+$ C $ 10))+$ D $ 10

Идеята за тази формула е да разделя празни места, числа и текстови стойности.

  • Ако клетката е празна, тя връща стойността в клетка B2 (която винаги би била 0) и добавя стойността в клетка D10. Накратко, той ще върне общия брой празни клетки в данните
  • Ако клетката е числова стойност, тя ще върне сравнителния ранг и ще добави общия брой празни места. Например за 123 връща 2 (1 е рангът на 123 в данните и има 1 празна клетка)
  • Ако е текст, той връща сравнителния ранг и добавя общия брой числови стойности и заготовки. Например, за Индия, той добавя сравнителния ранг на текста в текст (който е 1) и добавя броя на празни клетки и броя на числовите стойности.

Краен резултат - сортирани данни

Сега ще използваме тези помощни колони, за да получим сортирания списък. Ето формулата:

= IFERROR (ИНДЕКС ($ A $ 2: $ A $ 9, МАТЧ , "")

Този метод на сортиране сега става защитен от глупости. Показах ви метода за 8 елемента, но можете да го разширите до толкова елементи, колкото искате.

Опитайте сами … Изтеглете примерен файл

Една формула за сортиране на всичко (без помощни колони)

Ако можете да боравите с екстремни формули, ето формула „всичко в едно“, която ще сортира данните по азбучен ред (без помощна колона).

Ето формулата:

= IFERROR (ИНДЕКС ($ A $ 2: $ A $ 9, МАТЧ $ A $ 9, "<=" & $ A $ 2: $ A $ 9), COUNTIF ($ A $ 2: $ A $ 9, "<=" & $ A $ 2: $ A $ 9)+SUM (-ISNUMBER ($ A $ 2: $ A $ 9))), ROWS ($ A $ 2: A2)+SUM (-ISBLANK ($ A $ 2: $ A $ 9))), НЕ ($ A $ 2: $ A $ 9 = "")*АКО (ISNUMBER ($ A $ 2: $ A $ 9), COUNTIF ($ A $ 2: $ A $ 9, "<=" & $ A $ 2: $ A $ 9), COUNTIF ($ A $ 2: $ A $ 9, "<=" & $ A $ 2: $ A $ 9)+SUM (-ISNUMBER ($ A $ 2: $ A $ 9))), 0)), "")

Въведете тази формула в клетка и я плъзнете надолу, за да получите сортирания списък. Също така, тъй като това е формула на масив, използвайте Control + Shift + Enter вместо Enter.

Тази формула има полезност в реалния свят. Какво мислиш? Бих искал да се уча от вас. Оставете следите си в секцията за коментари!

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave