Calc: Сортировка: Еnable naturl sort

Автор eeigor, 20 января 2023, 22:39

0 Пользователи и 1 гость просматривают эту тему.

eeigor

Не могу 26.1 и др. (четыре последних пункта) поставить в начало списка. А почему? Ведь 2-ка в первой позиции меньше 3-ки (26.1 < 30) или 26.1 < 27). А символ # стоит раньше цифр в таблице символов... Или я неправ? И что означает естественная сортировка (natural sort)? Или это баг?
Скопируйте список ниже и вставьте на лист. Попробуйте решить задачу.
UPD. Пишут, что опция работает только тогда, когда содержимое ячейки не разделено пробелом, подчеркиванием и т. д.
Вероятно мои символы нарушают это правило ("и т.д."). Нет, сначала числа, потом текст...

№ группы
26
27
28
29
30
31
32
33
34
35
36
#0.1
#0.2
26.1
26.2

Должно быть вот так (расставлено вручную):

#0.1
#0.2
26
26.1
26.2
27
28
29
30
31
32
33
34
35
36
Ubuntu 18.04 LTS • LibreOffice 7.4.3.2 Community

sokol92

#1
Где-то я про это читал.  :)
Натуральная сортировка текстов в вольном изложении.
Каждый непустой текст для сравнения разбивается на три части:
1. Префикс
2. Число (получается из подстроки, которая может быть интерпретирована как число)
3. Суффикс
Если число не найдено (то есть, в тексте нет цифр), то префикс будет равен всему тексту, а число и суффикс будут пустыми.

Для сравнения текстов сначала сравниваем префиксы (как тексты), затем (в случае равенства префиксов) числа. В случае равенства префиксов и чисел сравниваем суффиксы, вновь применяя этот алгоритм натуральной сортировки (разбиваем на три части, и т.д.).


Владимир.