dポイントプレゼントキャンペーン実施中!

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

A 回答 (3件)

 コピーするという操作は関数では出来ませんから、あくまでコピーして並べ替えるという操作に拘るという事でしたら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列に表示されます。
※添付画像が削除されました。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/03/23 17:14

 回答No.2です。



 先程の回答で間違えて違う画像を添付しておりましたので、正しい画像を添付し直します。
「エクセル関数について」の回答画像3
    • good
    • 0

簡単な方法なら手順をマクロ登録すれば良いのだろうけど、あまりにも情報がなさ過ぎて出来るかどうかがわかりません。



質問の最初の「データ(計算式含む)より コピー」の時点で、
・どういう計算式を含んでいるのか?
・値を貼り付けなのに計算式含むとはどういう意味か?(なぜ値で無いといけないのか?等)
・計算式の元は何なのか?(データベースなのか四則計算式なのか)
とわからない事だらけです。

「並べ替え」「ユーザー設定の並べ替え」「最優先されるキー」等も情報がなさ過ぎです。

これらが「可能な作業」ならマクロ登録出来ます。
「不可能な作業」ならVBAで出来るかも知れませんし、出来ないかも知れません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2014/03/23 17:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!