見出し画像

#83 経済センサスの小分類での部門分類表を作成

三好(2020)では、「京都府産業連関表と経済センサスの部門分類対応表」が付表1として掲載されています。

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

表83−1 <<付表1>>「京都府産業連関表と経済センサスの部門分類対応表」の一部抜粋
三好ゆう(2020)『ノン・サーベイ法による市町村産業連関表の作成と課題
―京都府内全26市町村の「市内生産額」の推計から―』から一部引用

しかし、「産業連関表」の部門分類と「経済センサス」の部門分類は対応していません。

そこで、#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

これで、経済センサスの小分類における部門分類表を作成することができました。

表83−2 経済センサスの部門分類表(一部抜粋)





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