답변:
이와 같은 것을 구현하는 한 가지 방법은
=VALUE(INDEX(FILTER(SPLIT(A1, " "), ISNUMBER(SPLIT(A1, " "))); 1; 1))
일부 예제 문자열에 대한이 수식의 결과는 다음과 같습니다.
개인의 필요에 맞게이를 수정해야 할 수도 있습니다. "3 컵"처럼 간단한 현악기에도 잘 작동합니다.
SPLIT(..., " ")
문자열을 공백으로 구분 된 부분으로 나눕니다. 예를 들어 문자열에 문자를 더 추가하면 " -/"
해당 문자를 찾을 때마다 분할 할 수 있습니다.
ISNUMBER
문자열이 숫자인지 확인합니다.
FILTER
배열을 가져 와서 두 번째 함수를 만족시키지 않는 모든 것을 걸러냅니다. 즉, 숫자가 아닌 모든 것을 꺼냅니다.
INDEX(...; 1; 1)
배열의 첫 번째 열, 첫 번째 열의 값을 반환하므로 나열된 모든 숫자가 아닌 첫 번째 숫자 만 가져옵니다.
VALUE
아마 필요하지는 않지만, 좋은 측정을 위해 최종 문자열을 숫자 값으로 변환합니다.
VALUE
...
VALUE
답변에 입력 한 모든 예제 입력에서 오류 ( "숫자로 해석 할 수 없음")가 발생합니다.
VALUE
OP의 첫 번째 질문과 제목에 대한 답변입니다.
parseInt()
대안은 다음과 같습니다
=INT()
=SUM(ARRAYFORMULA(INT(LEFT(B1:B2, LEN(B1:B2)-5))))
은 LEN(B1:B2)-5
공백을 포함합니다.
정규식에 잘 사용되는 것 같습니다. 예를 들면 다음과 같습니다.
여기서 E2의 공식은 다음과 같습니다.
="="&join("+",ArrayFormula(regexreplace(B2:D2,"\D","")))
이것은 숫자가 아닌 모든 숫자를 제거하고 결과를 +
앞에 붙 =
입니다.
복사 / 다음 바꾸기를 말하자면,로, F2는 (E2 수) 것만 값을 붙여 넣기 / 붙여 넣기 =
로 =
.