>source

Google 스프레드 시트에서 작업 중이며 하나의 regexport () 함수를 사용하여 정수와 부분 숫자를 모두 내보낼 수 있는지 궁금합니다.
다음과 같은 열이 있습니다.

1 Ml/ 2 Ml
2 Ml/ 2.02 Ml
3 Ml/ 4.01 Ml

다음과 같은 열을 원합니다.

2
2.02
4.01

첫 번째 값도 2.00이 될 수 있습니다.

이것이 정규 표현식으로 구체적으로 가능한지 궁금합니다. 나는 그것을하는 방법을 알고있다. 나는 현재 regexport(cell#, "\/\D(\d+)\D")

감사!


  • 답변 # 1

    패턴으로 필요한 것은 다음과 같습니다.

    (\d+(?:\.\d+)?) Ml$
    
    
    <시간 />

    ( -1st apture 그룹.

    \d+ -하나 이상의 숫자.

    (?: -비 캡처 그룹을 엽니 다.

    \.\d+ -하나 이상의 숫자가 뒤 따르는 리터럴 도트.

    )? -비 캡처 그룹을 닫고 선택 사항으로 만듭니다.

    ) -첫 번째 캡처 그룹을 닫습니다.

    Ml$ - "Ml"을 말 그대로 끝 문자열 ancor ($)까지 일치시킵니다.

    <시간 />

    이것을 추가하십시오 ARRAYFORMULA() 처럼:

    =ARRAYFORMULA(REGEXEXTRACT(A1:A3,"(\d+(?:\.\d+)?) Ml$"))
    
    

  • 답변 # 2

    정규식없이

    우리는 다음에 의해 캡슐화 된 값을 얻고 싶습니다.슬래시 공백왼쪽에우주오른쪽으로:

    =TRIM(MID(A1,FIND("/ ",A1)+2,FIND(" ",A1,FIND("/ ",A1)+2)-(FIND("/ ",A1)+2)))
    
    

    (Excel과 Google Sheets 모두 동일한 방식으로 작동해야합니다. 여러 인스턴스를 가져와야하는 경우정규식.)

  • 답변 # 3

    사용하다:

    =ARRAYFORMULA(IFNA(REGEXEXTRACT(A1:A2, " (\d+\.\d+) Ml"), 
                       REGEXEXTRACT(A1:A2, " (\d+) Ml")))
    
    

  • 답변 # 4

    오류를 처리하고 동시에 결과를 숫자로 반환하는 더 간단한 방법을 시도 할 수도 있습니다.

    =ArrayFormula(IFERROR( 
            REGEXEXTRACT(A1:A,"/ (.*) ")*1))
    
    

  • 이전 python - 원본 소스 코드에 사용자 지정 NumPy 함수를 추가하는 방법은 무엇입니까?
  • 다음 go - golang bigquery docs에서 done 연산자를 지정했지만 컴파일 오류가 발생합니다