• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの関数式について)

エクセルで回数順に並べる方法は?

このQ&Aのポイント
  • エクセルを使用して、日時ごとに書籍を貸し出した順に並べる方法を教えてください。
  • シート1に作成したデータを、シート2で月ごとに貸し出した本の順位付けを行いたいですが、うまくいきません。どのような関数を使えば良いでしょうか?
  • エクセルで順位付けを行う方法や、より効率的なデータ管理の方法について教えてください。

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

  • ベストアンサー
  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.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列のデーターに合わせる) 以下、下にコピー

yukimusu
質問者

お礼

お礼が遅くなり申しわけありません。 詳しい説明ありがとうございました。 思いもつかなかった式なので少しずつ噛み砕いて理解&構成をしていこうと思います。

関連するQ&A