- ベストアンサー
Excelで特定のデータを抽出する方法
- Excelの特定の列からデータを抽出する方法についてまとめました。
- データが入っている列をフィルタリングして抽出する方法や、マクロを使ったデータの抽出方法について説明しています。
- また、欠席者や予想値が入っているセルの処理方法についても解説しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
オートフィルタだけ使う方法としては。 Excel2007以降を使う データを丸ごとシート2にそのままコピーする オートフィルタを取り付ける 全ての列で,オートフィルタの色フィルタで「塗り潰し無し」で絞り込む 残った行を全て「行削除」する オートフィルタを解除すると,色のついた行が残っている。
その他の回答 (3)
- nobu_suzuki1
- ベストアンサー率35% (25/70)
ANo.1です。 あまりお勧めできる方法ではないのですが、一応こんなやり方もあるということで書いてみます。 メニューで挿入→名前→定義 名前(例えば「予想値」と名前を付けたと仮定します)を入力して参照範囲に =GET.CELL(63,Sheet1!C2)+GET.CELL(63,Sheet1!D2)+・・・・+GET.CELL(63,Sheet1!AF2) という感じで調査30までのセルまでを繰り返し入力して セルAG2あたりに上記で入力した =予想値 と入力すると予想値が入っている=色が付いているセルの色番号を合計してくれます。 これを利用するとすべてのセルが無色の場合は0、それ以外なら数値が入ってくるのでそれをオートフィルタで0以外で絞りこむ というやり方もあります。かなり強引ですが参考までに。
お礼
回答ありがとうございました。 関数を使ってもできるわけですね。 ただちょっと列数が多いとめんどうかもしれないですね。 でも、勉強になりました。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! VBAで行うにしても、条件付書式で色が付いている場合は反応しませんが・・・ 手動で色を付けているという前提です。 VBAでの一例です。 Sheet1の2行目からデータがありSheet2に表示するとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j, k As Long Dim ws As Worksheet Set ws = Worksheets("Sheet2") Application.ScreenUpdating = False ws.Cells.ClearContents Columns("A:B").Copy Destination:=ws.Cells(1, 1) For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row For j = 3 To Cells(1, Columns.Count).End(xlToLeft).Column For k = 2 To ws.Cells(Rows.Count, 1).End(xlUp).Row If ws.Cells(k, 1) = Cells(i, 1) Then If Cells(i, j).Interior.ColorIndex <> xlNone Then ws.Cells(k, Columns.Count).End(xlToLeft).Offset(, 1) = Cells(i, j) End If End If Next k Next j Next i For k = ws.Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If ws.Cells(k, 3) = "" Then ws.Rows(k).Delete End If Next k Application.ScreenUpdating = True End Sub 'この行まで ※ 条件付書式で色を付けている場合はVBAにその条件を入れてやる必要がありますが、 今回は色付の条件が「空白」というコトになるかと思いますので、難しいかもしれません。 ※ セルに色が付いているモノだけを表示するようにしていますので、他の色がある場合は コードを変更する必要があります。 参考にならなかったらごめんなさいね。m(_ _)m
お礼
回答ありがとうございました。 やはりVBAで処理して、別のシートに書き出すしかないですね。 できればデータが入っているシートで、オートフィルタを使って表示できればいちばんよかったのですが。
- nobu_suzuki1
- ベストアンサー率35% (25/70)
セルの色を調べる関数は無かったと思うので、VBA(マクロ)で処理するか予想値を色以外(数値自体になんらかの工夫をするなど)で識別出来るようにして関数で処理するなどの工夫が必要と思われます。
お礼
回答ありがとうございました。 そうですね。関数では無理ですね。 オートフィルタでなんとかできないかなと思ったのですが、何か方法がないですかね。
お礼
回答ありがとうございました。 オートフィルタを使ってやる方法としては一番ですね。 この方法だとVBAを知らない人でもできそうです!!
補足
VBAを使って処理する方法だとExcel初心者には難しい(と思います)ので、今回はVBAを使わずに処理する方法をベストアンサーとさせていただきます。 いろいろな回答いただき、ありがとうございました。