0

これらのグループには、使用している母集団データが1つの列に含まれています(Data1と呼びます)。

10〜14年  
15〜17歳  
18歳と19歳  
20年  
21年  
22〜24歳  
25〜29歳  
30〜34歳  
35〜39歳  
..。  
85歳以上
合計

そして、私は別のデータ(Data2と呼びます)を持っています。これを使用しているのは、グループ化する代わりに、年齢ごとに1から100までの人口を持っているだけです。

data2をdata1と同じグループにグループ化する必要があります。

私はExcelの数式(IFステートメントを使用)でそれを始めましたが、24の異なる年齢層があるので、すぐにそれをあきらめました。

数式/vba/他の方法でそれを行う簡単な方法はありますか?

4

3 に答える 3

1

あなたのデータを理解すると、Data2は年齢の生のリストであり、Data1はビニングされたデータのようです。

配列式により、生の年齢データをバインドに移動できます

=FREQUENCY(<bins>,<Data2>)

あなたのビンがどこにあるか

10
15
18
20
21
22
25
30
35
40
45
50
55
60
65
70
75
80
85

さらに、私の最初の推測があなたが望んでいたものではなかった場合は、このUDFを試すことができます...

Public Function Between(inputCell As Range, twoColBetweenRage As Range, outputLabel As Range)

    If twoColBetweenRage.Rows.Count <> outputLabel.Rows.Count Then
        Err.Raise 12345, "", "Input ranges are not equally sized"
        Exit Function
    End If

    Dim r As Integer, inputValue As Double
    inputValue = inputCell.Value
    For r = twoColBetweenRage.Row To twoColBetweenRage.Rows.Count
        If twoColBetweenRage(r, 1) <= inputValue And twoColBetweenRage(r, 2) >= inputValue Then
            Between = outputLabel(r, 1)
            Exit Function
        End If
    Next r

    If IsEmpty(Between) Then
        Err.Raise 12345, "", "No value was found"
        Exit Function
    End If

End Function
于 2012-07-23T18:15:48.790 に答える
0

2列のルックアップテーブルを作成する場合は、短い数式を使用できます。たとえば、Y2で各範囲の下限を昇順で入力します。たとえば、Y2で10 、Y3で15、Y4で18など、次に対応する行に列Zには、グループテキストを配置できます。たとえば、Z2の「10〜14年」、Z3の「15〜17年」などです。

これで、A1の特定の年齢について、この式で正しいグループを取得できます

=LOOKUP(A1,$Y$2:$Z$25)

于 2012-07-23T17:51:35.547 に答える
0

Excel 2007以降を実行している場合は、COUNTIF利用できます。

10年から14年=COUNTIF(Data2,">=10",Data2,"<=14")
15年から17年=COUNTIF(Data2,">=15",Data2,"<=17")
18年と19年=COUNTIF(Data2,">=18",Data2,"<=19")
20年=COUNTIF(Data2,"=20")
21年=COUNTIF(Data2,"=21")

等...

于 2012-07-23T20:34:45.230 に答える