0
チーム -Excelの公式:加重中央値
私はセルB2:B70とセルC2:C70の数値を持っています。私は細胞C71を埋めるために重み付けされた中央値を見つけようとしています。加重平均は、= SUMPRODUCT($ B2:$ B70、C2:C70)/ SUM($ B2:$ B70)を使用して計算されていますが、加重平均についてはエレガントな式は考えられません。たぶん私はひどく遅いです。
ありがとうございます。
チーム -Excelの公式:加重中央値
私はセルB2:B70とセルC2:C70の数値を持っています。私は細胞C71を埋めるために重み付けされた中央値を見つけようとしています。加重平均は、= SUMPRODUCT($ B2:$ B70、C2:C70)/ SUM($ B2:$ B70)を使用して計算されていますが、加重平均についてはエレガントな式は考えられません。たぶん私はひどく遅いです。
ありがとうございます。
私はこれがあなたが望むことをすると思います。
Function WeightedMedian(ValueRange As Range, WeightRange As Range)
Dim MedianArray()
On Error GoTo WrongRanges
ArrayLength = Application.Sum(WeightRange)
ReDim MedianArray(1 To ArrayLength)
Counter = 0
ArrayCounter = 0
For Each ValueRangeCell In ValueRange
LoopCounter = LoopCounter + 1
FirstArrayPos = ArrayCounter + 1
ArrayCounter = ArrayCounter + Application.Index(WeightRange, LoopCounter)
For n = FirstArrayPos To ArrayCounter
MedianArray(n) = ValueRangeCell.Value
Next
Next
WeightedMedian = Application.Median(MedianArray)
Exit Function
WrongRanges:
WeightedMedian = CVErr(2016)
End Function
必要なアレイを作成するには、vbaまたは少なくとも2つのヘルパー列が必要です。 –
ヘルパーカラムソリューションを使用して幸いです – Mohammed