- ベストアンサー
EXCEL フイルタリング後の列の移動
A列を NO で フイルターをかけて A B C D E 10 NO 事務所の別 事務所の名称 所在地 電話番号 50 NO 事務所の別 事務所の名称 所在地 電話番号 のデーターを A,Bのデータを削除し A B C 10 事務所の名称 所在地 電話番号 50 事務所の名称 所在地 電話番号 上のように 左に 移動したいのですが。データーが多くて何か方法はありませんか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ああ、こういうことありますね。 少し手間ですが、1行ずつ直すよりましなのでつぎのようにやってます。 失敗すると怖いのでバックアップを取ってからやってください。 フィルタをかけずに行います。 (1) どこか空いている列(または追加した列)を作業列に決めます。 (2) 作業列に上から順に連番を入れていきます。(オートフィルを使ったら楽です) (3) データのある行範囲をA列をキーとしてソートします。 (4) そうするとNOの入っている行は一か所に集まるので、普通に範囲選択して左に移動させます。(フィルタがかかっていないので簡単です) (5) データの順序をもとに戻すために、データのある行範囲を作業列をキーとしてソートします。 (6) 作業列の内容を消します。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1にお示しのデータが有るとしたら関数を使って例えばシート2に表示させるのが比較的簡単で良いでしょう。 例えばお示しのデータが1行目は項目名で2行目から下方に入力されているとして例えばF列までの表になっているとします。 そこでG列を作業列としてG2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",A2&"/"&COUNTIF(A$2:A2,A2)) シート2ではA1セルに検索NOとでも文字列を入力しB1セルに検索したいNOを入力します。 2行目は項目が入るとしてA3セルには次の式を入力してE3セルまで右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>COUNTIF(Sheet1!$A:$A,$B$1),"",IF(INDEX(Sheet1!$B:$F,MATCH($B$1&"/"&ROW(A1),Sheet1!$G:$G,0),COLUMN(A1))=0,"",INDEX(Sheet1!$B:$F,MATCH($B$1&"/"&ROW(A1),Sheet1!$G:$G,0),COLUMN(A1)))) これでB1セルに検索のNOを入力すればNOを除いたお望みの表が自動的に表示されます。フィルタや列の削除などの操作は全く必要が有りません。
お礼
ありがとうございます。質問の仕方が悪かったと思います。A列からE列にもデータが入ってます。1-9まで規(則性があります。10行目11行目etcのA10、B10、A11、B11を削除し2セル左に移動したいのです。C10,D10,E10,C11,D11,E11のデーターが2個分左にシフト)
お礼
5000件近いデータの作業を終了することができました。(今までは、一行ずつ手直ししてました) ありがとうございます。
補足
ありがとうございます。 (4)で フィルタがかかっていないので簡単です 理想はフィルタがかかった状態で 削除 左に移動はできないでしょうか?