2009-05-05 2 views
0

I는 엑셀 시트가 는 요구 '열'C '의 셀의 모든 숫자의 총합을 얻을 열에 대응하는 셀의 값을 넣어 여기 alt text http://i43.tinypic.com/wsnxci.jpg단락의 모든 자릿수를 합하는 방법 (셀의 텍스트)?

이다 (아래 그림 참조) B '(나의 예에서는 - 1 + 0.25 + 0.25 + 1 = 2.5). 열 'C'의 값은 팀이 제공 한 입력 값을 기반으로 동적으로 변경 될 수 있습니다. 요구 사항은 'B'의 값을 'C'열의 셀이 변경되는 즉시 자동으로 업데이트되도록하는 것입니다.

작성자에게 스프레드 시트의 형식 (두 개의 다른 열에서 텍스트 및 숫자)을 변경하도록 요청했지만 표준 템플릿으로 인해이 방법을 사용할 수 없습니다.

도움이 될 것입니다.

감사 - 인 Ashish

답변

4

이 매크로를 사용하여, 셀 내의 텍스트를 변경하지 않고 달성 될 수있다. 몇 가지 작업을 수행해야하기 때문에 구현이 약간 지연 될 것임을 인정해야합니다.

1 - 전체 셀 내용을 토큰 화하고 토큰을 문자열 배열에 저장합니다.

이미 문제가 있습니다. 셀 안의 텍스트는 매우 일관성이 없습니다. -250ms, - 250ms, - 1sec, - 1sec입니다. 이 때문에 각 인스턴스를 확인해야합니다. 따라서 값이 숫자인지 만 확인할 수는 없으므로 팀 구성원이 편리하게 제공 한 순열을 모두 확인해야합니다.

정규 표현식을 확인하는 것이 가장 좋은 방법입니다. 따라서 # 2는 다음과 같아야합니다.

2 - 각 값을 확인하여 4 개의 정규 표현식 중 하나와 일치하는지 확인합니다.

3 - 일치하는 정규식에 따라 숫자 값을 추출하십시오.

a) 단순히 값 (예 :> 250)이면 ms 또는 sec가 값을 처리하는지 확인하십시오. IF ms 인 경우 숫자를 1000으로 나눕니다. 초이면 숫자를있는 그대로 둡니다. 총계에 숫자를 더하십시오.
b) 대시 (-) 앞에 숫자가있는 경우 대시를 제거하고 a)
c) 숫자 뒤에 문자가 있으면 문자를 제거하고 a 단계를 반복합니다. a)
d) 숫자 뒤에 마침표, 아무것도하지 마라. 이것은 중요한 부분입니다.

+0

감사합니다. Jon 나는 마침내 일관된 방식으로 값을 입력하도록 설득했습니다. 이제 값은 '-xx ms'또는 '-xx sec'(내 인생을 좀 더 쉽게 만들어주었습니다)로 바뀝니다. 답변에 제안 된대로 나머지 논리를 구현했습니다. 훌륭한 작품 ... 감사합니다. – Vini

+0

기꺼이 도와 드리겠습니다! – jgallant

관련 문제