• ベストアンサー

特定の文字を含む行だけを他のシートに引き出す方法

既存の表からA列に「H19」という文字を含む行だけを他のシートにそっくりそのまま引き出したいのですが、関数で実現しようと思った場合どうすればよいでしょうか? 手動でするにも数が多いのと、年度ごとのシートを作成するためH19以前H18・H17と作業を続けるのも大変なので、困っています。 お知恵があればお教えください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

#1です。 マクロでやられるならこんな感じでしょうか。 サンプルコードを書いてみました。 Sub test() Dim ret As String, ws As Worksheet With ActiveSheet If .AutoFilterMode Then .Cells.AutoFilter '一旦AutoFilterを解除し End If ret = InputBox("抽出対象文字を入力してね。", " 。(^o^)/ ") .Columns("A:A").AutoFilter '再度A列にAutoFilter設定 .Columns("A:A").AutoFilter Field:=1, Criteria1:="=*" & ret & "*" '抽出 .Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).Copy 'コピー Set ws = Worksheets.Add(After:=ActiveSheet) '新ワークシート挿入 ws.Name = ret '新ワークシート名を抽出文字列に変更 ws.Range("A1").PasteSpecial '貼り付け Application.CutCopyMode = False .AutoFilterMode = False 'AutoFilterを解除し End With End Sub

r2san
質問者

お礼

ご回答ありがとうございました。 かなりわかりやすいコードで助かりました。

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

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

メニューのデータ、フィルター、オートフィルターでその表にフィルターをかけてH19という文字を含む行だけを表示させてコピーすれば簡単だと思いますが。

r2san
質問者

お礼

なるほど、ありがとうございました。 大変わかりやすく、参考になりました。 マクロ記録して、自動化できるようにがんばってみます。

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

関連するQ&A

  • エクセルで特定の文字の行を他のシートに自動的に移す

    はじめまして、困っています。 誰か教えて下さい。 列Hの特定の文字”-”の行を、他のシートに自動に移したいのですがどのようにする場良いでしょうか? 教えて下さい。

  • 表から指定した行のみを別シートに抽出するには

    エクセル2002 ある表から、集計表として別のシートに行を抽出できる関数をおしえてください。 【シート1】      O列  P列  Q列  R列  S列  T列  U列    行9  種類  厚さ   w    H  枚数  か所   計 行10    行11 AAA  t6.8  1500  2000   3    3     9   | | 行15 AAA   t3   1000  2000   2    1     2 行16 bbb   t6.8  500   1500   1    3     3  : : という表から別のシートに 集計表として 【シート1】集計表AAA     O列  P列  Q列  R列  S列  T列  U列    行3  種類  厚さ   w   H   枚数 か所   計 行4  AAA  t3   1000  2000   2    1    2 行5  AAA  t6.8  1500  2000   3    3    9  | | 行15 AAA   t3   1000  2000   2    1    2 行16    : のように抽出する関数を教えてください。 出来れば集計表の横に種類ごとに選択したら、種類ごとに表示が変わるようならばよいのですが。。。  関数初挑戦のため大変なことになりそうな気もします。。。   皆様、ご教授のほどよろしくお願い致します。

  • 2013特定文字のセル行を別シートにコピーのマクロ

    こんにちは。 Excel 2013を使用しています。 AからAKまでの列、100行ほど(行数は変化する)の表があります。 A行にアルファベットと数字の文字列があります。 その文字列は最初の7文字がアルファベットで後の9文字が数字です。 文字列に法則がありますので手作業では以下のように抽出して 別のシートにコピーしています。 表全体を範囲指定して、「データ」-->「フィルター」-->A列で「テキストフィルター」 -->「ユーザー設定フィルター」-->「抽出条件の指定」-->「??BJ*と等しい」 (A列の3,4文字目がBJになっているものを抽出しています) 「ホーム」-->「検索と選択」-->「可視セル」-->コピーして別シートにペースト この作業は手作業でもマクロの記録でも時間がかかります。 ほかに良い方法があればそれをマクロ化したいと思います。 PCに負担のかからない早くできる方法をご存じの方お教えください。

  • エクセル:文字列間の行を抽出

    エクセルファイルで1つのシートに複数の表がひたすら縦に並んでいます。それぞれの表が別々のシートに記載されるようにしたいと思っています。 どの表も基本的な書式は同じなので列数は同じなのですが、行数は表ごとに異なります。 また各表の右下(C列)にTotalという文字列が必ずあります。 文字列Totalがある行の直下の行から次のTotalのある行まで抽出して、シートを作成できれば良いのだと思うのですが、どうすれば可能になるのか分かりません。 どなたか教えていただけ無いでしょうか。

  • EXCELのシート間コピーについて教えてください!

    いつもお世話になります。 また、皆様のお知恵をお貸しください。 ブックにSHEET(1)とSHEET(2)があります。 SHEET(1)のD列の1行目から300行程度まで文字列が入力されております。 下記の作業をSHEET(1)のD列の文字列が終了するまでマクロ等を使って自動化したいです。 1    SHEET(2)のD列の1行目から12行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー 2   印刷 3   SHEET(2)のD列の13行目から24行目までの文字列をSHEET(2)のB1,B4,B7,B10,E1,E4,E7,E10,H1,H4,H7,H10の順にコピー 4   印刷 よろしくお願いします。

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

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

  • エクセル 特定文字の記入された行全てを取消表示

    住所録で、連絡の付かない人の備考欄(eの列)に @ の文字を入力しています。 例えば、10行まである住所録のうち、2行目と3行目のeの列に@が入力されているとき、 2行目と3行目をif関数などを使用して全て取消し表示したいのですが、どうしたらよいでしょうか。 ※実際は住所録は300行ほどあって、いちいち手動で@の文字の列を選んで修正・・・ という作業が手間となっています。

  • 【Excel】1,2行目+個人行→シート別に分ける

    こんにちは。 行が3000行強、列が110列ほどの名簿があります。 1、2行目は見出しで、「名前」「ID」「部署」・・・・というような感じで、 3行目から個人の情報がズラーーっと並んでいます。 この表の1,2行目+個人の1行を1シートにしたいです。 (つまり3000行を一行ずつ1シートに抽出したいということです) 目的は、「あなたの名簿にはこのような情報がありますよ~」を1枚の紙にまとめて、個人別に配布することです。 10人くらいならまだ手作業でコピペできるんですが、3000人を超えているので、できればマクロや関数で一気に作りたいです。 1,2行目+個人の行を1シートにまとめる技をご教授ください。 また、最終的には印刷しますので、印刷しやすい形にできたらしたいです。 何か案があればよろしくお願いします。

  • 列と行にある指定文字が一致したセルの一行下の値

    表2セル"A"を表1B列から探し同行にある"合計"という文字の1行下の数値及び2行下の数値を表2のH4,H5セルに入力し同様に"B","C"に対しても行いたいのですがどなたか関数が解る方よろしくお願いします。環境はoffice2019です。

  • エクセル 特定の行を表示させるには…

    エクセル初心者です。 以前、ここで教えていただいたのですが、 さらに問題が出てしまいまして…どうかご教授ください。 前回同様、機材の貸し出しの表についてですが、 受付日、貸し出し機材、貸し出し先、使用時間を月ごとに別シートにまとめるというのは、 おかげさまでできました。(ありがとうございます!) http://okwave.jp/qa/q8328679.html →前回の質問です。 そこに、備考として「どこから受注を受けたか」という欄があり、 【海外】【国内】のどちらかに該当しているのですが、 以前の方法で作ったデータから、更に【海外】【国内】どちらかのデータを、 同じシートもしくは、別なシートに表示させたいのです…。 それで、私は別シートに表示させるようにしようと思い、 検索列を設け、「海外」または「国内」と打ち込むと、 その一覧が出るような表を作成しようとしました。 以下のように作ったのですが…。 ベタ打ちした表から、 機器コード、使用機器の名称、使用部、使用時間、海外/国内、検索列 を表示させた表を作りました(シート1)。 尚、機器コード~検索列までは、Aから順番の列にはなっていません。 途中に表示させたくない欄もあることから、いくつか非表示としている列があり、 機器コード=A列、使用機器の名称=D列、のように飛び飛びになっています。 検索列に  =IF(ISERROR(MATCH('Sheet2'!$E$4,N4,0)),"",ROW()) このような関数を入れました。(「海外」もしくは「国内」の行を探し、カウントするため) シート2には、 機器コード、使用機器の名称、使用部、使用時間、検索行、該当数 という欄を作りました。 ↑A3~F3 =IF(ROW()-1<=$F$4,INDEX(Sheet1!A:A,SMALL(Sheet1!$N:$N,ROW()-1),1),"") 機器コードの欄の実際値が入るセル(A4)に、上記の関数を入れました。 「検索行」には「海外」もしくは「国内」と入れると、一覧が出るように、 「該当数」にはその表示させた一覧の合計数が出るようにしようと思い…。 「該当数」の値が入るセル(Sheet2のF4)には、「=COUNTIF(Sheet1!N:N,E4)」 という関数を入れました。 Sheet2の該当数とSheet1の検索列には正しい値が返されていると思うのですが、 (試しに「海外」と打ち込んでみたところ、該当数は正しい数字が表示され、  検索列も正しい列番号が表示されていました) 肝心の機器コード~使用時間までの一覧が表示できません。 説明が下手で申し訳ないのですが、どうすれば正しく表示されるか教えていただけないでしょうか。 この関数に限りらず、別な関数でも構いません。 ただ、あくまで関数での表示を希望しています。 オートフィル機能・マクロ以外で教えていただきたいので、よろしくお願いいたします。

このQ&Aのポイント
  • Yoga770のディスプレイにザラザラとした模様がついている問題が発生しています。
  • ハードウェア側の問題と思われ、OS側の問題ではないと考えられます。
  • また、キーボードの反応も悪く、速度が制限されてしまっているようです。
回答を見る

専門家に質問してみよう