
다음과 같은 셀에 데이터가 있습니다.
좋은 반응 -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 = ","인수 목록에 있습니다.
이것이 당신에게 도움이 되기를 바랍니다.