0

ファンタジーリーグで獲得したすべてのファンタジーフットボール選手とその週の平均ポイントのリストをExcelにインポートして維持しようとしています。この情報は yahoo から 1 ページあたり 25 プレーヤーで取得できるので、各ページが 25 プレーヤー (合計 10 ページ) の Excel に Web リンクをインポートする Excel ワークブックをセットアップしました。

アイデアは、毎週すべてのページを Excel に更新するだけで、同じワークブックに別のシートを作成して、すべてのワークシートを調べて、操作して遊ぶことができる素敵なリストに入れることができるということです。それは本質的に次のようになります。

Player Name | Position | Team Name | AVG PTS

残念ながら、インポートされた情報は少し可変であるため、絶対セルを具体的に参照することはできません。これは、負傷状態のプレーヤー間に追加の列がある場合とない場合があるためです。

私が知っているのは、プレーヤー名が列 b にあり、範囲 B160 内で始まり、最大 B250 で終わるということです。列 b の各プレーヤーの名前は、「 - 」の ctrl+f で分離できます

私がやりたいのは、ワークブックの別のシートに数式を設定することです。

  1. インポートされたデータを含むワークシートでこの範囲を検索し、
  2. この範囲で「 - 」を含むすべての文字列を検索します
  3. セルの完全な文字列をコピー/返す

これが数式で可能かどうかはわかりません。また、ここの他の投稿を見てもうまくいきませんでした。

これは、私がGoogleドキュメントを使用して行っていることの切り詰められたバージョンへのリンクです(ランダムなExcelファイルをダウンロードするのはおかしいと感じる人がいると思います:

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

4

1 に答える 1

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
于 2013-10-04T23:30:28.057 に答える