Буквенно-цифровая сортировка в Excel

11

В Excel можно сортировать буквенно-цифровые символы из a-1, a-2, a-3 ... a-123 вместо a-1, a-10, a-100, a-11?

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

Я застрял.

beccabecca
источник
Привет @beccabecca, пожалуйста, прими ответ, так как это не только полезно для людей, у которых есть схожий с тобой вопрос, но и вознаграждает тех, кто работал, чтобы найти решение для тебя. Ура!
Дэвид Майкл Грегг

Ответы:

4

Результат

Пользователь @ fixer1234 прав, вы, вероятно, хотите использовать строковые функции. Вот один из способов сделать это.

Шаг 1

[Обновлено]

В столбце «Числа» выделите диапазон, затем разбейте текст на дефис: do ...

Data> Text to Columns> Delimited> Next> Other: ->Finish

Обратите внимание, что вам нужно дефис ( - ) в Other:текстовом поле. И убедитесь, что соседний столбец (справа) пуст, прежде чем сделать это, чтобы не перезаписывать важные данные.

Вы также можете использовать эту функцию для извлечения числа из столбца A:

=RIGHT(A2,LEN(A2)-SEARCH("-",A2))

Шаг 2

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

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

[ОБНОВЛЕНИЕ] Вы можете использовать следующую функцию (хотя пока мы не совсем знаем, почему ), чтобы определить наибольшее число:

=MAX(INDEX(LEN(C2:C14),,1))

В качестве альтернативы, вы можете просто ввести следующую формулу в ячейку (вы видите это на изображении выше, когда ячейка выделена оранжевым цветом), но вместо простого нажатия ENTERклавиши для установки ячейки нажмите горячую клавишу CTRL-SHIFT-ENTER. Это изменит характер функции, превратив ее в формулу массива , без необходимости играть с такими функциями, как INDEX().

=MAX(LEN(C2:C14))

(Убедитесь, что диапазон точен для конкретной таблицы, которую вы используете.)

После того, как вы нажмете CTRL-SHIFT-ENTER, содержимое ячейки изменится на это, но ввод этого вручную ничего не сделает:

{=MAX(LEN(C2:C14))}

Однако вы хотите сделать это хорошо. Просто определите, сколько цифр составляют наибольшее число в вашем списке: «1», конечно, имеет 1 цифру, «10» имеет 2 цифры, «100» имеет 3 цифры и так далее.

Шаг 3

Наконец, в столбце «Развернуть» эта функция преобразует числа из столбца «Числа» в текст с числом предшествующих нулей, которое вы определили, которое следует использовать на шаге 2.

=TEXT(C2,"000")

Убедитесь, что вы поставили кавычки вокруг нулей.

Если наибольшее число имеет 8 цифр, то ваша функция будет выглядеть так:

=TEXT(C2,"00000000")
Дэвид Майкл Грегг
источник
2

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

Предположим, префикс «a-» никогда не изменяется, записи в столбце A начинаются со строки 2, а столбец B доступен. В B2 вы должны поместить что-то вроде: = value (mid (a2,3, len (a2) -2)) и затем скопировать формулу по мере необходимости. Чтобы отсортировать, выделите оба столбца и отсортируйте по B.

Если могут быть другие префиксы, скажем, b-, c- и т. Д., Аналогичным образом разделите текстовую часть на другой столбец. Затем сортируйте текстовый столбец как первый столбец сортировки и номер столбца как второй.

Все, что вы выделите, будет отсортировано по столбцам сортировки.

Чтобы объяснить строковые функции, начните с функции mid, которая извлекает строку символов из строки символов. mid (a2,3, len (a2) -2) просматривает текст в a2, начинается с третьего символа (первая цифра, предполагая, что все префиксы «a-»), а затем принимает количество символов, которое на два меньше, чем число в исходном тексте (длина исходного текста минус символы «a-»). Затем функция значения превращает этот результат в число, а не в строку числовых символов.

fixer1234
источник
Извините, не могли бы вы объяснить немного подробнее? Что за строковая функция?
Беккабека
Таким образом, для B3 будет = значение (середина (a3,3, len (a3) ​​-2))? Я прав? Тогда будет так и так далее? Извините, я надеюсь, что я не
задаю
Ты понял. Создав формулу в B2, вы можете просто скопировать ее, выделить ячейки B для необходимого количества строк и вставить их. Это автоматически изменит ссылки на ячейки для соответствия строка за строкой.
fixer1234 19.09.14
2

У меня есть следующие данные:

[Student Name]  [Regn. No (AlphaNum)]    [Test Score]

Lisa            DD38                      90

Aletta          BC36                      85

Ava             AB40                      95

Sunny           BB34                      91

Sofia           CD36                      89

Johnny          CM07                      80

Исходные данные должны быть отсортированы в соответствии с AlphaNumeric String

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

[Student Name]  [Regn. No (AlphaNum)]    [Test Score]

Ava             AB40                      95

Sunny           BB34                      91

Aletta          BC36                      85

Sofia           CD36                      89

Johnny          CM07                      80

Lisa            DD38                      90

Окончательный результат должен выглядеть следующим образом

Как:

Шаги для преобразования буквенно-цифровой строки в чистые числа

Хотя приведенный выше снимок самоочевиден, все же следующие шаги:

  1. Извлеките алфавитную часть в столбце, используя в =LEFT(B4, 2)качестве формулы, где «2» показывает количество алфавитов в строке, и мои строки начинаются с B4.

  2. Присвойте номер этой алфавитной части, используя =COLUMN(INDIRECT(E4&1))

  3. Извлеките числовую часть регистрационного номера, используя в =RIGHT(B4,2)качестве формулы. Здесь «2» - это нет. чисел в строке.

  4. Объединить две части в 2 и 3

  5. Преобразуйте их в «чистые» числа, используя =VALUE(H4)

  6. Скопируйте последний столбец в исходную таблицу и используйте параметр Вставить как «Значения».

    Исходные данные с добавлением буквенно-цифровых строк, преобразованных в числа

  7. Теперь выполните сортировку по последнему столбцу и выберите «Расширить выбор».

    Сортировка 1

    Сортировка 2

  8. Выполнено!!!

    Окончательный вывод

Важно: Pro-Tip -> Объедините шаги от 1 до 5, используя =VALUE(CONCATENATE(COLUMN(INDIRECT(LEFT(B4,2)&1)),RIGHT(B4,2)))

BK_
источник
Кроме того: как в этом примере все регистрационные номера имеют одинаковую длину, хорошо используя начальные нули для числовой части : не будет ли обычная сортировка работать из коробки?
Арджан