• ベストアンサー

Excel2002 データの抽出

Excel2002で塗りつぶしたデータの抽出をしたいのですがうまくいきません。やはり値でないと抽出できないのでしょうか? 一覧の表のデータの中でいくつかの行だけ塗りつぶしをしてあります。この塗りつぶしをした行だけ抽出したいのですが無理ですか? どなたかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#9284
noname#9284
回答No.4

1.A列から右に色がついているとします。 2.D列を作業列として使います。 3.今回、マクロ関数を使います。 「D1を選択し」て、 挿入メニュー→名前→定義で 名前(W)に 色 という名前を入力し 参照範囲(R)というボックスに =GET.CELL(63,!A1)+NOW()*0 という数式を入力してOKします。 (=色 とセルに入力すると、セルの塗りつぶしの色番号が出ます。赤なら3とか塗りつぶしなしなら0とか) D列の好きな行から下に =色>0 という数式を埋めます。 1行目は見出しだと思いますから、 A1:D1を選択してデータメニュー→フィルタ→オートフィルタ を設定します。 で、TRUEだけ絞り込めば色つきの行だけが絞り込めます。 B列から右に色がついている場合、 D1を選択して名前を定義するときに =GET.CELL(63,!B1)+NOW()*0 という数式を入力してください。 この法則、おわかりでしょうか? 参考になるサイトにリンクを張らせていただきますね。 エクセル技道場

参考URL:
http://www2.odn.ne.jp/excel/waza/name.html#SEC23

その他の回答 (3)

noname#29107
noname#29107
回答No.3

VBAを使用しない方法としては、旧世代のマクロ関数を使用する方法があります。 ここを参考にしてみてください。 http://www.moreexcellent.com/excel/tips/color.htm この方法で塗りつぶしの色番号を特定し、その番号で抽出するということが可能でしょう。 ただ、もうヘルプからも消えている方法なので、あまり新規には使用しない方が良いのかもしれません。その点では#1さん、#2さんの言われるようにVBAを使用する方が正道かも。

参考URL:
http://www.moreexcellent.com/excel/tips/color.htm
  • tascany
  • ベストアンサー率48% (15/31)
回答No.2

ユーザー定義関数を使った方法をご紹介します。ワークシート関数のなかにセルの色を取得するものはないようなので・・・。 1)VBエディタに下記コードを貼り付ける。(引数で指定された)セルの色を表す値(ColorIndexプロパティ値)を返す関数です。 Function Color(x) Color = x.Interior.ColorIndex End Function 2)リストの一番右の列の右隣に「=Color(A2)」などとして、下方向にコピペ。 3)Color関数の値としては、色が着いてたら正の整数が返され(たとえば、赤なら「3」)、色が着いてなければ「-4142」が返されます。そこで、オートフィルタのオプションで「1以上」として抽出してやれば、ご希望がかなうと思います。 ※注意点・・・塗りつぶしをキャンセルしたり色を変更したりしても自動的に再計算してくれません。ですので、変更を反映させるにはColor関数が入った列を選択するなどして「Ctrl+Alt+F9」する必要があります。

参考URL:
http://hp.vector.co.jp/authors/VA016119/hajimete/udf1.html
  • RECARO
  • ベストアンサー率47% (49/103)
回答No.1

マクロを使用しないと無理のような気がしますね・・・ 書式を判定する関数はなかったような・・・? もし有ったらすみません。誰か教えてください(^^;)。 マクロで簡単なものを書いてみました。 まず,セルA1~A5に適当な数値を入れ,そのセルの中のいくつかを「黄」色(ColorIndex=6)に塗りつぶします。 そして以下のマクロを実行すると,黄色く塗りつぶしたセルの中身だけその横のセルにコピーされます。 ------------------------------------------------- Sub 黄色いセルの中身を横にコピー() For i = 1 To 5 Cells(i, 1).Select If ActiveCell.Interior.ColorIndex = 6 Then Cells(i, 2).Value = Cells(i, 1).Value End If i = i + 1 Next i End Sub -------------------------------------------------

関連するQ&A

  • 【Excel VBA】条件を満たすデータを順に抽出

    Excel2003を使用しています。 CSVでExcelに取り込んだデータの中から、条件を満たすものを順に抽出して一覧表を作成するマクロを作りたいのですが。。。 ・Sheet2のB列に“コード”と入力されている行のC列のデータ → Sheet1のC列2行目以下 ・Sheet2のC列に“合計”と入力されている行のD列のデータ → Sheet1のD列2行目以下 に順に表示させたいのですが、うまくいきません。 以前、いただいた回答で参考になりそうなものを見てみたのですが、手順というか何かヒントのようなものをいただけたら、自分でどうにかできそうなので、質問させていただきました。 よろしくお願いします。

  • Excel2007でのフィルタ抽出がうまく行きません。

    Excel2007でのフィルタ抽出がうまく行きません。 あきらかに存在する項目名が抽出対象項目の中になかったり、数値項目で抽出すると 10行あるのに5行しか抽出されない。などです。 類似のシートが10あり、平均5000行の表です。正しく抽出されるシートもあります。 どこがどう違っているのか特定不能です。 抽出対象から漏れる行があるということは、特定条件に合致した行の項目を加減乗除する 数式を入れてあるのですが、それも漏れている可能性アリでしょうか? だとすれば、電卓片手に全項目の検算?をみなさんやっているのでしょうか?

  • <EXCEL> 任意のデータが含まれる行の抽出

    こんにちは。 任意の値が含まれる行を抽出し、その行をコピーしたいのですが 目視でやっているために、非常に時間が掛かっております。 また、上記に加え 任意の値が含まれる行の中からD列にあるデータだけを コピー&ペーストというところまでできますでしょうか? 上記2点が出来ますと、非常に作業効率が上がりますので 何とかお助けください。

  • エクセル2003 データの抽出

    excel2003を使用しています。 A列に8桁のコード、B列に、そのコードの品名が入力された表があります。 この表の中から、最初の4桁だけ一致するデータを抽出したいのですが どうすればよいでしょうか? オートフィルタオプションを使ってみたのですが、うまくできません。 よろしくお願いいたします。 例:12348888、12349999、12346666、32224434、46732235・・・・と並ぶコードの中から、 1234×××× のコードの行だけが、表示されるようにしたい。

  • Excel2013 同一列の抽出

    Excelの使い方について、教えていただいたく思います。 Win7 Excel2103を使用しています。 とあるデーターの同一行にて、A列、B列の値が同一のものだけを抽出する方法を探しております。 当方、あまりExcelに詳しく無い為、よろしくお願い申し上げます。 【例】       A列      B列 1行目   123     234 2行目   567     123 3行目   123     123 4行目   234     123 5行目   234     234 6行目   234     567 ・ ・ ・ 3行目、5行目がA列、B列が同一の為、抽出できないでしょうか? 該当行の色分け、不要行の削除等、方法は問いません。 宜しくお願い申し上げます。

  • 複数のExcelブックから特定シートのセル範囲抽出

    同一フォルダ内にある複数のExcelブックから特定シートの特定セル範囲を抽出して一覧表にまとめるExcel マクロ(VBA)を教えてください。 このサイトで殆どよく似た回答を読んだのですがうまくいきません。VBA初心者です。 よろしくお願いします。 【前提】 ・実行する端末のOSはWindows 10 ExcelはOffice365 ProPlus ・対象フォルダはネットワーク接続フォルダ  この中に、複数のExcelブック(xlsx、xlsm)があります。 ・抽出したい対象は、各ブック内の「台帳」シートの「A3:Cの最終行」で  複数のブックの中には「台帳」シートが含まれていないブックも混在しています。 【抽出一覧作成イメージ】 ・「集約.xlsm」ブックの「集計」シートの2行目から抽出した結果を一覧表示する。 ・「集約.xlsm」ブックにマクロは登録する ・表示はA列に抽出元ブック名(=ファイル名)、B列からD列に抽出元「A3:Cの最終行」セルの値。 ・「A3:Cの最終行」セルの値を「集約.xlsm」ブックの「集計」に貼り付ける際には「値で貼り付ける」が望ましい。

  • Excel2007でのデータ抽出

    前任者が作ったExcelでの給料計算表を使用していますが、先日そこに金種計算表を組み込めないかと言われました。 当方VBAなどは全くの初心者です。 VLOOKUP関数を使ってデータテーブルから金額を読み込み金種計算が出来るようにはしてみたのですが、データテーブルを更新すると金種計算表にある数式がエラーを吐いてしまいます。 金種計算表には一行目から =IF(B4="","",VLOOKUP(B4,テーブル!D4:BG4,10)) と関数を入れてあります。 B4は氏名欄です。 その際にはちゃんと金額が表示されていますが、入力フォームからデータテーブルを更新すると =IF(B4="","",VLOOKUP(B4,テーブル!#REF!,10)) となってしまいます。 金額を手入力すればいいのですが、全社員分となると膨大な量になってしまいます。 なんとか自動で抽出出来ないものでしょうか。 お知恵をお貸しいただければ幸いです。 稚拙な説明ではありますがよろしくお願いします。

  • excelのデータ抽出

    縦軸の条件と横軸の条件からデータを抽出する方法を教えてください。 以下のような表があります。    A  B   C   D   E  ・・・・ 1    0.5  2.5  3.1  5.5 2 40   2  5   10  3 3 55 4 35 1行およびA列の値を別セルに入力して、クロスするデータを出したいのですが、例えば別セル(1)に40と入力し別セル(2)に5.5と入力すれば、別セル(3)に3と抽出したいです。 また、出来れば別セル(2)に入力する値が表にない場合、入力した値より大きな値で一番近い値を読み取れればベストなんですか。 例えば別セル(2)に5.4と入力した場合には5.5の列を抽出 なにか良い方法はありますか? よろしくお願い致します。

  • 指定した順でのデータ抽出

    Excel2003で、関数を使用して、”区分一覧”から区分ごとの表に、”枝番”順に抽出したいのですが、うまくいかず昇順でしか抽出できません。 また、枝番の重複処理として、重複したら1つ前の枝番のデータを表示させたいのですが、どういう風に組み立てれば良いのか判らないので合わせて、教えて頂きたくお願いします。

  • VBAのデータ抽出(間引き)について

    VBAのデータ抽出(間引き)について 当方VBA初心者なのですが、 VBA(EXCEL2007)を使用してグラフ作成をしようと思っています。 元データの書式は以下の通りでデータ行は30秒間隔で 一カ月分(8万行)あります。 2010/08/01 01:00:34     1112.83 2010/08/01 01:01:04     1110.43 2010/08/01 01:01:34     1111.87 2010/08/01 01:02:04     1112.23 2010/08/01 01:02:34     1112.43 2010/08/01 01:03:04     1112.03 2010/08/01 01:03:34     1110.83 2010/08/01 01:04:04     1112.43 2010/08/01 01:04:34     1110.63 ・・・ データ量が多すぎるので間引きしようと思っています。 間引き(抽出)条件は以下の様に考えています。 10行毎(5分毎)に値の最大値の行を抽出して別シートへコピー。 VBAマクロで処理するにはどの様な コードで実現可能でしょうか? 教えて頂きたく。よろしくお願いします。

専門家に質問してみよう