Алфавитно-цифровая сортировка в Excel

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

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

Я застрял.

2
задан lzam
14.04.2023 17:33 Количество просмотров материала 3590
Распечатать страницу

2 ответа

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

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

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

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

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

1
отвечен fixer1234 2023-04-16 01:21

The Result

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

Шаг 1

[Обновлено]

в столбце "числа" выделите диапазон, затем разделите текст через дефис: do...

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

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

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

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

Шаг 2

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

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

[UPDATE] вы можете использовать следующая функция (хотя пока мы не вполне понимаю, почему) определить самое длинное число:

=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")
1
отвечен David Michael Gregg 2023-04-16 03:38

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх