Excel 2010에서 N번째와 N+1번째 문자 사이에서 문자열을 추출하는 방법은 무엇입니까?

Excel 2010에서 N번째와 N+1번째 문자 사이에서 문자열을 추출하는 방법은 무엇입니까?

하나 이상의 데이터베이스 이름 목록이 포함된 열이 있는 스프레드시트가 있습니다. 안타깝게도 이 보고서를 수정하는 데 소요되는 시간이 깁니다. 그래서 데이터를 조작해야 합니다.

열에는 단일 셀의 레코드와 관련된 모든 데이터베이스가 쉼표로 구분되어 포함됩니다. 이 목록을 분리하고 각 데이터베이스를 별도의 셀에 배치해야 합니다. 중요사항: 나는~ 아니다이 솔루션에서는 VBA 매크로/코드를 사용할 수 있습니다.

첫 번째는 쉽습니다. 첫 번째 쉼표를 찾고 그 왼쪽에 모든 것을 반환합니다. 내가 어려움을 겪고 있는 것은 다음 것들이다.

여러 데이터베이스가 나열되어 있는지 확인할 수 있도록 셀에 쉼표가 몇 개 있는지 계산하는 열을 만들었습니다.

다음 문제를 어떻게 처리할 수 있나요?

답변1

이것은 워크시트 함수 답변이 아니지만 VBA도 사용하지 않습니다.

'텍스트를 열로' 기능을 사용해 보셨나요? Excel 2010에서는 데이터 리본에 있는 단추 중 하나입니다.

  1. 열을 선택하세요.
  2. "텍스트를 열로" 버튼을 클릭하세요.
  3. 마법사의 첫 번째 페이지에서 "구분됨"을 선택한 후 다음을 선택합니다.
  4. 두 번째 페이지에서 "쉼표"를 선택하여 구분 기호로 선택합니다. 데이터 형식에 따라 다른 항목 중 일부를 선택/선택 해제할 수 있습니다.
  5. 이 시점에서 마침을 클릭하여 데이터를 열로 분할할 수 있지만 다음 페이지로 이동하여 열 형식을 변경할 수도 있습니다.

답변2

샘플 데이터 포함A1, 안에지하 1층입력하다:

=TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

복사:

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

편집#1:

열의 자료로 시작하면그리고이와 같이:

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

다음 짧은 매크로를 실행하세요.

Sub dural()
   Dim N As Long, i As Long, K As Long
   N = Cells(Rows.Count, "A").End(xlUp).Row
   K = 1

   For i = 2 To N
      v = Cells(i, "A").Value
      ary = Split(Cells(i, "B").Value, ",")
      For Each a In ary
         Cells(K, "C").Value = v
         Cells(K, "D").Value = a
         K = K + 1
      Next a
   Next i
End Sub

우리는 이것으로 끝날 것입니다 :

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

관련 정보