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에 적용됩니다.