【 EXCELで悩んでいます 】
複数のシートから特定の言葉の記入がある行だけ、
新規ワークシートへ自動で書き出したいのですが難儀しています。
当方エクセル初心者でして、
ピボットテーブルもマクロも組んだことがありません。
工程数がかかってもいいので、できるだけ優しい方法を教えて下さい。
仕事で使うデータで、これがあると非常に助かります。
【 準備しているデータ 】
・参照したいデータシートは8枚
・それぞれ、同じフォーマットで内容が異なる60行弱の文字データ
(画像参照ください。このようなデータシートが8枚あります)
【 やりたいこと 】
8枚にも渡るシートの内容のなかから、
特定の文字が入っているもの(画像でいうと、G列「進捗」の「作業中」になっている行)だけを自動的に抽出して
一枚の新規シートにまとめて一覧化したい
【 環境 】
EXCEL 2003
Windows
面倒かとは思いますが、
お優しいエクセルマスター様がいらっしゃると信じております。
どうかよろしくお願い申し上げます。
No.6ベストアンサー
- 回答日時:
>なお、MackyNo1様がお考えの記録マクロの利用する方法もよろしければお知らせいただきたいのですがよろしいでしょうか?
以下のようなキー操作でマクロを記録してください。
まず、準備として、1行目に項目名を記載した集計シートを作成しておきます。
「ツール」「マクロ」「新しいマクロの記録」から、以下の操作をします。
集計シートのA2セルからデータ挿入範囲を大きめに選択し、Deleteキーで以前のデータを削除します(最初は何も入力されていませんが)。
次に1枚目のシートの項目行を選択し、データの入力されているA2セルからデータ範囲を大きめに選択し(予定最大データ数分まで選択します)、「データ」「フィルタ」「オートフィルタ」で必要なデータを表抽出し、Ctrl+Cでコピーして、集計シートのA2セルでCtrl+Vで貼り付けます。
2枚目のシートからは以下の操作を行います。
同様に、2枚目のシートのA2セルから、データ範囲を大きめに選択してからフィルタで抽出したデータをコピーし、集計シートのA1セルを選択して、Ctrl+↓のショートカット操作を行い、マクロの記録ツールバーの「記録終了」右にある「相対参照」のアイコンをクリックし、↓キーを押してから、相対参照ボタンをもう一度押して捜査隊参照を解除してCtrl+Vで貼り付けます。
この操作を8枚目のシートまで行い、最後にすべてのシートのフィルタモードを、「データ」「フィルタ」「オートフィルタ」で解除すれば完成です。
最終セルの選択にCtrl+↓のショートカット操作を利用すること、相対参照の記録ボタンをA列の一番下のデータの1つ下のセルを選択すること、各シートのデータ範囲を最初に選択しておいてからフィルタ操作するところが記録マクロ操作のポイントです。
私にもできました!!
PhotoShopでいうところの「アクションの記録」のような機能なんですね。
本当に助かりました。
これで仕事がはかどりそうです。
お答えいただいた方全員をベストアンサーとさせていただきたいところですが
二度もご丁寧にお教えいただいたこと、
ならびに初心者の私でも実現できたことを踏まえ、
こちらをベストアンサーとさせていただきます。
本当にありがとうございました。
No.5
- 回答日時:
>ピボットテーブルもマクロも組んだことがありません。
今回のように、シートが分離されているようなケースで簡便な操作を行うにはマクロを利用する必要があります。
エクセルには「マクロの記録」という機能が用意されていますので、これを利用してご希望の操作を行うことも可能ですが、エクセルの基本的操作を熟知している必要があります。
また、マクロを利用する場合はご自分でコードの修正ができる程度の最低限の知識は必要になります(例えばクロで実行したものは通常の入力と違い「元に戻す」という操作ができないので、重大なミスにつながる可能性があります)。
また、ピボットテーブルの機能はエクセルの基本機能の一つですが、この程度はご自分でできるレベルになるようにされたほうが、今後のためにも良いと思います。
>工程数がかかってもいいので、できるだけ優しい方法を教えて下さい。
個人的には記録マクロを利用した方法が最も簡便と思われますが(記録マクロに挑戦する気持ちがあるのなら具体的な操作方法を提示します)、初心者でもわかりやすいという方法なら、リンク貼り付けとオートフィルタの機能を併用することをお勧めします。
作業用のシートを追加し、1行目に項目名を入力し、1枚目のシートのデータ範囲+α(60行目まで)をコピーし、作業用シートのA2セルで右クリック「形式を選択して貼り付け」で「リンク貼り付け」します。
同様に2枚目のシートのデータ範囲+αを選択して、作業用シートのA61セルにリンク貼り付けします。
すべてのシートのデータ範囲を1枚のシートにリンク貼り付けしたら、準備完了です。
必要なデータを抽出したい場合は「データ」「フィルタ」で抽出対象を絞り込みます。
この絞り込んだデータシートを新規シートにコピー貼り付けすれば完成です。
#Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。
恥ずかしながら「リンク貼り付け」というコピペ方法を知りませんでした!
これなら、元データを修正してもちゃんと更新されますし、
なにより簡単でしたので、私でもできました。
本当にありがとうございました。
また、バージョンについても、ご指摘いただきましてありがとうございました。
しかもEXCEL2003と書いてしまっていましたが
実際は2000でして(大汗)。
Excel 2000 9.0.6926 SP-3
でした。
大変失礼致しました。
なお、MackyNo1様がお考えの
記録マクロの利用する方法も
よろしければお知らせいただきたいのですがよろしいでしょうか?
何卒よろしくお願い申し上げます。
No.4
- 回答日時:
「マクロも組んだことが」ない私や関数が苦手な人向けの方法を紹介します。
少々工数がかかるけど「優しい方法」だと思います。
少々見づらい添付図を判読しながら下記の手順をお読みください。
1.8枚(簡単のために、此処では Sheet1~Sheet3 の3枚)のシート(添付図では内容を簡略化)のデータ部分をそっくり別シート Sheet9 にコピーして、最上行に[オートフィルタ]を設定。その結果を Fig-1 に示す。
2.[進捗]の列において、[オートフィルタ]で“作業中”“と等しくない”の条件でデータを抽出した後、抽出されたレコードの全ての行全体を選択。その結果を Fig-2 に示す。
3.その選択範囲内でマウスの右クリックから[行の削除]を選択する。
4.[オートフィルタ]を解除する。その結果を Fig-3 に示す。
なお、添付図の中でどれかの拡大図を欲しければその旨をお知らせください。
ご丁寧に画像まで作成いただきまして、
本当に本当にありがとうございます!
ただ、この方法ですと、sheetの元データの内容が修正された際には
反映されないような気がしました。
お手間をいただいたのに、恐縮です。
ありがとうございました。
No.3
- 回答日時:
こんにちは!
一番簡単で操作しやすいのは、No.1さんが仰っているように各Sheetでオートフィルタをかけ、
表示されているものを新規Sheetにコピー&ペーストしていく方法だと思います。
関数でやろうと思えば可能だとは思いますが、下準備とかなり長い数式が必要かと思います。
そこでお望みの方法ではないと思いますがVBAの一例を載せておきます。
騙されたと思って参考程度で試してみてください。
※ 新規SheetはSheet見出しにある最後(9番目)のSheetとして、Sheet1~Sheet8で
G列が「作業中」だけのものをSheet9に表示するようにしてみました。
尚、すべてのSheetのフォーマットは同一としてタイトル行が2行まで、データは3行目からとします。
Sheet9のH列セルの表示形式は「日付」にしておきます。
Alt+F11キー → VBE画面が出ますので、画面左下にある「This Workbook」をダブルクリック! →
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です。)
Sub 一覧表示() 'この行から
Dim i, j, k As Long
i = Worksheets(9).Cells(Rows.Count, 1).End(xlUp).Row
If i > 2 Then
Range(Worksheets(9).Cells(3, 1), Worksheets(9).Cells(i, 8)).ClearContents
End If
Application.ScreenUpdating = False
For k = 1 To 8 'Sheet1~Sheet8まで
For i = 3 To Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Row '3行目~最終行まで
For j = 1 To 8 'A列~H列まで
If Worksheets(k).Cells(i, 7) = "作業中" Then
Worksheets(9).Cells(Rows.Count, j).End(xlUp).Offset(1) = _
Worksheets(k).Cells(i, j)
End If
Next j
Next i
Next k
Application.ScreenUpdating = True
End Sub 'この行まで
※ Sheet1~Sheet8のデータ変更があった場合、最終作業としてマクロを実行します。
以上、参考になれば良いのですが・・・m(__)m
ご丁寧に、マクロ内容の詳細まで記入いただきまして
誠にありがとうございました。
がんばってマクロに挑戦してみましたが、
撃沈しました。
エラーが出たり、そもそもまったく反応しなかったりで・・・。
素人のため、どこが悪いのかも分からずただ時間だけが過ぎていく感じでしたのであきらめました。
ご丁寧にご回答いただいたにもかかわらず
大変申し訳ありませんでした。
No.2
- 回答日時:
ちょっと初めの作業は面倒ですが次のようにしてはどうでしょう。
8枚のシートではないですが仮に3枚のシートの場合について取り上げます。
それぞれのシート名がこだわりませんがここではシート1からシート3までのデータがあり別のシートにお求めの表を作成するための方法を示します。
シート1のJ列は作業列としてJ3セルには次の式を入力して下方にオートフィルドラッグします。
=IF(G3="","",G3&COUNTIF(G$3:G3,G3))
シート2のJ列は作業列としてJ3セルには次の式を入力して下方にオートフィルドラッグします。
=IF(G3="","",G3&COUNTIF(G$3:G3,G3)+COUNTIF(Sheet1!G:G,G3))
シート3のJ列には次の式を入力して下方にオートフィルドラッグします。
=IF(G3="","",G3&COUNTIF(G$3:G3,G3)+COUNTIF(Sheet1!G:G,G3)+COUNTIF(Sheet2!G:G,G3))
そこでまとめのシートですがA1セルには抽出ワードとかの文字列を入力しA2せるには仮に作業中を表示させたい場合には作業中と入力します。
3行目、4行目はシート1などと同じに項目名を並べます。
A5セルには次の式を入力してH5セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。
=IF(COUNTIF(Sheet1!$J:$J,$A$2&ROW(A1)),INDEX(Sheet1!$A:$H,MATCH($A$2&ROW(A1),Sheet1!$J:$J,0),COLUMN(A1)),"")&IF(COUNTIF(Sheet2!$J:$J,$A$2&ROW(A1)),INDEX(Sheet2!$A:$H,MATCH($A$2&ROW(A1),Sheet2!$J:$J,0),COLUMN(A1)),"")&IF(COUNTIF(Sheet3!$J:$J,$A$2&ROW(A1)),INDEX(Sheet3!$A:$H,MATCH($A$2&ROW(A1),Sheet3!$J:$J,0),COLUMN(A1)),"")
これでお望みの表を得ることができます。
シートの数が8ですから式は長くなってきますがここで示した例を参考にして挑戦してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?賛成だったら「賛」、否定だったら「否」を文頭においてあなたの意見を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
Excel:複数シートから条件に合う行を抽出(空白は次の行または別シートを参照)
Excel(エクセル)
-
複数エクセルから特定シートの特定行だけを別シートに抽出するマクロ
Excel(エクセル)
-
-
4
Excel:複数シートから条件に合うセルを抽出する 方法があれば教えてください。 例) シートA 名
Excel(エクセル)
-
5
EXCEL VBAで複数シートから該当列のみを別シート列方向に順番に貼り付け
Visual Basic(VBA)
-
6
EXCEL VBAで複数シート内のセルをまとめて表を作成
Visual Basic(VBA)
-
7
複数シートの同じセル内容を1シートに順番に貼り付けたい
その他(Microsoft Office)
-
8
【VBA】全ての複数シートから指定した列をコピー、新しいブックの1シートに抽出する
Visual Basic(VBA)
-
9
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
10
マクロでの全シート内検索
Excel(エクセル)
-
11
エクセルのフィルターを複数シートに連動させたいです。 エクセルファイルに15シートあります。 そのう
Excel(エクセル)
-
12
EXCELで複数のファイルから抽出
Excel(エクセル)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
エクセル:シート名を手入力でなく、セル「A1」の文字を出したい。
Excel(エクセル)
-
15
VBA 複数あるシートから複数条件に一致する値を別シートに抽出して値貼り付けしたい
Excel(エクセル)
-
16
excel 複数のシートの同じ場所からコピーして1つのシートにまとめる方法
Excel(エクセル)
-
17
複数シートのデータを抽出するには?
Excel(エクセル)
-
18
【ExcelVBA】全シートのセルの数式を値に変換する事は可能でしょうか?
Visual Basic(VBA)
-
19
VBA 空白セルを削除ではない方法で詰めるやり方
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大学のレポート A4で1枚レポー...
-
Microsoft365で提供しているアプリ
-
マイクロソフト 一時使用コード...
-
office365って抵抗感ないですか?
-
Outlook 電源OFFの受診の仕方
-
Officeを開くたびの「再起動メ...
-
Microsoft Officeを2台目のPCに...
-
Excel VBA 日程表からスケジュ...
-
outlookのメールが固まってしま...
-
英数字のみ全角から半角に変換
-
マクロ自動コピペ 貼り付ける場...
-
Outlook で宛先が複数の場合の人数
-
Microsoft365で写真をアルバム...
-
【マクロ】違うブックのCallス...
-
Teams内でショートカットって貼...
-
エクセルでのパーセントの計算
-
この様式の雛形を作るとしたら...
-
ステータスバーの合計に表示さ...
-
あらかじめ用意したテンプレー...
-
別シートの年間行事表をカレン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
大学のレポート A4で1枚レポー...
-
Officeを開くたびの「再起動メ...
-
Microsoft Formsの「個人情報や...
-
one drive使えるpcを買う
-
マクロ自動コピペ 貼り付ける場...
-
PDFのハイパーリンクを自動的に変更し...
-
あらかじめ用意したテンプレー...
-
別シートの年間行事表をカレン...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
-
office365って抵抗感ないですか?
-
ステータスバーの合計に表示さ...
-
【スプレドシート】IF関数の複...
-
Teamsで課題を提出します。 画...
-
Outlook で宛先が複数の場合の人数
-
Microsoft Officeを2台目のPCに...
おすすめ情報