1

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

Например, если значение A1 равно 6193254807 а B1 имеет нашу формулу с параметрами, установленными для сортировки по возрастанию, то B1 должен быть равен 0123456789 (включая ведущий ноль). Конечно, если параметры были установлены так, чтобы сортировка сортировалась по убыванию, то значение B1 должно равняться 9876543210 .

Есть ли способ сделать это, не заходя в VBScript, или в макросы, или в нечто подобное экзотическое?

1 ответ1

1

Это возможно с формулой массива. Предполагая, что исходный номер в A1, введите любой из ff. в пустую ячейку и зафиксируйте его с помощью Ctrl + Shift + Enter:

По возрастанию:

=REPT(0,LEN(A1)-LEN(SUBSTITUTE(A1,0,"")))&
 SUM(POWER(10,ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))-1)*
     LARGE(INT(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),
            ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))))

По убыванию:

=SUM(POWER(10,ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))-1)*
     SMALL(INT(MID(SUBSTITUTE(A1,0,""),ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,"")))),1)),
           ROW(INDIRECT("1:"&LEN(SUBSTITUTE(A1,0,""))))))
 &REPT(0,LEN(A1)-LEN(SUBSTITUTE(A1,0,"")))

Пример:

Каждая формула берет n- е наибольшее или наименьшее число в ячейке и умножает его на степень 10 в соответствии с ее "рангом" (или присваивает ему новое значение места), которые затем суммируются для получения "переставленного" числа. Например, если наше исходное число равно 231 общие шаги расчета для первой формулы будут следующими:

=sum(1*power(10,2), 2*power(10,1), 3*power(10,0))  
=sum(100,20,3)
=123

Сегмент REPT() формулы обрабатывает любые начальные или конечные нули.

Результат будет в текстовом формате. Я подумал, что это было бы хорошей идеей, так как есть ограничение на количество цифр, которые вы можете ввести в ячейку (я рекомендую прочитать этот вопрос SuperUser).

Если вы хотите выполнить некоторые вычисления с результатом, просто вставьте 0+ в начало формулы, чтобы превратить результат в число.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .