• ベストアンサー

エクセル関数について

データ(計算式含む)より コピー 、形式を選択して貼り付け、値、OKで貼り付けています。次にこのデータを 並べ替え、ユーザー設定の並べ替え、最優先されるキー、降順、で並び替えています。この一連の流れを自動で行いたいのですが、私の技量ではできません。だれか教えてください。よろしくお願いします。

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

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

 コピーするという操作は関数では出来ませんから、あくまでコピーして並べ替えるという操作に拘るという事でしたらVBA等のマクロで行わねばなりません。  しかしながら、コピーするのではなく、特定の列を基準に並べ替えた結果と"同じ値"を、別の列に表示させる事なら、関数と作業列を使って行う事が出来ます。  御質問文中では、元データが何処に入力されているのかという事や、何処に貼り付ければ良いのかという事、並べ替えを行う基準はどの列なのかという事、等々、何も説明されておりませんので、次の様な仮定の下で話を進めさせて頂きます。 ●元データはSheet1のA列~C列に入力されている ●Sheet1の2行目まではタイトルや項目名を入力するために使用されていて、並べ替えの対象となるデータは3行目以下に入力されている ●元データのB列のデータをキーに、降順で並べ替える ●Sheet3のA列~C列、Sheet2のA3セルに並べ替えた結果を表示させる  又、Sheet2のA列を作業列として使用するものとします。  まず、Sheet2のA3セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$B:$B,ROW())="","",(COUNTIF(Sheet1!$B:$B,">"&INDEX(Sheet1!$B:$B,ROW()))+ISNUMBER(INDEX(Sheet1!$B:$B,ROW()))*COUNTIF(Sheet1!$B:$B,"*?"))*10000000+ROW())  次に、Sheet2のA3セルをコピーして、Sheet2のA4以下に貼り付けて下さい。  次に、Sheet3のA3セルに次の関数を入力して下さい。 =IF(ROWS($3:3)>COUNT(Sheet2!$A:$A),"",IF(INDEX(Sheet1!$A:$C,MOD(SMALL(Sheet2!$A:$A,ROWS($3:3)),10000000),COLUMNS($A:A))="","",INDEX(Sheet1!$A:$C,MOD(SMALL(Sheet2!$A:$A,ROWS($3:3)),10000000),COLUMNS($A:A))))  次に、Sheet3のA3セルをコピーして、Sheet3のB3~C3の範囲に貼り付けて下さい。  次に、Sheet3のA3~C3の範囲をコピーして、同じ列範囲の4行目以下に貼り付けて下さい。  これで、Sheet1のA列~C列のデータを、B列が降順となる様に並べ替えた結果が、Sheet3のA列~C列に表示されます。

この投稿のマルチメディアは削除されているためご覧いただけません。
handenasi
質問者

お礼

ありがとうございました。 申しわけありませんが、私には、理解できませんでした。 質問の仕方を考え直して、再度、質問いたします。その時は、よろしくお願いします。

その他の回答 (2)

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

 回答No.2です。  先程の回答で間違えて違う画像を添付しておりましたので、正しい画像を添付し直します。

回答No.1

簡単な方法なら手順をマクロ登録すれば良いのだろうけど、あまりにも情報がなさ過ぎて出来るかどうかがわかりません。 質問の最初の「データ(計算式含む)より コピー」の時点で、 ・どういう計算式を含んでいるのか? ・値を貼り付けなのに計算式含むとはどういう意味か?(なぜ値で無いといけないのか?等) ・計算式の元は何なのか?(データベースなのか四則計算式なのか) とわからない事だらけです。 「並べ替え」「ユーザー設定の並べ替え」「最優先されるキー」等も情報がなさ過ぎです。 これらが「可能な作業」ならマクロ登録出来ます。 「不可能な作業」ならVBAで出来るかも知れませんし、出来ないかも知れません。

handenasi
質問者

お礼

ありがとうございました。 質問の仕方を考えます。

関連するQ&A