순위에 접미사를 할당하는 공식: IF 1 다음 "st", IF 2 다음 "nd" 등

순위에 접미사를 할당하는 공식: IF 1 다음 "st", IF 2 다음 "nd" 등

나는 레코드의 위치를 ​​작년의 위치와 비교하고 있습니다: This year it is ranked 4th out of 50, in 2015 it was ranked 21st. "st", "nd", "rd" 및 "th"를 순위에 자동으로 추가할 수 있나요?

내 데이터는 테이블에 있습니다.

  • COL A = 데이터 포인트의 이름(Bob, Jane, Bill, Anne 등). 이는 고정 열입니다.
  • COL B = 최근 연도 데이터,
  • COL C = 최근 연도 순위,
  • COL D = 전년도 데이터,
  • COL E = 전년도 순위.

IF 수식을 사용하는 것은 상당히 편안하지만 셀의 마지막 숫자를 참조하여 IF "1이면 'st'입니다", IF "2이면 'nd'입니다"라고 말하는 방법을 잘 모르겠습니다. "3이면 'rd'"이고 그렇지 않으면 'th'입니다.

순위는 여러 자리 숫자일 수 있습니다. 문자는 마지막 숫자를 기준으로 합니다. 따라서 31위는 31위입니다. 십대에 대한 예외도 있습니다. 랭크 11, 12, 13에서는 "th"를 사용합니다.

이 작업을 수식으로 수행할 수 있습니까, 아니면 VBA로 수행해야 합니까?

답변1

다음은 "순위"가 셀 B50에 있다고 가정합니다.

=IF(B50=1,"st",IF(B50=2,"nd",IF(B50=3,"rd","th")))

위의 내용은 "st", "nd" 등과 같은 결과를 제공합니다.

번호도 표시하고 싶을 것 같지만

=IF(B50=1,B50 & "st",IF(B50=2,B50 & "nd",IF(B50=3,B50 & "rd",B50 & "th")))

그러면 "1st", "2nd" 등과 같은 결과가 표시됩니다.

ejbytes 댓글 덕분에 10보다 큰 테스트를 하지 않았습니다! 다음 스니펫은 22번째 또는 43번째 등을 가질 수 있도록 합니다.

=IF(RIGHT(B50,1) = "1", B50&"st",IF(RIGHT(B50,1)="2",B50&"nd",IF(RIGHT(B50,1)="3",B50&"rd",B50&"th")))

이제 우리는 11, 12, 13과 111, 112, 113 등의 문제를 다루므로 이를 처리해야 합니다!

=IF(RIGHT(B50,2)="11",B50 & "th",IF(RIGHT(B50,2)="12",B50&"th",IF(RIGHT(B50,2)="13",B50&"th",IF(RIGHT(B50,1)="1",B50&"st",IF(RIGHT(B50,1)="2",B50&"nd",IF(RIGHT(B50,1)="3",B50&"rd",B50&"th"))))))

마지막으로 0... 10번째, 50번째, 100번째가 남지만 0도 있습니다!

=IF(B50=0,0,IF(RIGHT(B50,2)="11",B50&"th",IF(RIGHT(B50,2)="12",B50&"th",IF(RIGHT(B50,2)="13",B50&"th",IF(RIGHT(B50,1)="1",B50&"st",IF(RIGHT(B50,1)="2",B50&"nd",IF(RIGHT(B50,1)="3",B50&"rd",B50&"th")))))))

답변2

@Dave IF 공식을 사용하여 작업하면서 데이터 시트를 일부 수정해야 했습니다.

가장 왼쪽 숫자를 인식한다는 것은 또 다른 '도우미' 열을 추가해야 함을 의미했습니다.

  • A 열은 원래 순위 번호입니다.
  • 열 B는 새로운 도우미 열입니다. =VALUE(RIGHT(A1,1)) 이것은 나에게 마지막 숫자를 제공합니다.
  • C 열에는 수식이 있습니다.

    =IF(A1=12,A1&"th",IF(A1=13,A1&"th",IF(B1=1,A1&"st",IF(B1=2,A1&"nd",IF(B1=3,A1&"rd",A1&"th")))))
    

영어 때문에 12와 13을 구체적으로 처리해야 했습니다…

효과는 있지만 눈에 상처를 줄 수 있습니다. 감사해요

관련 정보