• 締切済み

EXCEL 表の編集。特定の項目の抜き出しについて

エクセル初心者です。 添付している画像のように、ランダムな要素で色をつけたセルのある行と列のみを 抜き出す方法はありますでしょうか? 必要な情報は、色をつけたセルの数字と、そのセルの属する日付と店名です。 これらの情報が抜き出せれば、表の形を保っている必要はありません。 ただ、元の表自体を情報が抜き出しやすいような形式に変えることはできないので あくまで質問の意図は、この表から別の形に加工する方法です。 実は、仕事で使用したいのですが 今現在、手書きでそれらの情報を書き出しているアナログな状況でして 非常に時間がかかり困っております。。。 どなたか、よい方法をご教授いただければと思います。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! Sheet1にデータがあり、Sheet2に表示するようにしてみました。 Sheet1の1行目・A列は項目行・列とします。 VBAになってしまいますが、一例です。 セルの色は手動で色付けされているとします。 Alt+F11キー → メニュー → 挿入 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, endCol As Long, wS As Worksheet, myFlg As Boolean Set wS = Worksheets("Sheet2") Worksheets("Sheet1").Cells.Copy wS.Range("A1") endCol = wS.Cells(1, Columns.Count).End(xlToLeft).Column Application.ScreenUpdating = False For i = wS.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 For j = 2 To endCol myFlg = False If Cells(i, j).Interior.ColorIndex <> xlNone Then myFlg = True Exit For End If Next If myFlg = False Then wS.Rows(i).Delete End If Next i For j = endCol To 2 Step -1 myFlg = False For i = 2 To wS.Cells(Rows.Count, j).End(xlUp).Row If wS.Cells(i, j).Interior.ColorIndex <> xlNone Then myFlg = True Exit For End If Next i If myFlg = False Then Columns(j).Delete End If Next j Application.ScreenUpdating = True End Sub 'この行まで こんなんではどうでしょうか?m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

Excel 2007 以後であれば、セルの塗りつぶしやフォントの色でフィルタがかけられます(参考 URL)。試してください。 >……元の表自体を情報が抜き出しやすいような形式に変えることはできないので…… シートごとコピーして、そのコピーを好き勝手に加工することさえ許されないのでしょうか?許される場合は、それも検討してください。 上記以外だと、マクロですね。例えばこんな。標準モジュールに貼ってください。 Sub ColoredCells()   Dim sh As Worksheet   Dim rng As Range   Dim cnt As Long   Set sh = Worksheets("sheet1")  '←実際のシート名で「sheet1」を上書き修正   Worksheets.Add after:=sh   Range("a1").Value = "店名"   Range("b1").Value = "日付"   Range("c1").Value = "数値"   For Each rng In sh.Range("b2:g6")  '←実際のセル範囲で「b2:g6」を上書き修正     If rng.Interior.ColorIndex <> xlColorIndexNone Then       cnt = cnt + 1       Cells(cnt + 1, "a").Value = sh.Cells(rng.Row, "a").Value       Cells(cnt + 1, "b").Value = sh.Cells(1, rng.Column).Value       Cells(cnt + 1, "c").Value = rng.Value     End If   Next rng End Sub

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-filter_col.html
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル:横一列のデータを別の形式の表にしたい

     ある製品の発注数を店舗・日付け別の表にする必要があります。元データから目的の表を作成するために、効率がよく間違いが極力少ない方法を教えて下さい(ちなみに今は元データを見ながら手入力しています)。    <元データ>    一列に、店番号・店名・日付け・発注数などの    項目が並んでいる。(これが500行ほどあります)  <目的の表>基本的な形式の変更はできません。     縦軸に店番号と店名、横軸に日付(1ヶ月分)。店名と日付を結んだセルに、発注数を入力。  よろしくお願いします。

  • Excel、で染められたセル背景の値の抜き出し

    Excelで ボタンを押します。 (1)、そうすると、ポインターで合わせたセルにダブルクリック(指でポポンッと)を押すとそのセルの背景色は水色に代わる、というモードに切り替わります。 もう一度そのボタンを押すとそのモードが終了し普通に戻ります。(水色の背景色は使用者の消すという意図が働かない限りそのままにします。) (2)、セルC2に行番号を指定します。(1)とは違うボタンを押すと 指定された行番号の、空白を含めた(D:W)の値の内、(1)でセル背景色が水色に変わったセルの値だけがセルF2から右に向かって、隙間なく詰められ、抜き出される形にしたいです。 できますかね? よろしくお願いいたします。

  • Excel VBAのプロシージャについて

    こんにちは、VBAを作成しているのですが、分からない所があるので、詳しい方からのご教授をお願いします。 A                                 AF  _______________________________________________________________________  1|        1   2    3   4   5    ・・・  31   ←日付  2|  鈴木  11   15   35   8 25  3|  斉藤   45   52   25   21   50  4|  伊藤   25   45 75   36 16   ・1行目のB1セルからAFセルまで日付が入っています。 ・2行目のA2セルからA4セルまで名前が入っており、横方向にランダムな数字が入っています。 上記の表から、日付とランダムな数字を指定し検索する事でmsgboxで氏名を返せるように作っています。(例えば3日25で検索すると、msgboxで斉藤とでるようにする)。 自分なりに作ってみたのは、まずvbaを実行すると、A1行をautofilterで日付を検索し、activecell(検索結果の日付セル)の列からランダムな数字を再度autofilterで検索するというものですが、もっと記述について他に方法があるのではないかと疑問に思っていますので、このようなプログラムを作成する場合、慣れた方ならどのように記述するのでしょうか?よろしければ教えていただければと思いますのでよろしくお願いします。 ※実際は検索boxを作成していますが、AHセルに検索したい日付、AIセルに検索したいランダムな数字を入力するものとさせて頂きます。 ※EXCEL2000を使用しています。 ※中傷するような回答は遠慮させていただきます。 よろしくお願いします。

  • エクセルでセルが異なるデータの並び替え

    エクセルの使い方を教えてください。 HP上の表をコピペでエクセルに貼り付けたデーターです。 日付順(新から古い順)に並んだデーターを逆順にしたいのですが、データーが1行と2行に跨っているデーターがあるため、データーの「並び替え」をすると、「この操作には、同じサイズの結合セルが必要です」となります。そりゃ、そうだと思いつつもデーター1件ずつの加工も厳しいので、特別な手法があるのではと思い、お尋ねします。 1行で表示されているデーターは、実際には2行に跨っていますが、セルが結合されているようです。 元データーがエクセルではないため、セルの情報はありません。

  • EXCELで表を抽出する

    ・A列に日付、B列に件名を入力した表があります。 ・A列の日付は、ランダムに、繰り返し現れます。 この表から、たとえば7月だけの、A列に日付、B列に件名の表を抽出する場合、 手動でする場合は、最初の表を日付順にソートし、黙視で7月分をコピーし、別表に貼り付ける、というやり方でできますが、 数式や関数で自動的にやる方法はないでしょうか? マクロが必要になりますか?

  • エクセル表

    エクセルの表で、個人カルテの様な物を作成してます。 ○12345   6789 △12345  6789 ×12345  6789 と○△×に各1~9迄のセルに一ずつ項目に情報を入力しています。 ○△×の列にフィルタをかけると、12345と6789の行がおかしくなってしまいます。どなたか、○△×1列2行を一つのグループとして設定する方法を教えて頂けないでしょうか??ちなみにエクセル初心者です。宜しくお願いします。

  • EXCELのヘッダーに特定のセル情報を載せたい。

    たとえば EXCELのヘッダーに、A1セル(H18.4.1)の情報とA2セル(~)とA3セル(4.11)の情報を載せたい場合はどんな方法がありますか? A1セルとA3セルの情報はランダムに変化していきます。 ヘッダー情報を指定の日付で印刷したいんです。(いちいち手動で変えるのは面倒なので・・) 宜しくお願いいたします。

  • エクセルで予定表を管理。

    たとえば、下のような(1)の表を元に、別のシートの(2)のカレンダーの日付と、 1)の日付と担当者が、一致したセルへ、”開始”という文字をを自動で入れる事はできるのでしょうか? また表示後にも、”開始”が目立つようにセルに色が入ると見やすいのですが・・・。 こういった場合は、どうしたらいいのでしょうか?良い知恵をお願い致します。 よろしくお願いいたします。m(_ _)m (1)      A 列    B 列     E列  1    日付   担当者     開始 2   2007/6/7  あ 3   2007/6/1  い 4   2007/6/10  う (2)カレンダー    A列  B  C  D... G  H  I  J  K 1行 担当者 6/1 6/2 6/3,,,6/6 6/7 6/8 6/9 6/10........ 2行  あ             開始 3行  い  開始 4行  う                      開始

  • エクセルで別の表を貼り付ける方法

    仕事で使うチェックシートをエクセルで作っています。 セルの数が多く、行数、列の幅を計算して作ったつもりが、後で合わなくなり困っています。 こんな場合の良い方法を教えてください。 ○ プリントした用紙に手書きで書き込む目的なので関数などは使わず、単純な表と文字だけですが、1シートの中に複数の表が入ってます。 ○ 用紙はA3サイズと大きく、びっしりとした表なのでたくさんの列と行があります。 ○ 完成後、このシートの中にもう1つ表を入れなければならない事に気づいたのですが、既存のセルを使えば列の幅が合わずおかしくなります。 オートシェイプで文字を貼り付けたり、グラフや図を貼り付ける感覚で、別の表(もしくはシート)をシート上に貼り付ける方法はありますか? もしくは既存のセルの列、行の幅を変えずにもう1つ違う列、行の幅の表を入れる方法を教えてください。 私が分かってないだけで、多分簡単な操作でできる事なんだと思いますが、無知な私を助けて下さい。

  • ワードにエクセルの表を取り込む

    ワードにエクセルで作った表を貼り付けようとしています。 作業をしてみると、エクセルの余分なセルまで全部取り込む形となりますが、表の必要なところ(セル)のみを選択して、保存して、ワードへもってゆくには、エクセル画面でどのように加工すればよいのでしょうか? 初歩的な質問かと思いますが…困っています。本も読んで探しましたが、解決には至りません。 どうかご指導をお願いします。 サークルレポート作成中の大阪市内の主婦です。

このQ&Aのポイント
  • 娘が登園する際に体調不良を訴える原因や対策について教えてください。
  • 娘が飲みかけの紅茶を飲んだ後、下痢や腹痛、吐き気が続いています。この症状について心配しています。
  • 娘が幼稚園に行くことがストレスとなっているのか、また幼稚園を休ませるべきか悩んでいます。どうすればいいでしょうか。
回答を見る

専門家に質問してみよう