2014-02-21 3 views
0

끊어진 링크 검색 결과를 Excel로 가져 왔으므로 이제 오류 코드를 기준으로 결과를 정렬해야합니다. 오류 코드가 URL 아래의 행에 있고 옆에있는 열이 아니기 때문에이 작업을 수행하는 방법에 대해 머리를 터지기를 할 수 없습니다. 또한 일부 URL은 둘 이상의 행을 차지합니다.여러 행 그룹으로 목록 정렬

results in excel

가 어떻게 함께 오류 404 모든 결과를 그룹화에 대해 갈 것 : 여기

스프레드 시트의 일부의 스크린 샷이다?

+0

이 프로를 해결하는 쉬운 방법 blem은 데이터를 두 개의 열 (링크 및 오류 코드)로 구분하는 VBA 코드를 작성하는 것입니다. 그런 다음 Excel 정렬을 사용하여 오류 코드를 기반으로 데이터를 정렬 할 수 있습니다. – cantoni

+0

아, 좋아. 좋아. 어떻게하는지 아십니까? – dlofrodloh

+0

확인. 나는 당신을 위해 코드를 작성하고 답으로 게시 할 것입니다. 잠시만 기다려주세요. – cantoni

답변

1

A의 왼쪽에 열을 삽입하고 일련의 숫자 (1, 2, 3, ...)로 채 웁니다. 이제 B 열별로 정렬하십시오. 모든 오류 코드 항목을 선택하고 c 열 (또는 다른 빈 열)으로 끕니다. A 열에있는 일련의 숫자로 시트를 처리하십시오. 이제 모든 것이 정렬되고 오류 코드는 별도의 열 (C)입니다. C1을 마우스 오른쪽 단추로 클릭하고 셀 이동을 선택할 수 있습니다. 열 A는 삭제할 수 있으며 URL을 기준으로 정렬 할 수 있습니다 (텍스트를 약간 정리하는 것처럼 보이지만).

1

URL과 동일한 행에 오류 코드가 표시되지 않으면이 작업이 어려울 수 있습니다. 그러나 오류 코드에서 SEARCH 기능을 사용하여 여전히 수행 할 수 있습니다. 그러면 404 오류가 발견되지만 URL 아래에있는 셀에는 URL이 제공되지 않습니다. 따라서 셀 아래에있는 셀이 404 코드를 발견했는지 확인하는 함수가 필요합니다. 그런 다음 "실제"값을 필터링하고 두 개의 행을 가져올 수 있습니다.

A에 새 열을 만들고 아래 함수를 사용하십시오.

=IF(ISNUMBER(SEARCH("404",B1)),1,IF(A2=1,2,0)) 

1 및 2 값으로 필터링하십시오. http://office.microsoft.com/en-us/excel-help/check-if-a-cell-contains-text-HP003056106.aspx 및 기능에 따라

솔루션 : 일부 제약

=IF(ISNUMBER(SEARCH("v",A2)),"OK", "Not OK") 
1

주제 (!하지만 그들이 당신의 Q에없는) 삽입 COLUMNA에서이 공식은 역할을 할 수있다 :

=INDEX(C1:C3,MATCH("*error code:*",C1:C3,0)) 

함께 삽입 된 ColumnB에 =ROW() (다른 곳에서도 가능할 수 있음)으로 표시되며 동시에 둘 다 복사됩니다.

수식은 값으로 변환해야하며 (ColumnsA : B, 붙여 넣기 ..., 값 위에), 정렬은 ColumnA와 ColumnB를 기준으로해야합니다. ColumnC에서 비어있는 행은 해당 열의 오류 코드와 함께 삭제 될 수 있습니다.

2

아래에서 필요한 작업을 수행하는 VBA 코드를 찾을 수 있습니다. 원본 시트가 없으므로 Excel을 만들고 무작위 데이터를 입력하십시오. 나를 위해 잘 작동합니다.

Sub test() 
    Dim row, rowDest, rowAux As Integer 
    Dim source As Worksheet 
    Dim dest As Worksheet 

    'Replace here by the name of the worksheet that contains the data 
    Set source = Worksheets("Sheet1") 

    'This is the sheet where the modified data will be placed 
    Set dest = Worksheets("Sheet2") 

    'Start row (source sheet) 
    row = 1 

    'Start row (dest sheet) 
    rowDest = 1 

    'This is an auxiliary variable used to fill the error code column 
    rowAux = 0 

    'Go to the last line (column 1) of your source sheet and write the string !q 
    'This will be used as a flag to know where your data finish 
    While (source.Cells(row, 1).Value <> "!q") 
     If (InStr(source.Cells(row, 1).Value, "http") > 0) Then 
      dest.Cells(rowDest, 1).Value = source.Cells(row, 1).Value 
      If (rowAux = 0) Then rowAux = rowDest 
      rowDest = rowDest + 1 
     ElseIf (InStr(source.Cells(row, 1).Value, "error code") > 0) Then 
      While (dest.Cells(rowAux, 1).Value <> "") 
       dest.Cells(rowAux, 2).Value = source.Cells(row, 1).Value 
       rowAux = rowAux + 1 
      Wend 

      rowAux = 0 
     End If 

     row = row + 1 
    Wend 
End Sub 

내 데이터 세트 및 결과 :

소스 시트 :

Source sheet

신지 시트 :

Dest sheet