• ベストアンサー

エクセル並べ替え教えてください

エクセルに詳しい方教えてください、お願いします。 シート1のA1セルに名前B1に住所C1に・・2行目以降も同じようにデータを入力し 各列の最後に移し変えたい行データに○を入力したものを、丸印の行データのみを、シート2の1行目から順番に移し変えが出来るようにしたいのですが    A    B    C    D    E 1 名前  住所 電話  データ   ○ 2 3                      ○ 4 1行目と3行目の○をつけた行データを別のシートの1行目、2行目と順番に移し変える方法を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

>やってみましたが反応がありませんでした。 ⇒shift+ctrl+enterキーを同時押下すると数式が{ }で囲まれていますでしょうか、以下の操作をお試しください。  (1)計算式をコピー  (2)貼り付け先セルで右クリック→形式を選択して貼り付け→テキストを選択→OK  (3)F2キー押下→shift+ctrl+enterキーを同時押下 >ちなみにご指示いただいた計算式をそのままコピーし貼り付けましたがそれがいけなかったのでしょうか? ⇒シート名(Sheet1)やE列が間違っていなければ問題ないと思います。

metabodog
質問者

お礼

mu2011様 出来ました!! すごいです。シート2のデータが表示されないセルにもN/Aエラーが出ません! 大満足です。 大変助かりました。エクセル関数ってすごいですね、ありがとうございました。

その他の回答 (3)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 オートフィルタ、フィルターオプションの設定で抽出する方が簡単ですが、数式で抽出する方法は如何でしょうか。 (1)元シートをsheet1としています。 (2)抽出シートのA1に以下の数式を入力、縦横にコピーして下さい。    配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =IF(COUNTIF(Sheet1!$E:$E,"○")>ROW(A1)-1,INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$E$1:$E$100="○",ROW(Sheet1!$A$1:$A$100),99999),ROW(A1))),"")

metabodog
質問者

お礼

ありがとうございます。 >配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 やってみましたが反応がありませんでした。 いろいろ試してみたんですが、私の力量では難問です やり方が間違っているのでしょうか?上手くいきませんでした。 ちなみにご指示いただいた計算式をそのままコピーし貼り付けましたが それがいけなかったのでしょうか?

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

並べ替えではなく、抽出というべきで、良く出てくる課題です。下記は一例です。「抽出」で検索すると、OKWave内でも沢山hitすると思います。 http://okwave.jp/qa5008528.html 作業列を使わない、関数で行う方法もある様ですが、難解で当方には理解不能です。オートフィルターとマクロの組み合わせでやる方が、数行で済んで良いと思いますが...

metabodog
質問者

補足

あ早速のご指導ありがとうございます。 ご紹介いただきましたmitarasi様の下記手法を参考にさせていただいて 見事で来ました!感激です!情報提供に感謝申し上げます。 しかし >#N/Aだらけになりますので・・ これを非表示にすることが出来ません。 いろいろ試してみたんですが、私の力量では難問です。 どなたかお教え頂ければありがたいのですが・・ >元データがSheet1にあるとします。 >Sheet2に下記のように式を入れます。   A B       C        D  E 1      2 2 △△△会社 ■■■案件 100 ○ 3 5 ○○○会社 ◆◆◆案件 300 ○ 4 6 ▼▼▼会社 ■■■案件 100 ○ >一行目は空けて下さい(A列の式を複写して使うための苦肉の策) >A2の式:=MATCH("○",INDIRECT("Sheet1!$D$"&(A1+1)&":$D$100"),0)+A1 >以下、下方に複写($100の所は余裕を持たせて適当な大きな値に設定して下さい。) >B2の式:=INDEX(Sheet1!$A$1:$D$6,$A2,COLUMN(A2)) >以下、下方・右方に複写(元データの範囲は適宜変更して下さい) >Sheet1にデータが無い行は#N/Aだらけになりますので、 >ご自分でエラー処理を付け加えるか、条件付書式でフォントが白色になる設定をしてください。

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

ご質問の意味を勘違いしていなければよいのですが(汗) 以下の操作をしてみてください: 1)データが入力された範囲内のセル(A1セルなど)を選択 2)Excelのメニューで、「データ(D)→フィルタ(F)→オート フィルタ(F)」を選択 3)各列に「▼」が表示されるので、E列のそれをクリックして、「○」を選択  →「○」の行のみが表示される 4)A1セルの左上の空白(?)部分をクリックするなどしてシート全体を選択 5)「Ctrl+C」の同時押し等でコピー 6)シート2のA1セルを選択 7)「Ctrl+V」の同時押し等で貼り付け  →シート1で表示対象となっていた行だけが貼り付けられる ・・・以上です。

metabodog
質問者

お礼

早速のご指導ありがとうございます。 私の質問の仕方が上手くできなかったのですが、シート1の各データの一番後ろに○を入力するとシート2に上から順番にコピーされるようにしたかったのですが・・ しかしご指導いただいた手法も別の意味で参考になりました。 ありがとうございました。

関連するQ&A