#83 経済センサスの小分類での部門分類表を作成
三好(2020)では、「京都府産業連関表と経済センサスの部門分類対応表」が付表1として掲載されています。
三好ゆう(2020)『ノン・サーベイ法による市町村産業連関表の作成と課題―京都府内全26市町村の「市内生産額」の推計から―』福知山公立大学研究紀要2020,4巻 1号 ,pp.185 - 208
しかし、「産業連関表」の部門分類と「経済センサス」の部門分類は対応していません。
そこで、#80から、「経済センサス」の産業分類と「産業連関表」の部門部類を対応させる作業を、作業上の4つの留意点に触れながら行ってきました。
今回の投稿では、「2011(平成23)年岩手県産業連関表と平成23年経済センサスの部門分類対応表」の下準備として、経済センサスにおける小分類での部門分類表を作成していきます。
小分類の分類符号を全て作成
最初に、「管理、補助的経済活動を行う事業所」(分類符号の3桁目が「0」)を除いた小分類がすべて格納できるように、分類符号(code;数字3桁)を作成していきます。
VBAのコードは、以下のようになります。
Sub 小分類全てのcode作成()
Dim ws As Worksheet
Dim i As Integer
Dim row As Integer
Set ws = Workbooks("H17岩手県産業連関表とH23経済センサスの部門分類対応表.ods").Worksheets("Sheet1")
row = 2
' 011〜999のcodeを作成
For i = 11 To 999
If i < 100 Then
ws.Cells(row, 1).Value = "0" & CStr(i)
Else
ws.Cells(row, 1).Value = CStr(i)
End If
row = row + 1
Next
' 3桁目が「0」のcodeの行を削除
For i = 990 To 2 Step -1
If ws.Cells(i, 1).Value Like "##0*" Then
ws.Cells(i, 1).EntireRow.Delete
End If
Next
End Sub
産業分類名を「分類符号」と「部門名」に分割する
次に、#80で作成した「平成24年経済センサス−活動調査」の全国の民営事業所における産業別従業者数のデータを格納したワークシートで、産業分類名を「分類符号」と「部門名」とに分割し、それぞれを違う列に格納します。
VBAのコードは、以下のようになります。
Sub 最初の数字3桁と部門名を分割して別々の列に格納()
Dim wsOrg As Worksheet
Dim wsDes As Worksheet
Dim i As Integer
Dim num As Long
Dim code As String
Dim iname As String
Set wsOrg = Workbooks("H24経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("sheet1")
Set wsDes = Workbooks("H24経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("sheet2")
For i = 2 To 426
num = Val(wsOrg.Cells(i, 2).Value)
If num < 100 Then
code = "0" & CStr(num)
Else
code = CStr(num)
End If
iname = Replace(wsOrg.Cells(i, 2).Value, code, "")
'iname = Replace(iname, " ", "")
wsDes.Cells(i, 1).NumberFormatLocal = "@" ' セルの書式を「文字」に設定
wsDes.Cells(i, 1).Value = code
wsDes.Cells(i, 2).Value = iname
wsDes.Cells(i, 3).Value = wsOrg.Cells(i, 3).Value
Next
End Sub
小分類における産業名の項目欄のみとした表を作成
小分類の分類符号を格納したワークシートに、「分類符号」に対応した「部門名」を割り振っていきます。
まず、転記元として、全国における民営事業所のデータが記載されたワークシートを、転記先として、小分類の分類符号を格納したワークシートを指定します。
VBAのコードは、以下のようになります。
Sub 経済センサスの部門分類表を作成()
Dim wsOrg As Worksheet
Dim wsDes As Worksheet
Dim i As Integer
Dim j As Integer
Set wsOrg = Workbooks("H24経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("sheet2")
Set wsDes = Workbooks("H17岩手県産業連関表とH23経済センサスの部門分類対応表.ods").Worksheets("Sheet1")
For i = 2 To 892
For j = 2 To 426
If wsDes.Cells(i, 1).Value = wsOrg.Cells(j, 1).Value Then
wsDes.Cells(i, 2).Value = wsOrg.Cells(j, 2).Value
End If
Next
Next
End Sub
次に、転記先は変更せずに、転記元として、全国における公共部門の事業所のデータが記載されているワークシートを指定します。
転記元が「平成26年−基礎調査」の場合、VBAのコードは、以下のようになります。
Sub 経済センサスの部門分類表を作成()
Dim wsOrg As Worksheet
Dim wsDes As Worksheet
Dim i As Integer
Dim j As Integer
Set wsOrg = Workbooks("H26経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet2")
Set wsDes = Workbooks("H17岩手県産業連関表とH23経済センサスの部門分類対応表.ods").Worksheets("Sheet1")
For i = 2 To 892
If wsDes.Cells(i, 2).Value = "*" Then
Goto Continue
Else
For j = 2 To 142
If wsDes.Cells(i, 1).Value = wsOrg.Cells(j, 1).Value Then
wsDes.Cells(i, 2).Value = wsOrg.Cells(j, 2).Value
End If
Next
End If
Continue:
Next
End Sub
後は、上述の付表1「京都府産業連関表と経済センサスの部門分類対応表」を見ながら、経済センサスの小分類での項目が出揃っているかを確認しました。
小分類における項目に抜けがないことが確認できたので、分類符号(数字3桁)はあるが、対応する部門名がない行は全て削除していきます。
VBAのコードは、以下のようになります。
Sub 対応する部門名がない行を削除()
Dim ws As Worksheet
Dim i As Integer
Set ws = Workbooks("H17岩手県産業連関表とH23経済センサスの部門分類対応表.ods").Worksheets("Sheet1")
For i = 892 To 2 Step -1
If ws.Cells(i, 2).Value Like "" Then
ws.Cells(i, 2).EntireRow.Delete
End If
Next
End Sub
これで、経済センサスの小分類における部門分類表を作成することができました。
サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪