見出し画像

#81 「経済センサス―活動調査」から民営以外の事業所の従業者数を推計

#79から、三好(2020)を紐解きながら、経済センサスを用いた従業者数のデータの整備に着手しています。

三好ゆう(2020)『ノン・サーベイ法による市町村産業連関表の作成と課題―京都府内全26市町村の「市内生産額」の推計から―』福知山公立大学研究紀要2020,4巻 1号 ,pp.185 - 208

前回の投稿(#80)では、「経済センサス」の産業分類を「産業連関表」の対応する部門に振り分ける作業における留意点(その1)を紹介し、実際に作業を開始しました。

今回は、上記作業における留意点(その2)について紐解き、実際に作業を行っていきます。

作業上の留意点(その2)

2 つめに、民営事業所に関しては「経済センサス-活動調査」を用いることができるが、そこには民営以外 ( 例えば、国と地方の公共団体(公的部門) )の事業所の従業者数は含まれていない。そのため、これを補うために「経済センサス-基礎調査」を用いることになるが、その際、調査年のズレを調整する必要がある。たとえば、平成 23 年版の市町村産業連関表を作成する場合、民営以外の事業所の従業者数については、「平成 21 年 経済センサス-基礎調査」と「平成 26 年 経済センサス-基礎調査」を用いて、直線補間法により平成 23 年の産業別従業者数を推計する必要がある。
$$
\begin{array}{}平成23年 従業者数 = 平成21年 従業者数+{ (平成26年 従業者数) - (平成21年 従業者数) }×\frac{平成23年から平成21年までの3年}{平成26年から平成21年までの5年}\end{array}
$$

三好ゆう(2020)『ノン・サーベイ法による市町村産業連関表の作成と課題
―京都府内全26市町村の「市内生産額」の推計から―』

全国における平成23年の産業別公的部門の従業者数を推計

「経済センサス―基礎調査」の公的部門のデータから、大分類及び「数字2桁」+「アルファベット」の行を削除

まず、「経済センサス―基礎調査」がどのような統計資料なのか、見てみることにします。

平成21年経済センサス-基礎調査 事業所に関する集計 表番号00403 表題産業(小分類),経営組織(2区分)国・地方公共団体,従業上の地位(6区分),男女別従業者数-全国には、国と地方の公共団体(公的部門)の事業所の従業者数のデータが記載されているようです。

上記のデータをダウンロードして、一部を抜粋すると、以下のようになります。

図81-1 事業所に関する集計 表番号00403の公的部門の事業所の従業者数のデータ

赤枠で囲った行は大分類での従業者数のデータなので、削除しても良いと考えられます。

また、青枠で囲った行は、産業分類名が「数字2桁」+「アルファベット」で始まり、「経済センサス―活動調査」の民営事業所のデータには見られなかったパターンです。

上記の例では、「58A料理品小売業」と「58B他に分類されない飲食料品小売業」は、直近の行にある「589その他の飲食料品小売業」の内訳と考えられ、合計すると確かに、「589その他の飲食料品小売業」に一致します。

よって、これらの産業分類名が「数字2桁」+「アルファベット」で始まる行も削除しても良いと考えられます。

赤枠(大分類)及び青枠(産業分類名が「数字2桁」+「アルファベット」で始まる)の行を削除するVBAのコードは、以下のようになります。

Sub 大分類及び数字2桁とアルファベット1文字で始まる行を削除()
	Dim ws As Worksheet
	
	Set ws = Workbooks("H21経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet1")	
	
	For i = 300 To 2 Step -1
		If ws.Cells(i, 2).Value Like "[A-Z]*" Or ws.Cells(i, 2).Value Like "@*" Or ws.Cells(i, 2).Value Like "##[A-Z]*" Then
			ws.Cells(i, 2).EntireRow.Delete
		EndIf
	Next	
End Sub

「管理、補助的経済活動を行う事業所」の従業者数をそれ以外の産業に割り振る

作業中のワークシートには、「管理、補助的経済活動を行う事業所」の行が含まれています。なので、作業上の留意点(その1)と同様に、「管理、補助的経済活動を行う事業所」の従業者数をそれ以外の産業に割り振ります。

VBAのコードは、以下のようになります。

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("H21経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet1")
	For i = 2 To 205
		If ws.Cells(i, 2).Value Like "##" & "[!0-9]*" Then
			num = Val(ws.Cells(i, 2).Value)
			If num < 10 Then
				S_num = "0" & CStr(num)
			Else
				S_num = CStr(num)
			End If
			m_employee = ws.Cells(i, 3).Value
			For j = 2 To 205
				If ws.Cells(j, 2).Value Like S_num & "0*" Then
					k_employee = ws.Cells(j, 3).Value
					For k = 2 To 205
						If ws.Cells(k, 2).Value Like S_num & "[1-9]*" Then
							s_employee = ws.Cells(k, 3).Value
							ratio = s_employee / m_employee
							ws.Cells(k, 3).Value = s_employee + k_employee * ratio
						End If
					Next
				End If
			Next
		End If
	Next
	' 「管理、補助的経済活動を行う事業所」を含む行をすべて削除
	For i = 205 To 2 Step -1
		If ws.Cells(i, 2).Value Like "##" & "0*" Then
			ws.Cells(i, 2).EntireRow.Delete
		EndIf
	Next		
	' 中分類をすべて削除
	For i = 205 To 2 Step -1
		If Not(ws.Cells(i, 2).Value Like "###*") Then
			ws.Cells(i, 2).EntireRow.Delete
		EndIf
	Next
End Sub

これまで、「平成21年 経済センサス―基礎調査」において、公的部門の従業者数を算出してきました。

同じ作業を、「平成26年 経済センサス―基礎調査」でも実行します。

ダウンロードするデータは、平成26年経済センサス‐基礎調査 事業所に関する集計 表番号 03103 表題 産業(小分類)、経営組織(2区分)別従業上の地位(3区分)、男女別従業者数-全国(国、地方公共団体)です。

産業分類名を「分類符号」と「部門名」に分割する

今の段階で、平成21年、平成26年のデータともに、産業分類名に「分類符号(数字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("H21経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet1")
	Set wsDes = Workbooks("H21経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet2")
	For i = 2 To 133
		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, "")
		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

実行結果は、以下のようになります。

図81−2 数字3桁と部門名を分割した状態

平成26年のデータにも、同様の作業を行っていきます。

小分類の分類符号を全て作成

次に、平成23年の公的部門の事業所の従業者数を計算するためのワークシートを用意します。

「管理、補助的経済活動を行う事業所」(分類符号の3桁目が「0」)を除いた小分類がすべて格納できるように、分類符号(code;数字3桁)を作成していきます。

VBAのコードは、以下のようになります。

Sub 小分類全てのcode作成()
	Dim ws As Worksheet
	Dim i As Integer
	Dim row As Integer
	Set ws = Workbooks("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

直線補完法により平成23年の公的部門の産業別従業者を推計

続いて、平成21年の公的部門の従業者数、平成26年の従業者数のデータを格納し、直線補完法により平成23年の公的部門の産業別従業者を推計していきます。

推計式を再掲します。

$$
\begin{array}{}平成23年 従業者数 = 平成21年 従業者数 +{(平成26年 従業者数) - (平成21年 従業者数)}× \frac{平成23年から平成21年までの3年}{平成26年から平成21年までの5年}\end{array}
$$

Sub 直線補完法により平成23年の産業別従業者数を推計()
	Dim wsOrg1 As Worksheet
	Dim wsOrg2 As Worksheet
	Dim wsDes As Worksheet
	Dim i As Integer
	Dim j As Integer
	
	Set wsOrg1 = Workbooks("H21経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet2")
	Set wsOrg2 = Workbooks("H26経済センサス_国地方公共団体_従業者数_全国_小分類.ods").Worksheets("sheet2")
	Set wsDes = Workbooks("H23_公的部門_従業者数_全国_小分類.ods").Worksheets("sheet1")
	
	' 平成21年の公的部門の従業者数を格納
	For i = 2 To 892
		For j = 2 To 133
			If wsDes.Cells(i, 1).Value = wsOrg1.Cells(j, 1).Value Then
				wsDes.Cells(i, 3).Value = wsOrg1.Cells(j, 3).Value
			End If
		Next
	Next
	' 平成26年の公的部門の従業者を格納
	For i = 2 To 892
		For j = 2 To 142
			If wsDes.Cells(i, 1).Value = wsOrg2.Cells(j, 1).Value Then
				wsDes.Cells(i, 4).Value = wsOrg2.Cells(j, 3).Value
			End If
		Next
	Next	
	' 直線補完法により平成23年の産業別従業者数を推計
	For i = 2 To 892
		wsDes.Cells(i, 5).Value = wsDes.Cells(i, 3).Value + (wsDes.Cells(i, 4).Value - wsDes.Cells(i, 3).Value) * 3 / 5
	Next
End Sub

これで、全国における平成23年の産業別従業者数を推計することができました。

岩手県における平成23年の産業別公的部門の従業者数を推計

同様の方法で、岩手県における平成23年の産業別従業者数を推計していきます。

平成21年経済センサス-基礎調査 事業所に関する集計 表番号11001 表題産業(小分類),従業者規模(6区分),経営組織(4区分)別民営以外の事業所数及び男女別従業者数-都道府県より、岩手県における平成21年の公的部門の産業別従業者のデータをダウンロードします。

また、岩手県における平成26年の公的部門の産業別従業者数のデータは、平成26年経済センサス‐基礎調査 事業所に関する集計 表番号09100 表題産業(小分類)、経営組織(4区分)別事業所数、男女別従業者数及び常用雇用者数(国及び地方公共団体)-都道府県からダウンロードします。

「経済センサス―基礎調査」の公的部門のデータから、大分類及び「数字2桁」+「アルファベット」の行を削除

大分類及び産業分類名が「数字2桁」+「アルファベット」で始まる行を削除します。VBAのコードは割愛します。

「管理、補助的経済活動を行う事業所」の従業者数をそれ以外の産業に割り振る

作業中のワークシートには、「管理、補助的経済活動を行う事業所」の行が含まれています。なので、作業上の留意点(その1)と同様に、「管理、補助的経済活動を行う事業所」の従業者数をそれ以外の産業に割り振ります。

VBAのコードは以下のようになります。

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("H21経済センサス_国地方公共団体_従業者数_岩手県_小分類.ods").Worksheets("sheet1")
	For i = 2 To 221
		If ws.Cells(i, 2).Value Like "##" & "[!0-9]*" Then
			num = Val(ws.Cells(i, 2).Value)
			If num < 10 Then
				S_num = "0" & CStr(num)
			Else
				S_num = CStr(num)
			End If
			m_employee = ws.Cells(i, 3).Value
			If m_employee = 0 Then
				Goto Continue
			Else
				For j = 2 To 221
					If ws.Cells(j, 2).Value Like S_num & "0*" Then
						k_employee = ws.Cells(j, 3).Value
						For k = 2 To 221
							If ws.Cells(k, 2).Value Like S_num & "[1-9]*" Then
								s_employee = ws.Cells(k, 3).Value
								ratio = s_employee / m_employee
								ws.Cells(k, 3).Value = s_employee + k_employee * ratio
							End If
						Next
					End If
				Next
			End If
		End If
	Continue:
		Next
	' 「管理、補助的経済活動を行う事業所」を含む行をすべて削除
	For i = 221 To 2 Step -1
		If ws.Cells(i, 2).Value Like "##" & "0*" Then
			ws.Cells(i, 2).EntireRow.Delete
		EndIf
	Next		
	' 中分類をすべて削除
	For i = 221 To 2 Step -1
		If Not(ws.Cells(i, 2).Value Like "###*") Then
			ws.Cells(i, 2).EntireRow.Delete
		EndIf
	Next
End Sub

Continueを使用して、中分類の従業者数が0の場合は、ループをスキップするようにしました。

産業分類名を「分類符号」と「部門名」に分割する

今の段階で、産業分類名に「分類符号(数字3桁)」と「部門名」が同じセル内に収まっています。この段階で、産業分類名の「分類符号」と「部門名」とに分割し、それぞれを違う列に格納します。

VBAのコードは、全国の推計時に使用したものと変わらないので、割愛します。

小分類の分類符号を全て作成

次に、平成23年の公的部門の事業所の従業者数を計算するためのワークシートを用意します。

「管理、補助的経済活動を行う事業所」(分類符号の3桁目が「0」)を除いた小分類がすべて格納できるように、分類符号(code;数字3桁)を作成していきます。

VBAのコードは、割愛します。

直線補完法により平成23年の公的部門の産業別従業者を推計

続いて、平成21年の公的部門の従業者数、平成26年の従業者数のデータを格納し、直線補完法により平成23年の公的部門の産業別従業者を推計していきます。

推計式を再掲します。

$$
\begin{array}{}平成23年 従業者数 = 平成21年 従業者数 +{(平成26年 従業者数) - (平成21年 従業者数)}× \frac{平成23年から平成21年までの3年}{平成26年から平成21年までの5年}\end{array}
$$




サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪