Excel에서 두 문자 사이의 텍스트 추출

Excel에서 두 문자 사이의 텍스트 추출

다음 템플릿을 사용하는 xls 열이 있습니다.

Model : QE85Q80T,Diagonala cm / inch : 216 cm / 85 inch,Smart TV : Da,Format : Ultra HD 4K,Tip ecran : QLED,Rezolutie (pixeli) : 3840 x 2160,Tuner Digital : Da (DVB-T2 / C / S2) x 2,Difuzor integrat : 60 W,Wireless : Da,Ethernet : Da,Iesire audio digitala (optica) : x 1,CI (Slot) : PLUS,USB 2.0 : x 2,HDMI : x 4,Culoare : Negru,Putere consumata (W) : 257,Dimensiuni cu stand (mm) : 1892.8 x 1163.1 x 338.8,Greutate (Kg) : 50.1

변수에 유의하십시오: "대각선 cm / 인치"; "스마트 티비"; "포맷" 등등...

그들 모두는 다른 값을 가질 수 있습니다.

내가 성취하려고 하는 것은 다른 셀에서 "대각선 cm/인치:" 그리고 먼저 "," - 이 경우 값은 "216cm / 85인치".

" 사이의 값을 가진 다른 셀에서도 마찬가지입니다.스마트 티비 :" 그리고 먼저 "," - 값은 "" 등등 나머지는...

Google에서 여러 번 검색한 후 다음 공식을 생각해냈습니다.

=MID(F2,검색("대각선 cm/인치:",F2)+3,검색(",",F2)-검색("대각선 cm/인치:",F2)-4)

문제는 나에게 아무것도 돌려주지 않는다는 것입니다.

내가 뭘 잘못하고 있는 거지?

답변1

어떻습니까:

=LEFT(MID(A1,FIND("Diagonala cm / inch : ",A1)+LEN("Diagonala cm / inch : "),999),-1+FIND(",",MID(A1,FIND("Diagonala cm / inch : ",A1)+LEN("Diagonala cm / inch : "),999)))

여기에 이미지 설명을 입력하세요

답변2

글쎄, 이것은 추악하고 작동하지만 이것이 귀하의 요구에 어떻게 적응할지는 확실하지 않습니다. 참고자료가 있으면 될 것 같아요. 어쨌든 공식은 다음과 같습니다.

    =MID(B2,(SEARCH("Diagonala cm / inch :",B2)+LEN("Diagonala cm / inch :")),(SEARCH(",",B2,SEARCH("Diagonala cm / inch :",B2))-(SEARCH("Diagonala cm / inch :",B2)+LEN("Diagonala cm / inch :"))))

그리고 내가 생각해낸 방법은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

기본적으로 수식은 다음과 동일한 결과를 반환합니다.

    =mid(b2,39,17)

답변3

무엇을 사용할 것인지에 대해 아마도 다음 접근 방식을 원할 것입니다.

=LET(SearchCell,A1,  StartingString,"Diagonala cm / inch : ",  EndingString,",",    MID(SearchCell,  FIND(StartingString,SearchCell)  +  LEN(StartingString),  FIND(EndingString,SearchCell,1+FIND(StartingString,SearchCell))  -  (FIND(StartingString,SearchCell)+LEN(StartingString))  )  )

(나는 문자열의 길이를 하드코딩하는 것을 피하기 위해 Isolated의 사용을 좋아합니다 LEN(). 물론 누구나 알 것이므로 문제가 되지 않을 것입니다. 그러나 말하자면 거기에서 멈추고 더 일반적인 솔루션으로 쉽게 확장할 수 없습니다. 기본 공식을 작성하고 한동안 사용한 후에 달성하고 싶을 수 있는 경우 업그레이드하는 것이 도움이 될 것입니다!)

접근 방식은 원하는 결과의 시작점, 끝점 및 입력 문자열에 필요한 문자 수를 찾는 것입니다. 따라서 FIND()위치 문자열의 길이가 추가됩니다. 또한 FIND()시작점에 1을 추가해야 하는 해당 지점 뒤에 ","를 배치하여 FIND()시작하고 이전 쉼표로 혼동하지 않도록 합니다.

그것은 간단하고 사람들이 "추악하다"고 부르는 것입니다... 아 뭐... 업그레이드를 위해서는 이 LET()기능을 사용하세요. 꽤 흥미로울 수도 있지만 수식에 대한 입력 변경(찾을 셀, 시작 문자열, 끝 문자열)에만 사용하는 것이 좋습니다. 이렇게 하면 수식에서 사용하는 6개 정도의 위치가 아닌 한 위치에서만 발생하므로 조사된 셀을 변경하는 것이 쉽습니다. 또한 6개가 아닌 1개의 계산이기 때문에 속도도 빨라야 합니다. 두 개의 경계 문자열은 처음에도 바로 있기 때문에 쉽게 편집할 수 있으므로 공식은 요청된 두 번째 검색 및 기타 검색에 쉽게 적용할 수 있습니다. 경계에 대한 문자열을 포함하기 위해 입력 셀을 사용하는 것도 매우 쉽습니다.

여기서 더 많이 사용하면 LET()공식의 작업을 이해하는 데 방해가 될 것이라고 생각합니다. 하지만 다른 두뇌는 다르게 작동하고 해당 구성 요소를 Let()셀 범위 명명된 범위의 형태로 넣는 것을 좋아할 수도 있습니다(Excel 참조에서는 프로그래머가 이를 변수라고 부릅니다). 작동 공식은 최소한의 것입니다. 만약 그것이 공식의 전체 크기를 줄인다면 아마도 그렇게 하는 것을 제안할 것입니다. 하지만 이 경우에는 그렇지 않을 것입니다. 그래서... 하지만 실제로, 그것은 다른 사람에게는 반대의 의미가 될 것입니다. 그래서 그들에게는 왜 아니다?

나는 문제를 읽는 사람이라면 누구나 실제로 논의된 내용을 달성하는 방법인 위의 내용을 원할 것이라고 가정합니다. 하지만 실제로 실제로 궁금한 것은 Google을 통해 찾은 주어진 공식이 왜 실패했는지입니다.

기본적으로 올바른 시작을 찾지 않거나 사용할 문자열의 올바른 길이를 계산하지 않기 때문입니다. 예를 들어 첫 번째는 SEEARCH()경계 문자열의 시작을 찾아 여기에 3...을 추가합니다. 정당한 이유 없이 공식의 논리를 고려하면 이 답변에서 사용되는 것과 본질적으로 동일합니다. MID()전체 경계 문자열 이후에 문자열 작성을 시작해야 합니다 . 해당 문자열은 3자가 아닌 22자이므로... 그러면 MID()반환할 문자열의 길이인 의 세 번째 매개변수가 잘못 출력됩니다. 경계 문자열 앞의 쉼표를 찾아 거기에서 실제로 음수 길이를 제공하므로 오류가 발생합니다. 다른 입력 데이터는 실제 반환을 제공할 수 있지만 완전히 잘못된 입력 선택을 사용하고 있기 때문에 실제로는 올바른 반환을 제공하지 않습니다. 따라서 이러한 문제를 수정하면 작동하는 공식이 있어야 합니다. 좋은 접근 방식이지만 그다지 좋은 구현은 아닙니다. 그러나 좋은 접근 방식을 찾는 것은 거의 항상 더 어려운 일입니다! 해당 기능에 대한 매개 변수로 생성된 숫자로 이어지는 세부 정보를 어떻게 선택했는지 다시 생각해 보면 됩니다 MID().

관련 정보