我已将断开链接搜索的结果导入Excel,我现在需要根据错误代码对结果进行排序。我无法理解如何执行此操作,因为错误代码位于URL下方的行中,而不是位于其旁边的列中。此外,一些URL占用多行。
以下是电子表格部分的屏幕截图:
我如何将错误404的所有结果分组在一起?
答案 0 :(得分: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
我的数据集和结果:
来源表:
目标表:
答案 1 :(得分:1)
在A的左侧插入一列,并填入一系列数字(1,2,3,...)。现在按列B排序。选择所有错误代码条目并将它们拖到列c(或其他一些空列)。按照A列中的数字序列来处理工作表。现在所有已排序且错误代码是单独的列(C),您可以右键单击C1,然后选择向上移动单元格。可以删除列A,您可以按URL排序(虽然看起来有点清理文本)。
答案 2 :(得分:1)
除非您可以在与URL相同的行中获取错误代码,否则这将很难做到。但是,您仍然可以通过在错误代码上使用SEARCH函数来执行此操作。这将找到404错误,但它不会在其下方的单元格中提供URL。因此,您需要一个函数来检查它的单元格下面的单元格是否找到了404代码。然后,您可以过滤“true”值并获得两行。
在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")
答案 3 :(得分:1)
受制于某些限制(但它们不在您的Q中!)插入的ColumnA中的此公式可能会起作用:
=INDEX(C1:C3,MATCH("*error code:*",C1:C3,0))
与插入的ColumnB中的=ROW()
一起(尽管可能在其他地方),并且同时向下复制。
公式应该转换为值(复制ColumnsA:B,Paste Special ...,值超过顶部),排序基于ColumnA然后ColumnB。可以删除ColumnC中的空白行,也可以删除该列中包含错误代码的行。