안녕하세요 Microsoft Excel 수식의 영숫자 문자열에서 숫자 값의 합계를 얻는 방법?


0

셀에 데이터가 있습니다.

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

셀의 숫자 만 합쳐야합니다. 단일 수식으로 어떻게 할 수 있습니까?


숫자 앞에 항상 '-'가 있습니까? 거기에 오직 3 개의 숫자가 있습니까?
PeterH

답변:


1

Excel을 사용합니다. RegEx 찾기 / 바꾸기 추가 기능 , Excel에 정규 표현식 기능을 추가합니다.
(나는 그 어떤 방식 으로든 그 추가 기능과 관련이 없으며 열광적 인 사용자이다)

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

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

enter image description here


0

제공된 정보를 바탕으로 & amp; 추출 할 값이 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)

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

이것이 작동하지 않는다면 당신의 데이터가 구조화 된 방법에 대해 더 자세히 설명해 주어야하며 수정하려고 노력할 것입니다.


0

귀하의 데이터가 진실로 당신이 그것을 보여줄 때, 번호 앞에 <space>, 그 다음에 <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 + 시프트 타격을가하면서 들어가다 . 이 작업을 올바르게 수행하면 Excel에서 중괄호 {...} 수식 입력 줄에서 볼 수있는 수식 주위.

나는 - 음수로 표시됩니다. 그것은 사실이 아니며 공식을 배제하여 그것을 제외시키는 것은 사소한 일입니다.


0

작은 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

enter image description here

노트:

  • 이 함수를 일반적인 방법으로 사용하십시오. = SumNumbers (셀 주소) .
  • 구분 기호가 SPACE이면 사용하십시오. strDelim As String = "" 인수 목록에.
  • 구분 기호가 COMMA 인 경우에는 다음을 사용하십시오. strDelim As String = "," 인수 목록에.

나는 이것이 당신을 돕기를 바랍니다.


문자열에 9보다 큰 숫자가 포함되어 있으면 어떻게 될까요? (예 : '우수 응답 -16, RNR -2, 음성 없음 -1')
Máté Juhász

이 기능은 문자열이 우수 응답 -16, RNR -2, 음성 없음 -1 또는 양호 응답 -50, RNR-89, 음성 없음 -100 인 경우에도 모든 숫자를 합산합니다.
Rajesh S

1
@ MátéJuhász, 그냥 지금 확인해주세요. 스크린 샷에 답변을 포함 시켰습니다.
Rajesh S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.