- ベストアンサー
エクセルで回数順に並べる方法は?
- エクセルを使用して、日時ごとに書籍を貸し出した順に並べる方法を教えてください。
- シート1に作成したデータを、シート2で月ごとに貸し出した本の順位付けを行いたいですが、うまくいきません。どのような関数を使えば良いでしょうか?
- エクセルで順位付けを行う方法や、より効率的なデータ管理の方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>こういったことはエクセルで作ることは出来ないのでしょうか 出来ますよ ただ、書籍名の「一覧表」は作成しなければなりません それが出来れば、COUNTIF と RANK 関数で出来ます 「シート2」に書籍名を1列にコピーするマクロ(VBA) ------------------- Sub syo() Dim sdata(100) sc1 = 1 sl2 = 2 Do Sheets("シート1").Select sl1 = 2 If Cells(sl1, sc1) <> "" Then Do Until Cells(sl1, sc1) = "" sdata(sl1) = Cells(sl1, sc1) sl1 = sl1 + 1 Loop Sheets("シート2").Select For i = 2 To sl1 Cells(sl2, 1) = sdata(i) sl2 = sl2 + 1 Next sc1 = sc1 + 1 Else Exit Do End If Loop End Sub ------------------- (実行上の注意) シートの下のタブに表示されているシート名が、 上記の"シート1"、"シート2"と同じにする 月末の右の列は空白であること これを、「標準モジュール」で実行すると 書式名がシート2のA列に1列にコピーされます 次にA2から下までを選択し、「並べ替え」を実行 B2以下に次の式を入れます B2 =IF(A2=A3,"",A2) 以下コピー B1に「書籍名」とでも入れて、オートフィルターを設定します そして、「空白以外のセル」をクリックすると、一覧表が出来ます それを範囲指定して、コピー、C列に貼り付けます オートフィルターを解除 (「すべて」をクリック) D列とE列に次の式を入れます D =COUNTIF(A$2:A$17,C5) (範囲はA列のデーターに合わせる) E =RANK(D5,D$5:D$10) (範囲はA列のデーターに合わせる) 以下、下にコピー
お礼
お礼が遅くなり申しわけありません。 詳しい説明ありがとうございました。 思いもつかなかった式なので少しずつ噛み砕いて理解&構成をしていこうと思います。