#92 「経済センサス」のデータ整理作業(その1)
今回の投稿は、県内生産額の推計の際に指標として用いることが多くなる、「経済センサス」のデータ整理作業についてです。
「経済センサス - 活動調査」 のデータを整理
最初に、「平成28年経済センサス‐活動調査」のデータを整理していきます。なお、産業分類は小分類になります。
不要項目を削除
経済産業省・総務省「平成28年経済センサス‐活動調査 事業所に関する集計 産業横断的集計」の表番号 7-2 「産業(小分類),従業者規模(15区分),単独・本所・支所(3区分),経営組織(4区分),従業上の地位(6区分),男女別従業者数―全国」から、全国の小分類での従業者数のデータをダウンロードします。
同様に、経済産業省・総務省「平成28年経済センサス‐活動調査 事業所に関する集計 産業横断的集計」の表番号 17-2「産業(小分類),従業者規模(8区分),経営組織(7区分),男女別従業者数及び出向・派遣従業者数―全国,都道府県」から、岩手県の小分類での従業者のデータをダウンロードします。
ダウンロードしたデータにおいて、産業分類名の
1文字目がアルファベット
1文字目が「@」
1文字目と2文字目が数字かつ3文字目がアルファベット
を含む行は「不要項目」となるので、削除していきます。
VBAのコードは、以下のようになります。
Sub 不要項目の削除()
Dim ws As Worksheet
Dim i As Integer
Set ws = Workbooks("H28経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("Sheet1")
For i = 745 To 2 Step -1
' 産業分類名の1文字目がアルファベットであるセルを含む行を削除
If ws.Cells(i, 1).Value Like "[A-Z]*" Then
ws.Cells(i, 1).EntireRow.Delete
EndIf
' 産業分類名の1文字目が「@」であるセルを含む行を削除
If ws.Cells(i, 1).Value Like "@*" Then
ws.Cells(i, 1).EntireRow.Delete
EndIf
' 産業分類名の1文字目と2文字目が数字かつ3文字目がアルファベットであるセルを含む行を削除
If ws.Cells(i, 1).Value Like "[0-9][0-9][A-Z]*" Then
ws.Cells(i, 1).EntireRow.Delete
EndIf
Next
End Sub
同様に、岩手県のデータでも不要項目を削除します。
「管理、補助的経済活動を行う事業所」の従業者数への対処
次に、三好(2020)が言及している、小分類にある「管理、補助的経済活動を行う事業所」の従業者数についての処理を行います。
三好ゆう(2020)『ノン・サーベイ法による市町村産業連関表の作成と課題―京都府内全26市町村の「市内生産額」の推計から―』福知山公立大学研究紀要2020,4巻 1号 ,pp.185 - 208
「管理、補助的経済活動を行う事業所」の従業者数への処理を行うコードは、以下のようになります。
Sub 管理補助的経済活動を行う事業所への対処()
Dim ws As Worksheet
Dim num As Long
Dim S_num As String
Dim k_String As String
Dim k_employee As Long
Dim m_employee As Double
Dim s_employee As Double
Dim ratio As Double
Dim i As Integer
Dim j As Integer
Dim k As Integer
Set ws = Workbooks("H28経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("Sheet1")
For i = 2 To 615
If ws.Cells(i, 1).Value Like "##" & "[!0-9]*" Then
num = Val(ws.Cells(i, 1).Value)
If num < 10 Then
S_num = "0" & CStr(num)
Else
S_num = CStr(num)
End If
m_employee = ws.Cells(i, 2).Value
For j = 2 To 615
If ws.Cells(j, 1).Value Like S_num & "0*" Then
k_employee = ws.Cells(j, 2).Value
For k = 2 To 615
If ws.Cells(k, 1).Value Like S_num & "[1-9]*" Then
s_employee = ws.Cells(k, 2).Value
ratio = s_employee / m_employee
ws.Cells(k, 2).Value = s_employee + k_employee * ratio
End If
Next
End If
Next
End If
Next
' 「管理、補助的経済活動を行う事業所」を含む行をすべて削除
For i = 615 To 2 Step -1
If ws.Cells(i, 1).Value Like "##" & "0*" Then
ws.Cells(i, 1).EntireRow.Delete
EndIf
Next
' 中分類をすべて削除
For i = 615 To 2 Step -1
If Not(ws.Cells(i, 1).Value Like "###*") Then
ws.Cells(i, 1).EntireRow.Delete
EndIf
Next
End Sub
実行結果は、以下のようになります。
同様の処理を、岩手県のデータでも行います。
産業分類名を「分類符号」と「産業分類名」に分割する
今の段階では、産業分類名に「分類符号(数字3桁)」と「産業分類名」が同じセル内に収まっています。そこで、「分類符号」と「産業分類名」とに分割し、それぞれを違う列に格納します。
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("H28経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("Sheet1")
Set wsDes = Workbooks("H28経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("Sheet2")
For i = 2 To 427
num = Val(wsOrg.Cells(i, 1).Value)
If num < 100 Then
code = "0" & CStr(num)
Else
code = CStr(num)
End If
iname = Replace(wsOrg.Cells(i, 1).Value, code, "")
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, 2).Value
Next
End Sub
実行結果は、以下のようになります。
同様の作業を、岩手県のデータでも行います。
民営以外の事業所の従業者数について
「経済センサス−基礎調査を用いた」推計方法
今回は、平成27年版の産業連関表を作成するので、民営以外の事業所の従業者数については、「平成26年 経済センサス−基礎調査」と「平成27年以降の経済センサス−基礎調査」を用いる必要があります。
ここで、「平成27年以降の」と書いたのは、2020年3月23日現在で、民営以外の事業所の従業者数についての統計データがまだ公表されていないからです。
「平成27年以降の経済センサス−基礎調査」に該当するのは、令和2年及び令和元年に実施されたものになりますが、どちらも、民営以外の事業所の従業者数について、統計データが公表されていません
「経済センサス」のデータ整理作業を一時中断
なので、民営以外の事業所の従業者数についての統計データが公表されるまでは、「経済センサス」を使用しないで県内生産額の推計が可能な部門の推計作業を継続していくことにします。
そして、民営以外の事業所の従業者数についての統計データが公表され次第、「経済センサス」のデータ整理の作業を再開することにします。
サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪