• ベストアンサー

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

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

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

  • ベストアンサー
回答No.1

結果どのようにしたいか(移すという表現から元の表から削除するのか)、 レコードの追加あり/なしでも変わってくると思う 案1 オートフィルタ→コピー&ペースト 案2 条件表を作り フィルタオプションの設定で 案3 案2をマクロの自動記録で記録して 案4 クエリを使って 案5 VBA 繰り返し構文を使って取り出し 案6 数式 I3セル 0 I4セル =IF(H4="-",I3+1,I3) 下へオートフィル K4セル 0からの連番 L3セル -の個数 =MAX(I:I) L4セル =IF(K4>=$L$3,"",MATCH(K4,$I$4:$I$1000)+1) 下へオートフィル M4セル =IF($L4="","",INDEX(A$4:A$1000,$L4)) 右へ下へオートフィル (K:O列まで 切り取り & 別シートへ貼り付け)

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 今仮に元のシートがSheet1であり、Sheet3のA列を作業列として使用して、Sheet2に自動的に移すものとします。  まず、Sheet3のA4セルに次の数式を入力して下さい。 =IF(INDEX(Sheet1!$H:$H,ROW())="-",ROW(),"")  次に、Sheet3のA4セルをコピーして、Sheet3のA5以下に貼り付けて下さい。  次に、Sheet2のA4セルに次の数式を入力して下さい。 =IF(ROWS($4:4)>COUNT(Sheet3!$A:$A),"",IF(INDEX(Sheet1!A:A,SMALL(Sheet3!$A:$A,ROWS($4:4)))="","",INDEX(Sheet1!A:A,SMALL(Sheet3!$A:$A,ROWS($4:4)))))  次に、Sheet2のA4セルをコピーして、Sheet2のA列~L列の4行目以下に貼り付けて下さい。

kurekota
質問者

補足

移動できません。 もう一度教えて下さい、。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

エクセルのフィルターオプションの機能を利用すると良いです http://www.eurus.dti.ne.jp/yoneyama/Excel/filter3.htm を参考にしてください。 考え方は(添付の画像が滲んでいて文字が読めないですが) H列の項目が - の行のデータを別のシートの抽出する という事ですよね。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問の画像に余り沢山の行数のシート部分を貼り付けないこと。未時が小さくなり、拡大しても判別できないよ。 (1)-を含むでオートフィルタをかけて、コピーして張り付ける 「オプション」を選び、左のボックス「-」右側のボックス「を含む」 編集ージャンプーセル選択ー可視しセルー 編集ーコピー 貼り付けする上のセルを選択して編集ー貼り付け ーーーー データーフィルターフィルタオプションの設定なら 条件を 見出しの下に *-* 例データ xx 1234 12-345 asc-wer1 w234-34 wer345 条件 xx *-* 結果 xx 12-345 asc-wer1 w234-34 ーーーー >自動的に移す どういうイメージで言っているのか、あいまいな表現だ。 自動的とは (1)操作で (2)関数で (3)VBAなど使って をはっきりさせること。 ーー 関数でやるなら、抜き出し問題ということになる。 上記例(Sheet3とする)で B2セルに =IF(NOT(ISERROR(FIND("-",A2))),MAX($B$1:B1)+1,"") 下方向に式を複写 結果 Sheet3 A列   B列 xx 1234 12-345 1 asc-wer1 2 w234-34 3 wer345 Sheet4で B2セル =INDEX(Sheet3!A2:A6,MATCH(ROW()-1,Sheet3!B2:B6,0),1) 下方向に式複写。 結果 12-345 asc-wer1 w234-34 詳しくはGoogleで「imogasi方式」で照会。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

「移す」のでしたら,もうすでにアナタが取り付けているオートフィルタで「-」の行を絞り込み,選んでCtrl+Xで切り取って,別のシートに貼り付けるのが一番簡単です。 #余談 ただし言わずもがなですが,-の行を移してしまっても(残った行の計算が)問題ないように,数式は考えて作っておかないといけませんね。 ご質問の内容ではないので勿論上手く作成済みなのだと思いますが,もしも行を移動したら軒並みエラーになってしまって実はそっちで困っていますみたいなお話だったときは,改めて具体的な何を計算しているのかどこで困っているのかの様子を添えて,別途ご相談を投稿し直してみてください。

関連するQ&A