[[20141029135716]] 『データーの並び替え』(ラー油) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『データーの並び替え』(ラー油)

初めまして
教えて頂けたらうれしいです

A1〜E3迄 数値が入ってます
A4のセルから横に重複が多い数値 順位に並べる方法って
有りますか
あつかましいと思いますが

教えて頂けないでしょうか

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 Sub test()
    Dim R As Range
    Dim i As Long
    Dim j As Long
    Dim iw As Long
    Dim iCou As Long
    Dim iFlag As Long
    Dim iDim() As Long

    For Each R In Range("A1:E3")
        iFlag = 0
        For i = 0 To iCou - 1
            If iDim(0, i) = R.Value Then
                iDim(1, i) = iDim(1, i) + 1
                iFlag = 1
                Exit For
            End If
        Next i
        If iFlag = 0 Then
            ReDim Preserve iDim(1, iCou)
            iDim(0, iCou) = R.Value
            iDim(1, iCou) = 1
            iCou = iCou + 1
        End If
    Next

    For i = 0 To iCou - 1
        For j = i + 1 To iCou - 1
            If iDim(1, i) < iDim(1, j) Then
                iw = iDim(0, j)
                iDim(0, j) = iDim(0, i)
                iDim(0, i) = iw
                iw = iDim(1, j)
                iDim(1, j) = iDim(1, i)
                iDim(1, i) = iw
            End If
        Next j
    Next i

    For i = 0 To iCou - 1
        Cells(4, 1 + i).Value = iDim(0, i)
'        Cells(5, 1 + i).Value = iDim(1, i)
    Next i
End Sub
(???) 2014/10/29(水) 14:45

???様
早速のご回答ありがとうございます
本当に助かりました
(ラー油) 2014/10/29(水) 15:04

 無理やり関数で。
 A4セルに
 =IF(COUNT(0/FREQUENCY($A$1:$E$3,$A$1:$E$3))<COLUMN(A1),"",MOD(LARGE(FREQUENCY($A$1:$E$3,ROW(1:999))+ROW(1:1000)/1000,COLUMN(A1)),1)*1000)
 と入力してShiftキーとCtrlキーを押しながらEnterキーで確定。
 (確定後、式が{}で囲まれればOK)
 その後、右へフィルコピー。

 なお、上記式はA1セルからE3セルに入力される値が1000未満の場合。
 1000以上10000未満の値も入力される場合は
 =IF(COUNT(0/FREQUENCY($A$1:$E$3,$A$1:$E$3))<COLUMN(A1),"",MOD(LARGE(FREQUENCY($A$1:$E$3,ROW(1:9999))+ROW(1:10000)/10000,COLUMN(A1)),1)*10000)
 で。

(ねむねむ) 2014/10/29(水) 15:15


むねむねさん
関数でも行けるのですね
数値は最大2ケタですので
有難う御座いました
(ラー油) 2014/10/29(水) 15:17

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.