0

さまざまなデータの中央値を計算するのに役立つ Excel の数式を探しています。

1   45 
2   54
3   26
4   12
1   34
2   23
3   9

ここで、B1:B4、次に B5:B8 からデータの中央値を計算し、数値が中央値よりも小さい/等しい/大きいかどうかを出力する必要があります。

=IF(MEDIAN($B$1:$B$4)<B1;"g";IF(MEDIAN($B$1:$B$4)=B1;"e";"l"))

ただし、これは異なるセットの中央値を計算するのには役立ちません。

私は何をすべきか?

助けてくれてありがとう!

4

2 に答える 2

0

ここには 3 つの問題があります。

  1. あなたの最初の列はグループ識別子ではなくシーケンスです
  2. =MEDIANIF() はありません
  3. ピボットテーブルも中央値をサポートしていません

良い出発点ではありません....

1,2,3,4,1,2,3, ...広告 #1、方向を変えて、何が1,1,1,1, 2,2,2, ...一緒に属しているかを示すことができます

広告 #2、#3 ... VBA で関数 =MEDIANIF() を定義することをお勧めします。例:

Function MedianIf(R As Range, Cr As Variant) As Variant
Dim Idx As Integer, Jdx As Integer, A() As Variant, CCnt As Integer, Tmp As Variant

    ' find array size
    CCnt = 0
    For Idx = 1 To R.Rows.Count
        If R(Idx, 1) = Cr Then CCnt = CCnt + 1
    Next Idx

    'dim array
    ReDim A(CCnt - 1)

    ' load from range into array
    CCnt = 0
    For Idx = 1 To R.Rows.Count
        If R(Idx, 1) = Cr Then
            A(CCnt) = R(Idx, 2)
            CCnt = CCnt + 1
        End If
    Next Idx

    ' bubble sort
    For Jdx = CCnt - 1 To 0 Step -1
        For Idx = 0 To Jdx - 1
            If A(Idx) > A(Idx + 1) Then
                Tmp = A(Idx)
                A(Idx) = A(Idx + 1)
                A(Idx + 1) = Tmp
            End If
        Next Idx
    Next Jdx

    ' get Median
    If CCnt Mod 2 = 1 Then
        MedianIf = A(Int(CCnt / 2))
    Else
        MedianIf = (A(CCnt / 2 - 1) + A(CCnt / 2)) / 2
    End If

End Function

この関数を使用するには、幅が 2 列、下が x 行の範囲を選択します。

=MedianIF($A$1:$B$7,A1)

これで、=IF(.... , "g", ...) で新しい関数を使用できるようになりました。

したがって、すべての範囲に対して 1 つの式を使用できます .... 注意: バブル ソートは、大きな範囲ではあまり経済的ではありません

于 2011-09-26T08:42:37.560 に答える
0

B1 が B1:B4 と B5:B8 の両方の中央値 (この場合は 29.25) の中央値より大きい、小さい、または等しいかどうかを確認するには、次のようなものを使用できます。

=IF(B1>(MEDIAN(MEDIAN(B1:B4),MEDIAN(B5:B7))),"g",IF(B1=(MEDIAN(MEDIAN(B1:B4),MEDIAN(B5:B7))),"e","l"))

B1:B4 に対してチェックしたいだけの場合 (例のように)、次を使用できます。

=IF(B1>MEDIAN(B1:B4),"g",IF(B1=MEDIAN(B1:B4),"e","l"))

更新:以下のコメントによると、C1に書き込んでC4にドラッグできるものは次のとおりです。

=IF(B1>MEDIAN($B$1:$B$4),B1&">"&MEDIAN($B$1:$B$4),IF(B1=MEDIAN($B$1:$B$4),B1&"="&MEDIAN($B$1:$B$4),B1&"<"&MEDIAN($B$1:$B$4)))
于 2011-09-26T07:52:58.973 に答える