Microsoft Excel 수식에서 영숫자 문자열의 숫자 값 합계를 얻는 방법은 무엇입니까?

Microsoft Excel 수식에서 영숫자 문자열의 숫자 값 합계를 얻는 방법은 무엇입니까?

다음과 같은 셀에 데이터가 있습니다.

좋은 반응 -6,RNR -2,음성 없음 -1

셀에 있는 숫자의 합만 구해야 합니다. 단일 수식으로 어떻게 할 수 있나요?

답변1

나는 엑셀을 사용한다RegEx 찾기/바꾸기 추가 기능, Excel에 정규식 기능을 추가합니다.
(저는 해당 추가 기능과 아무런 관련이 없으며 단지 열성적인 사용자일 뿐입니다)

여기에서 다음과 같은 수식을 사용하여 모든 숫자를 찾고 합할 수 있습니다.
=SUM(RegExFind(A1,"\d+"))

또는 음수 값도 고려하려면 다음을 수행하십시오.
=SUM(RegExFind(A1,"[-\d]+"))

여기에 이미지 설명을 입력하세요

답변2

제공된 정보를 기반으로 추출할 값이 3개이고 길이가 각각 1자리라고 가정하면 아래 문자열에 대해 작동합니다.A2:

=LEFT(SUMPRODUCT(MID(0&A2,LARGE(INDEX(ISNUMBER(--MID(A2,ROW($1:$25),1))* ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10),1)+RIGHT(SUMPRODUCT(MID(0&A2,LARGE(INDEX(ISNUMBER(--MID(A2,ROW($1:$25),1))* ROW($1:$25),0),ROW($1:$25))+1,1)*10^ROW($1:$25)/10),1)+RIGHT(A2,1)

물론 여기에는 몇 가지 가정이 있습니다.

이것이 작동하지 않으면 귀하의 데이터가 어떻게 구성되어 있는지 등에 대해 더 자세히 설명해 주시면 수정하도록 노력하겠습니다.

답변3

데이터가 실제로 표시된 것과 같고 숫자 앞에 a 가 있고 <space>그 뒤에 a <comma>또는 문자열 끝이 있는 경우 다음을 사용할 수 있습니다.

공식을 정의하고 이름을 지정 seq_99하세요.

seq_99 refers to:  =IF(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))=1,1,(ROW(INDEX($1:$65535,1,1):INDEX($1:$65535,255,1))-1)*99)

그러면 이것을 사용할 수 있습니다배열 입력공식:

=SUM(IF(ISNUMBER(--TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE(A1,","," "))," ",REPT(" ",99)),seq_99,99))),--TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE(A1,","," "))," ",REPT(" ",99)),seq_99,99))))

에게배열 입력수식을 입력 하려면 ctrl+를 shift누른 상태에서 을 누르세요 enter. 이 작업을 올바르게 수행하면 Excel은 {...}수식 입력줄에서 볼 수 있는 수식 주위에 중괄호를 배치합니다.

나는 -표시된 숫자가 음수라고 가정했습니다. 그렇지 않은 경우 이를 제외하기 위해 공식을 변경하는 것은 쉽지 않습니다.

답변4

작은 VBA 기능을 제안하고 싶습니다. 구분 기호는 아래와 같이 조정될 수 있습니다.

Function SumNumbers(rngS As Range, Optional strDelim As String = "-") As Double

    Dim xNums As Variant, lngNum As Long
    xNums = Split(rngS, strDelim)

    For lngNum = LBound(xNums) To UBound(xNums) Step 1
        SumNumbers = SumNumbers + Val(xNums(lngNum))
    Next lngNum

End Function

여기에 이미지 설명을 입력하세요

노트:

  • 이 기능을 일반적인 방법으로 사용하세요:=SumNumbers(셀 주소).
  • 구분 기호가 SPACE인 경우 다음을 사용합니다.strDelim As String = " "인수 목록에 있습니다.
  • 구분 기호가 COMMA인 경우 다음을 사용합니다.strDelim As String = ","인수 목록에 있습니다.

이것이 당신에게 도움이 되기를 바랍니다.

관련 정보