[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件に当てはまるリストの抽出』(にとりん)
以下の通り、元データがsheet1あります。
A B C D E
1 分類 名称 場所 種別 数量
2 一般 ○○ 東京 A類 10,500
3 一般 ×× 神奈川 B類 8,500
4 一般 △△ 埼玉 A類 4,200
5 一般 □□ 千葉 C類 2,000
これを、sheet2に「数量8,000以上の条件」、sheet3に「数量4,000以上の条件」、sheet4に「数量2,000以上の条件」、sheet5に「数量2,000未満の条件」で整理をしたいです。
例の元データはは5行しかありませんが、実際には3,000件くらいありまして、フィルターをかけて条件を抽出する方法では、抽出が困難です。
宜しくお願い致します。
< 使用 Excel:Excel2013、使用 OS:Windows10 >
With Sheets("Sheet1") If Not .AutoFilterMode Then .Range("A1").AutoFilter Else If .FilterMode Then .ShowAllData End If .Range("A1").AutoFilter Field:=6, _ Criteria1:="<2000", _ Operator:=xlAnd End With
With Sheets("Sheet1").AutoFilter.Range If .SpecialCells(xlCellTypeVisible).Count > .Columns.Count Then .Rows.Offset(1).Resize(.Rows.Count - 1).Copy Sheets("Sheet4") _ .Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
End If End With Sheets("Sheet1").AutoFilterMode = False End Sub
(きき) 2016/05/24(火) 11:54
.Range("A1").AutoFilter Field:=6 此処 5ですね間違いです
.Range("A1").AutoFilter Field:=6, _ Criteria1:="<2000", _ Operator:=xlAnd
="<2000"此処の値を 変えてください
.Rows.Offset(1).Resize(.Rows.Count - 1).Copy Sheets("Sheet4") _ .Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
Sheets("Sheet4") シーと変えてください
貼り付け先 タイトル行は作成してください
(きき) 2016/05/24(火) 12:01
Dim gyo(5) As Long, i As Long, tempi As Long, c As Range For i = 2 To 5 Sheets("Sheet" & i).Cells.ClearContents Next i For Each c In Sheets("Sheet1").Range("A1").CurrentRegion.Resize(, 1) If c.Row = 1 Then For i = 2 To 5 Sheets("Sheet" & i).Cells(gyo(i) + 1, 1).Resize(, 5) = c.Resize(, 5).Value gyo(i) = gyo(i) + 1 Next i Else tempi = Application.WorksheetFunction.Index(Array(5, 4, 3, 2), Application.WorksheetFunction.Match(c.Offset(, 4).Value, Array(0, 2000, 4000, 8000), 1)) Sheets("Sheet" & tempi).Cells(gyo(tempi) + 1, 1).Resize(, 5) = c.Resize(, 5).Value gyo(tempi) = gyo(tempi) + 1 End If Next c End Sub (mm) 2016/05/24(火) 13:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.