使用公式复制范围中具有特定值的单元格

时间:2013-10-04 20:34:14

标签: excel excel-formula

我正试图在我的幻想联盟和他们每周平均值的所有幻想足球运动员中擅长导入和维护一个列表。我可以从雅虎每页25个玩家那里获取这些信息,所以我设置了一个excel工作簿,每个页面将一个weblink导入excel,共有25个玩家(共10页)

我的想法是,每周我都可以简单地将所有页面刷新为excel,然后在同一工作簿中使用另一张工作表,通过所有工作表并将它们放入一个可以操作和使用的好列表中。它基本上是:

Player Name | Position | Team Name | AVG PTS

不幸的是,导入的信息有点变量,因此我无法专门引用绝对单元格。这是因为在受伤状态的球员之间可能会有或没有额外的一排。

我所知道的是,玩家名称在b列中,从B160范围开始,最后以B250结束。列b中的每个玩家的名字可以用ctrl + f隔离“ - ”

我想要做的是在工作簿中的单独工作表上设置一个公式:

  1. 使用导入的数据
  2. 在工作表上搜索此范围
  3. 在此范围内找到所有带“ - ”的字符串
  4. 复制/返回完整的单元格字符串
  5. 我不确定这是否可以使用公式,我没有运气看到这里的其他帖子。

    这是一个链接到我正在使用谷歌文档做的截断版本(我觉得人们会觉得有趣下载一些随机的excel文件:

    https://docs.google.com/spreadsheet/ccc?key=0AvLwUKmn33T6dHhGcEVwWC1KdXpMblJoRGJzMlNWWlE&usp=sharing

1 个答案:

答案 0 :(得分:0)

如果您只有几张纸,一种简单的方法是过滤列,并在过滤器搜索中键入“ - ”(不带引号)。这适用于2007年以上。将可见单元格仅复制并粘贴到主工作簿中。

您也可以使用VBA执行此操作:

Dim sMain As String
Dim sImported As String, lLen As Long
Dim sStart As String
sMain = "ALL TAKEN PLAYERS AVG" 'name of your main sheet
sMainCol = "A" 'column your player names will go in
sImported = "Imported Data " 'string that player sheets start with
lLen = Len(sImported)
sStart = "B160" 'starting cell for imported data

Dim ws As Worksheet
Dim rPlayers As Range, cell As Range
Dim counter As Long

counter = 5 'starting row to fill out players

For Each ws In Worksheets
    If Left(ws.Name, lLen) = sImported Then
        ws.Activate
        Set rPlayers = Range(Range(sStart), Range(sStart).End(xlDown))
        For Each cell In rPlayers
            If InStr(1, cell.Value, " - ") > 0 Then
                Sheets(sMain).Range(sMainCol & counter).Value = cell.Value
                counter = counter + 1
            End If
        Next cell
    End If
Next ws