
셀 내에서 숫자를 정렬하는 데 사용할 수 있는 Excel 함수나 수식이 있는지 알고 싶습니다.
예를 들어 A1의 값이 이고 6193254807
B1에 매개변수가 오름차순으로 정렬되도록 설정된 수식이 있는 경우 B1은 동일해야 합니다 0123456789
(선행 0 포함). 물론 매개변수가 내림차순으로 정렬되도록 설정된 경우 B1은 와 같아야 합니다 9876543210
.
VBScript나 매크로 또는 유사한 이국적인 기능을 사용하지 않고 이를 수행할 수 있는 방법이 있습니까?
답변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()
수식의 세그먼트는 선행 또는 후행 0을 처리합니다 .
결과는 텍스트 형식입니다.. 셀에 입력할 수 있는 자릿수에는 제한이 있으므로 이것이 좋은 생각이라고 생각했습니다.이 슈퍼유저 질문).
결과로 일부 계산을 수행하려면 0+
수식 시작 부분에 삽입하여 결과를 숫자로 변환하세요.