셀의 복소 합산 값

셀의 복소 합산 값

+10+5+1+40this 를 텍스트로 반환하는 수식 결과가 있다고 가정해 보겠습니다 . 그런 다음 해당 숫자를 합산하여 총계를 얻고 싶습니다.

결과는 +2+5or 와 같이 임의의 수의 값이 될 수 있습니다 +10+5+7+1+8.

도움이 될 경우 원본 데이터 세트는 this S10_S5_S1_S40또는 this 과 같습니다 E_E_S2_S5. 추가하고 싶은 S 옆의 숫자를 제외한 모든 항목을 제거했습니다.

마지막으로 가능하면 VBA를 피하고 싶어서 슈퍼유저에 게시하고 있습니다.

업데이트

이 공식을 통해: =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(D25,"E",""),"_",""),"S","=",1),"S","+")

=10+5+1+40나는 그것을 D25 = ...로 여기까지 이르렀습니다. 그러나 그것은 실제로 앞에 가 S10_S5_S1_S40있는 것과 같습니다 .+

답변1

예제에 따라 1자리 또는 2자리 숫자만 있다고 가정하면 이 "배열 수식"은 D25의 모든 "S" 숫자를 합산합니다.

=SUM(IF(MID(D25,ROW(INDIRECT("1:"&LEN(D25))),1)="S",(0&SUBSTITUTE(MID(D25,ROW(INDIRECT("1:"&LEN(D25)))+1,2),"_",""))+0))

으로 확인됨CTRL+SHIFT+ENTER

따라서 D25에 포함되어 있으면 S10_S5_S1_S40결과는 56이 됩니다.

답변2

이를 수행하는 워크시트 수식은 없습니다. 이전 Excel 4 매크로 함수 EVALUATE()를 사용할 수 있지만 명명된 범위에서만 사용할 수 있습니다.

따라서 D열에 데이터가 있고 E열에 대체 수식이 있는 경우 F25를 선택하고 이름 관리자를 사용하여 새 명명된 수식을 만듭니다. 이름을 "EvaluateMe"로 지정하고 참조하도록 하세요.

=EVALUATE(Sheet1!E25)

그런 다음 입력하십시오.

=EvaluateMe 

F25 셀에 넣으면 결과가 표시됩니다. 이 명명된 범위는 상대 참조를 사용하며, 정의할 때 활성 셀이 F25에 있었다면 항상 왼쪽에 있는 셀을 직접 평가하려고 시도합니다.

답변3

이는 Barry의 “멋진” 답변에서 비롯되었습니다. 다음의 "배열 수식"

=SUM(IF(MID(D25,ROW(INDIRECT("1:"&LEN(D25))),1)="S",MID(D25,ROW(INDIRECT("1:"&LEN(D25)))+1,IFERROR(FIND("_",D25,ROW(INDIRECT("1:"&LEN(D25)))+1),LEN(D25)+1)-(ROW(INDIRECT("1:"&LEN(D25)))+1))+0))

Ctrl( + Shift+ 로 입력 )은 길이에 관계없이 Enter셀의 모든 'S' 숫자를 추가합니다 . D25따라서 D25"S10_S5_S1_S240"이 포함된 경우 위 수식은 결과 256을 제공합니다. 이는 음수도 처리합니다. "S10_S5_S–1_S240"은 254를 생성합니다.

나는 이것을 철저하게 테스트하지 않았습니다. 아마 월요일 아침에 나 자신도 뭔가 잘못된 점을 발견할 것입니다. :)

관련 정보