Excel에서 영숫자 정렬


11

Excel에서 a-1, a-10, a-100, a-11 대신 a-1, a-2, a-3 ... a-123에서 영숫자를 정렬 할 수 있습니까?

가장 오래된 것부터 최신 것 또는 AZ를 통해 정렬하면 원하는 결과를 얻지 못할 것입니다. 셀을 숫자로 형식화하려고 시도했지만 도움이되지 않았습니다.

나는 붙어있다.


안녕하십니까, @beccabecca, 귀하의 질문에 비슷한 질문을 가진 사람들에게도 도움이 될뿐만 아니라 귀하에게 해결책을 제공하기 위해 노력한 사람들에게도 도움이되므로 답변을 수락하십시오. 건배!
David Michael Gregg

답변:


4

결과

@ fixer1234 사용자가 맞습니다. 아마도 문자열 함수 를 사용하고 싶을 것입니다 . 한 가지 방법이 있습니다.

1 단계

[업데이트]

"숫자"열에서 범위를 강조 표시 한 다음 하이픈으로 텍스트를 분할하십시오.

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

텍스트 상자 에 하이픈 ( - ) 이 필요 Other:합니다. 중요한 데이터를 덮어 쓰지 않도록 인접한 열 (오른쪽)이 비어 있는지 확인하십시오.

이 함수를 사용하여 열 A에서 숫자를 추출 할 수도 있습니다.

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

2 단계

위의 스크린 샷에서 알 수 있듯이 다음 단계에서 수행 할 작업은 가장 큰 숫자보다 자릿수가 적은 각 숫자의 시작 부분에 0을 추가하는 것입니다. 이렇게하면 원하는대로이 숫자를 정렬 할 수 있습니다.

그러나 먼저, 우리는 약간의 사실을 찾아야합니다. 가장 큰 숫자가 무엇인지 쉽게 알 수 있다면 가장 큰 숫자의 자릿수 만 세십시오. 이것은 다음 함수에서 사용할 0의 숫자입니다. 가장 큰 숫자의 자릿수를 수동으로 계산하지 않고 가장 긴 숫자를 결정하는 다른 방법이 있습니다.

[업데이트] 당신은 가장 긴 숫자를 결정하기 위해 다음 함수 (지금까지 우리는 이유를 모르지만 )를 사용할 수 있습니다 :

=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 단계에서 사용해야한다고 결정한 선행 0의 숫자가있는 텍스트로 변환합니다.

=TEXT(C2,"000")

0을 따옴표로 묶어야합니다.

가장 큰 숫자가 8 자리 인 경우 함수는 다음과 같습니다.

=TEXT(C2,"00000000")

2

간단한 해결책은 문자열 함수를 사용하여 숫자 값을 새 열에 숫자로 넣는 것입니다. 그런 다음 해당 열을 정렬하십시오. 값이 어떻게 달라 지거나 어떻게 배열되는지 지정하지 않았지만 예를 들면 다음과 같습니다.

"a-"접두어가 변경되지 않고 항목이 행 2에서 시작하여 열 A에 있고 열 B가 사용 가능하다고 가정하십시오. B2에서는 = value (mid (a2,3, len (a2) -2))와 같이 입력 한 다음 필요에 따라 수식을 복사합니다. 정렬하려면 두 열을 모두 강조 표시하고 B를 기준으로 정렬하십시오.

b-, c- 등의 다른 접두사가있을 수 있으면 텍스트 부분을 다른 열로 비슷하게 분리하십시오. 그런 다음 텍스트 열을 첫 번째 정렬 열로 정렬하고 숫자 열을 두 번째 정렬 열로 정렬하십시오.

강조 표시된 모든 항목은 정렬 열에 따라 정렬됩니다.

문자열 함수를 설명하려면 문자열 중 하나에서 문자열을 추출하는 mid 함수로 시작하십시오. mid (a2,3, len (a2) -2)는 a2의 텍스트를보고 세 번째 문자 (모든 접두어가 "a-"라고 가정 한 첫 번째 숫자)로 시작한 다음 원래 텍스트의 숫자 (원본 텍스트의 길이에서 "a-"문자를 뺀 길이)보다 2가 적습니다. 값 함수는 결과를 숫자 문자열 대신 숫자로 바꿉니다.


죄송합니다. 좀 더 자세히 설명해 주시겠습니까? 문자열 기능이란 무엇입니까?
beccabecca

따라서 B3의 경우 = value (mid (a3,3, len (a3) ​​-2))입니까? 내가 맞아? 그렇다면 어떻게 될까요? 미안하지만 바보 같은 질문을하지 않기를 바랍니다 ...
beccabecca

맞아요. B2에서 수식을 만들면 수식을 복사하고 필요한만큼 많은 행에 대해 B 셀을 강조 표시하고 붙여 넣을 수 있습니다. 행별로 일치하도록 셀 참조를 자동으로 변경합니다.
fixer1234

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

영숫자 문자열에 따라 정렬 할 초기 데이터

영숫자 문자열 인 등록 번호에 따라 학생과 마크를 정렬하고 싶습니다. 최종 출력은 다음과 같아야합니다.

[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)))


옆으로 :이 예제에서와 같이 등록 번호는 모두 같은 길이를 가지며 숫자 부분에 선행 0을 사용하는 것이 좋습니다 . 정기적 인 정렬 작업이 상자 밖에서 작동하지 않습니까?
Arjan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.