【エクセルVBA】データから頻度分布を算出する方法!VBA上での実行まで!

 

この記事では、以下の画像のように指定したデータから頻度分布を作成する方法をご紹介していきます。

データから頻度分布を取得するという作業イメージ図

 

またこの作業をVBA上で行うにはどうやれば良いかも解説していきます。

 

あなたの活用シーンに応じてご活用ください。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

FREQUENCY関数の使い方

エクセルには頻度を算出できるFREQUENCY関数というものがあらかじめ備わっています。

 

まずはこのFREQUENCY関数の使い方からご紹介します。

=FREQUENCY(A,B)
A:参照するデータB:頻度化する区間データ

 

ただしこの関数の出力はひとつではなく、複数のセルにまたがって出力することになりますので、通常のエクセル関数とは少し使い方が異なります。

 

実際の使い方は実演しながら説明していきます。

 

スポンサーリンク

FREQUENCY関数での頻度分布を算出を実演

それでは実際にやっていきましょう。

 

1st.step

まずは区間データを作成しておきましょう。

今回は以下のように作成しました。

FREQUENCY関数の使い方説明

注意すべき点はFREQUENCY関数は区間データに記入した数値以下の数を算出する点です。

つまり1行目は19歳以下、2行目は29歳以下(&20歳以上)という感じで算出されます。

 

目的に応じてこの区間データの数値は適宜調整しましょう。

 

2nd.step

下準備がととのったところで、実際にFREQUENCY関数を使っていきます。

 

ひとつひとつの画像を確認しながら進めていきましょう。

 

まずは先ほど記入した区間データ内の人数を算出したいセルを以下の画像のように一括選択します。

FREQUENCY関数の使い方説明

次はその選択状態を維持した状態で=FREQUENCY(と入力します。

※'(‘は閉じなくてOKです。

FREQUENCY関数の使い方説明

すると上の画像のように何を入力すべきかの説明がでてきますので、指示に従ってデータ領域を入力していきます。

今回はデータ配列がC列の年齢データ、区間配列E列のデータですね。

 

というわけで実際に入力していきます。

※ここでEnterを押さないように気を付けましょう。

FREQUENCY関数の使い方説明

 

ここまで来たらこの状態でCtrl+Shift+Enterを同時に押します。

この作業をしないと一番上のセルにしか結果が出力できませんのでご注意ください。

FREQUENCY関数の使い方説明

 

これで完成です。

FREQUENCY関数の使い方説明

 

というわけで無事算出できましたね。

 

今回のFREQUENCY関数のように複数のセルに一括で数式を適用する際(例えば行列計算をするMMULT関数なんか)は先ほどのCtrl+Shift+Enterを押すことになっていますので、覚えておくと良いでしょう。

 

スポンサーリンク

VBAでFREQUENCYを使用する方法

最後に先ほど紹介した作業をVBA上で実行するサンプルコードをご紹介します。

 

以下がそのコードです。

Sub frequency_macro()
    data_range = Range("C2:C27")
    section_range = Range("E2:E6")
    Range("F2:F6") = WorksheetFunction.Frequency(data_range, section_range)
End Sub

 

基本的にWorksheetFunctionを使ってFREQUENCY関数を呼び出し、領域指定しているだけですね。

 

こいつを実行すると先ほどと全く同じ結果が算出されていることが確認できました。

スポンサーリンク

おわりに

というわけで今回はデータから頻度分布のデータを作成する方法をご紹介しました。

 

データ分析の際などにぜひご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました