按国家/地区从工作表中提取数据

时间:2015-05-19 14:42:26

标签: excel excel-formula excel-2013

我的excel表格中有很多人,我想用excel编码按国家/地区分割,这是我的数据示例:

Country | Name
UK      | Tom
Austria | Bobsky
UK      | Ralf
Germany | Badolf
Germany | Schwartz
UK      | Andy

那么将英国人分成电子表格的不同部分是否可行? 我已经尝试过了     INDEX(B1:B6, MATCH("UK", A1:A6,0)) - 如果匹配函数未返回任何结果,则返回重复的行 我也尝试过很多东西     if(VLOOKUP(etc etc) = "UK"..... 而且我发现这也不起作用。我认为这将是excel可以做的事情,而无需过滤+复制和放大粘贴或使用VBA但这并不容易。

3 个答案:

答案 0 :(得分:2)

这对于几千行数据是可行的。如果'人数众多'远不止于此,那么高级过滤器或数据透视表是更可行的解决方案。

INDEX SMALL ROW

在D3中使用 UK 时,请在E3中使用以下内容。

=IFERROR(INDEX($B$2:$B$9999, SMALL(INDEX(ROW($1:$9995)+($A$2:$A$9996<>D3)*1E+99, , ), ROW(1:1))), "")

根据需要填写。

答案 1 :(得分:1)

不浪费时间起草复杂的Excel公式:

选项1

使用数据透视表,使用“国家/地区”列作为过滤器

选项2

在每个工作表上使用Microsoft Query Data->From Other Sources->Microsoft Query,如下所示:

SELECT * FROM [Sheet1$] WHERE Country = 'UK' ORDER BY NAME

答案 2 :(得分:0)

Sub processData()
'I have workout for only UK 
'this macro copies records of UK people from Sheet1 to Sheet2
lastrows = Worksheets("Sheet1").Cells(Rows.count, 1).End(xlUp).Row
count = 1
For x = 2 To lastrows
    If (Worksheets("Sheet1").Cells(x, 1) = "UK") Then
        Worksheets("Sheet2").Cells(count, 1) = Worksheets("Sheet1").Cells(x, 1)
        Worksheets("Sheet2").Cells(count, 2) = Worksheets("Sheet1").Cells(x, 2)
        count = count + 1
    End If
Next x
MsgBox "Task finished"
End Sub