문자를 숫자로 바꾸기 (Microsoft Excel)
Bill은 모든 문자를 알파벳 문자의 위치를 나타내는 숫자로 대체해야하는 텍스트 열을 가지고 있습니다. 따라서 예를 들어 셀에 “T10A22″가 포함 된 경우 Bill은 “2010122”와 같은 문자를 바꿔야합니다. 여기서 T는 20으로, A는 1로 대체됩니다. 주어진 세포.
이 작업을 한 번만 수행해야하는 경우 (단일 워크 시트에서) 열을 선택하고 찾기 및 바꾸기 만 사용하면됩니다. A를 검색하고 1로 바꾸고, B를 검색하고 2로 바꾸는 등의 작업을 수행 할 수 있습니다. 수행해야 할 반복 횟수는 26 번에 불과하며 번거롭게 들릴 수 있지만 매크로를 만드는 데 걸리는 시간보다 짧은 시간에 수행 할 수 있습니다.
즉,이 작업을 정기적으로 수행해야하는 경우 매크로가 최상의 솔루션입니다. 다음과 같은 방식으로 매크로를 사용하여 찾기 및 바꾸기 접근 방식을 구현할 수 있습니다.
Sub ReplaceLetters1() Selection.Replace What:="A", Replacement:="1", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 Selection.Replace What:="B", Replacement:="2" Selection.Replace What:="C", Replacement:="3" Selection.Replace What:="D", Replacement:="4" Selection.Replace What:="E", Replacement:="5" Selection.Replace What:="F", Replacement:="6" Selection.Replace What:="G", Replacement:="7" Selection.Replace What:="H", Replacement:="8" Selection.Replace What:="I", Replacement:="9" Selection.Replace What:="J", Replacement:="10" Selection.Replace What:="K", Replacement:="11" Selection.Replace What:="L", Replacement:="12" Selection.Replace What:="M", Replacement:="13" Selection.Replace What:="N", Replacement:="14" Selection.Replace What:="O", Replacement:="15" Selection.Replace What:="P", Replacement:="16" Selection.Replace What:="Q", Replacement:="17" Selection.Replace What:="R", Replacement:="18" Selection.Replace What:="S", Replacement:="19" Selection.Replace What:="T", Replacement:="20" Selection.Replace What:="U", Replacement:="21" Selection.Replace What:="V", Replacement:="22" Selection.Replace What:="W", Replacement:="23" Selection.Replace What:="X", Replacement:="24" Selection.Replace What:="Y", Replacement:="25" Selection.Replace What:="Z", Replacement:="26" End Sub
매크로를 사용하려면 처리 할 셀을 선택한 다음 실행하면됩니다. 다음과 같이 For … Next 루프에 의존하는 다른 접근 방식을 사용할 수도 있습니다.
Sub ReplaceLetters2() Dim J As Integer Selection.Replace What:="A", Replacement:="1", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2 For J = 66 To 90 Selection.Replace What:=Chr(J), Replacement:=J - 64 Next J End Sub
첫 번째 .Replace 작업은 For … Next 루프 내부에 배치 할 수 있지만, (적어도 나에게는) 루프가 더 단순 해 보이도록 별도로 유지하기로 선택했습니다. 이것은 무엇보다 문체적인 선택입니다.
어떤 이유로 .Replace 메서드를 사용하지 않으려면 평가하는 모든 문자에서 각 캐릭터를 보는 구식 접근 방식을 사용할 수 있습니다. 다음은이 사용자 정의 함수에서 사용되는 접근 방식입니다.
Function LetterToNum(c As Range) As String Dim sRaw As String Dim J As Integer sRaw = UCase(c) For J = 1 To 26 sRaw = Replace(sRaw, Chr(J + 64), J) Next J LetterToNum = sRaw End Function
이 함수를 사용하려면 워크 시트에 다음을 입력하십시오. 여기서 A1은 변환하려는 셀입니다.
=LetterToNum(A1)
매크로를 사용하지 않으려면 다소 긴 수식을 사용하여 셀 변환을 수행 할 수 있습니다.
=TEXTJOIN("",FALSE, IF(ISNUMBER(VALUE(MID(A1,SEQUENCE(1,LEN(A1)),1))), MID(A1,SEQUENCE(1,LEN(A1)),1), COLUMN(INDIRECT(MID(A1,SEQUENCE(1,LEN(A1)),1) & ":" & MID(A1,SEQUENCE(1,LEN(A1)),1)))))
이 수식은 변환하려는 텍스트가 A1 셀에 있다고 가정합니다. 기본적으로 텍스트 문자열의 각 문자를보고 숫자인지 여부를 결정합니다. 그렇다면 원래 문자를 사용합니다. 그렇지 않은 경우 INDIRECT 함수를 사용하여 문자를 기반으로 열을 결정한 다음 COLUMN을 사용하여 해당 열에 대한 숫자 값을 반환합니다. 이 모든 것은 TEXTJOIN 함수를 사용하여 재결합됩니다.
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (7820)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.