2017-04-11 108 views
0

我有一个excel文件的数据集。 它包含有关2010-16年度人口变化的信息。 数据集行由美国下一个州的状态信息和该州的县信息组成。 现在我的问题是如何将Excel状态信息和县信息分开? 这里是链接到我的数据 https://www.ers.usda.gov/webdocs/DataFiles/CountyLevel_Data_Sets_Download_Data__18026/PopulationEstimates.xls?v=42489如何在Excel中选择特定的行?

+0

你是什么意思?看看这些数据,你只想列出一个国家名单,与县政府分开?为什么不只是添加一个帮助列,就会说C#单元格中会检查“County”的'= Iferror(Search(“county”,C4),C4,“”)',并返回状态名称没有“县”文字。 *这假设*所有单元*没有*“县”是状态。你有什么尝试?你想要输出看起来像什么? – BruceWayne

+0

我想将数据分成两个excel文件,一个文件包含关于状态的数据,另一个文件包含关于县的数据,但没有关于状态的信息。 – Jwalitha

+0

我的意思是我想要根据行数据划分excel文件 – Jwalitha

回答

0

你可以试试这个宏将工作簿中的一个与国家数据和其他与县数据创建两页。

Sub SplitData() 
Dim wsSource As Worksheet, wsState As Worksheet, wsCounty As Worksheet 
Dim lr As Long 

Application.ScreenUpdating = False 

Set wsSource = Sheets("Population Estimates 2010-2015") 
lr = wsSource.Cells(Rows.Count, 1).End(xlUp).Row 
On Error Resume Next 
Set wsState = Sheets("State") 
Set wsCounty = Sheets("County") 
wsState.Cells.Clear 
wsCounty.Cells.Clear 
On Error GoTo 0 
If wsState Is Nothing Then 
    Sheets.Add(after:=wsSource).Name = "State" 
    Set wsState = ActiveSheet 
End If 
If wsCounty Is Nothing Then 
    Sheets.Add(after:=wsState).Name = "County" 
    Set wsCounty = ActiveSheet 
End If 

With wsSource.Rows(3) 
    .AutoFilter field:=3, Criteria1:="=*county*", Operator:=xlAnd 
    wsSource.Range("A3:CW" & lr).SpecialCells(xlCellTypeVisible).Copy wsCounty.Range("A1") 
    .AutoFilter field:=3, Criteria1:="<>*county*", Operator:=xlAnd 
    wsSource.Range("A3:CW" & lr).SpecialCells(xlCellTypeVisible).Copy wsState.Range("A1") 
    .AutoFilter 
End With 
wsState.UsedRange.Columns.AutoFit 
wsCounty.UsedRange.Columns.AutoFit 
Application.ScreenUpdating = True 
End Sub 
+0

我不知道原因,但它没有做任何事情..... – Jwalitha

+0

我在你的数据上测试了这个代码,它工作的很完美。它用他们的相关数据创建了两张名为州和郡的表。当你说它没有做任何事情时,很难理解。 – sktneer

0

这听起来像你需要按县和州的数据汇总。枢轴表应该为你做到这一点。

  1. 新的工作表,插入,透视表,选择范围(包括报头,但不包括行1和2)
  2. 降值转换成你如何需要他们,记得要总结/平均表/算作需要
  3. 如果您的表格中包含正确的数据,请将其选中,复制并将“粘贴值”粘贴到另一个xls中。

这样做两次,一次为郡卷起,一次为州卷起。