当サイトはアフィリエイト広告を利用しています。
今回は、Excelでチェックボックスを集計する方法をご紹介します。
チェックボックスが大量にある場合、目視で集計すると時間がかかってしまいますが、この方法なら一瞬で集計できます。
複数ファイルを集計する方法もご紹介しますので、アンケートの集計などを行いたい方もぜひ参考にしてみてくださいね。
Excelでチェックボックスを集計する方法
Excelでチェックボックスを集計するには、チェックボックスをセルとリンクさせたうえでCOUNTIF関数を使います。
COUNTIF関数(カウントイフ関数)とは、単一の条件に一致するセルの個数を求める関数です。
COUNTIF(範囲, 検索条件)
- 範囲(必須)
- 検索する範囲を指定する。
- 検索条件(必須)
- 検索する条件を指定する。
(例)A2~A13にあるチェックボックスのレ点の個数を集計してE2に表示する。
まずA2のチェックボックスを選択して右クリックし、「コントロールの書式設定」を選択します。
「コントロールの書式設定」が表示されたら、「コントロール」タブ⇒「リンクするセル」の入力ボックスにカーソルを置く⇒レ点の有無を表示したいセルをクリック⇒「OK」をクリックします。
すると、チェックボックスにレ点が付いていたらリンクしたセルに「TRUE」と、付いていなければ「FALSE」と表示されます。
チェックボックスの数だけこの作業を繰り返します。
E2に=COUNTIF(C2:C13,TRUE)
と入力すると、レ点の個数が表示されます。
チェックボックスの全体数を表示する方法
チェックボックスの全体数を集計するには、COUNTA関数を使います。
COUNTA関数(カウントエー関数)は、空白ではないセルの個数を求める関数です。
COUNTA(値1, [値2], …)
- 値1(必須)
- 検索する範囲を指定する。
- 値2(省略可)
- 検索する追加の範囲を指定する。
なお、「値」は最大255個まで指定できます。
(例)B2~B13の項目の個数を集計してF2に表示する。
F2に=COUNTA(B2:B13)
と入力すると、項目の個数が表示されます。
チェックボックスの全体数とレ点の個数が一致していない場合にセルに色を付ける方法
チェックボックスの全体数とレ点の個数が一致していない場合にセルに色を付けるには、条件付き書式を使います。
(例)E2の値がF2の値と一致していなければF2のセルに色を付ける。
E2を選択して「ホーム」タブ⇒「条件付き書式」⇒「新しいルール」を選択します。
「新しい書式ルール」が表示されたら「数式を使用して、書式設定するセルを決定」⇒=E2<F2
と入力して「書式」をクリックします。
「セルの書式設定」が表示されたら「塗りつぶし」タブを開き、セルの色を選択して「OK」をクリックします。
「新しい書式ルール」に戻ったら「OK」を押して完了です。これでE2の値がF2の値未満の場合、E2のセルに色が付きます。
Excelで複数ファイルのチェックボックスを集計する方法
Excelで複数ファイルのチェックボックスを集計するには、チェックボックスをセルとリンクさせたうえでマクロを使います。
マクロの使い方がわからない方は、先に以下の記事をご覧ください。
ご紹介するマクロは、以下の条件をすべて満たす場合に使えます。
- 集計したいファイルがすべて同じ様式である
- 集計したいシートがすべて1番目のシートである
- 集計したいファイルがすべて同じフォルダに入っている
まず集計したいファイルを同じフォルダに入れます。集計結果を表示するファイルは別の場所に作成します。
今回の例では集計したいファイルはすべて以下のような様式になります。前述の方法でチェックボックスとセルをリンクさせておく必要があります。
集計結果を表示するファイルでVBEを起動し、標準モジュールに以下のコードを貼り付けます。
Sub フォルダ指定()
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
ActiveSheet.Range("B1").Value = .SelectedItems(1) ' B1にフォルダのパスを表示
End With
End Sub
Sub アンケート集計()
Dim folderPath As String
Dim bookName As String
Dim i As Long
Dim r As Long
folderPath = ActiveSheet.Range("B1").Value ' フォルダのパス
bookName = Dir(folderPath & "\*.xls*") ' ブック名
Application.ScreenUpdating = False
ActiveSheet.Range("B6:B8") = 0 ' 集計結果を表示するB6:B8の値をリセット
Do Until bookName = "" ' ブックがなくなるまで繰り返す
Workbooks.Open (folderPath & "\" & bookName)
r = 6 ' 集計結果を表示する最初のセルの行番号
For i = 2 To 4 ' 集計したいファイルの2行目から4行目までをチェック
If Worksheets(1).Cells(i, 3) = True Then ' 1番目のシートにチェックが付いていたら
ThisWorkbook.ActiveSheet.Cells(r, 2) = ThisWorkbook.ActiveSheet.Cells(r, 2) + 1
End If
r = r + 1
Next
Workbooks(bookName).Close
bookName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "集計が完了しました。"
End Sub
「フォルダ指定」マクロは、集計ファイルが入ったフォルダのパスを取得するためのマクロです。「アンケート集計」マクロを実行すると、「フォルダ指定」マクロで取得したパスにあるすべてのファイルを対象とした集計が行われます。
コードを貼り付けたらExcelの画面に戻り、以下のように「参照」ボタンと「集計」ボタンを作成します。「参照」ボタンには「フォルダ指定」マクロを、「集計」ボタンには「アンケート集計」マクロをそれぞれ登録します。
これで作業は完了です。あとは「参照」ボタンから集計したいファイルが入ったフォルダを選択⇒「集計」を押すと、B6~B8に集計結果が表示されます。
Excelでチェックボックスとセルのリンクを一括で設定する方法
チェックボックスとセルをリンクさせる作業は、チェックボックスが大量にある場合、手作業だと膨大な時間がかかってしまいます。マクロを使って一括で設定しましょう。
2番目以降のシートのリンクを一括で設定する方法
2番目以降のシートのリンクを一括で設定するには、標準モジュールに以下のコードを貼り付けます。
Sub チェックボックスとセルをリンク()
Dim cnt As Long
Dim i As Long
Dim cb As CheckBox
cnt = Worksheets.Count ' シートの数
For i = 2 To cnt ' 2番目以降のシートで繰り返す
For Each cb In Worksheets(i).CheckBoxes
cb.LinkedCell = cb.TopLeftCell.Offset(0, 1).Address 'チェックボックスから1つ右に移動した先のセルとリンク
Next
Next
MsgBox "リンクの設定が完了しました。"
End Sub
コードを貼り付けたら作業完了です。Excelの画面に戻り、「チェックボックスとセルをリンク」マクロを実行すると、2番目以降のシートを対象に、チェックボックスとそこから1つ右に移動した先にあるセルがリンクされます。
複数ファイルのリンクを一括で設定する方法
ご紹介するマクロは、以下の条件をすべて満たす場合に使えます。
- 対象のチェックボックスがすべて1番目のシートにある
- 対象のファイルがすべて同じフォルダに入っている
新規ブックでVBEを起動し、標準モジュールに以下のコードを貼り付けます。
Sub フォルダ指定()
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
ActiveSheet.Range("A1").Value = .SelectedItems(1) ' A1にフォルダのパスを表示
End With
End Sub
Sub チェックボックスとセルをリンク()
Dim folderPath As String
Dim bookName As String
Dim cb As CheckBox
folderPath = ThisWorkbook.ActiveSheet.Range("A1").Value ' フォルダのパス
bookName = Dir(folderPath & "\*.xls*") ' ブック名
Application.ScreenUpdating = False
Do Until bookName = "" ' ブックがなくなるまで繰り返す
Workbooks.Open (folderPath & "\" & bookName)
For Each cb In Worksheets(1).CheckBoxes ' 1番目のシートで繰り返す
cb.LinkedCell = cb.TopLeftCell.Offset(0, 2).Address 'チェックボックスから2つ右に移動した先のセルとリンク
Next
Workbooks(bookName).Close SaveChanges:=True
bookName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "リンクの設定が完了しました。"
End Sub
コードを貼り付けたら作業完了です。Excelの画面に戻り、「フォルダ指定」マクロ⇒「チェックボックスとセルをリンク」マクロの順に実行すると、指定したフォルダ内のファイルの1番目のシートにあるチェックボックスと、そこから右に2つ移動した先にあるセルがリンクされます。
まとめ
今回は、Excelでチェックボックスを集計する方法をご紹介しました。
チェックボックスにレ点が付いた項目の個数を集計するには、チェックボックスとセルをリンクさせたうえで、COUNTIF関数やマクロを使います。
同じファイル集計したいファイルの場合はCOUNTIF関数を使う方法が、アンケートの集計など集計したいファイルが大量にある場合はマクロを使う方法がおすすめです。
ご紹介したマクロで希望の動作にならない場合、マクロの作成を依頼できるサービスを利用するのがおすすめです。以下の記事でマクロの作成を依頼できるサービスをご紹介していますので、興味のある方はぜひあわせてご覧ください。
Udemyでは、買い切りの動画講座で好きな分野について自分のペースで学ぶことができます。
パソコンだけでなくスマホにも対応しているので、移動時間や休憩時間にスマホで学習することも可能です。
30日間の返金保証付きなので、初めてでも安心して受講できますよ。
▼ おすすめのExcel VBA講座はこちら ▼