0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

法人番号データを集計して遊ぼう

0
Last updated at Posted at 2026-09-07

追記10/2 末尾に書き足し

1. 法人番号データを集計してみたい

1-1. 何をしたいのか

国税庁が公開している「法人番号データ」には、

  • 企業の商号
  • 法人番号指定年月日(≒会社が起業・登録された日)
  • 登記記録の閉鎖等年月日(≒会社が解散・消滅または吸収合併した日)
  • 所在地

など様々な情報が含まれています。
「このデータを集計・分析してみたら、いろいろな面白い事実がわかるのではないか?」と考え、実際にデータベースを作成して検証してみることにしました。

1-2. 準備

分析を進めるにあたり、以下の準備を行います。

a) データベースの準備

大規模なテキストデータを高速に処理・集計するためにSQLServerを用意します。

b) 法人番号データのダウンロード

国税庁の「法人番号公表サイト」ダウンロードページからUnicodeの全データのCSVファイルをダウンロードします。

上記のリンク先で全国と書いてある下のリンク「zip nnnMB」(nnnには数値が入ります)をクリックしてダウンロードしてください。

2. SQL ServerでDBを作成

2-1. テーブルを作成

法人番号データの基本構造に合わせてテーブルを作成します。

SQLServerに次のスクリプトでテーブルを作成してください。

CreateTable_T法人番号.sql

-- 法人番号テーブルの作成
CREATE TABLE [dbo].[T法人番号]
(
	  [一連番号] BIGINT NOT NULL
	, [法人番号] CHAR(13) COLLATE Japanese_CI_AS NULL
	, [処理区分] INT NULL
	, [訂正区分] INT NULL
	, [更新年月日] DATE NULL
	, [変更年月日] DATE NULL
	, [商号又は名称] NVARCHAR(150) COLLATE Japanese_CI_AS NULL
	, [商号又は名称イメージID] CHAR(8) COLLATE Japanese_CI_AS NULL
	, [法人種別] INT NULL
	, [国内所在地_都道府県] NVARCHAR(10) COLLATE Japanese_CI_AS NULL
	, [国内所在地_市区町村] NVARCHAR(20) COLLATE Japanese_CI_AS NULL
	, [国内所在地_丁目番地等] NVARCHAR(300) COLLATE Japanese_CI_AS NULL
	, [国内所在地イメージID] CHAR(8) COLLATE Japanese_CI_AS NULL
	, [都道府県コード] CHAR(2) COLLATE Japanese_CI_AS NULL
	, [市区町村コード] CHAR(3) COLLATE Japanese_CI_AS NULL
	, [郵便番号] CHAR(7) COLLATE Japanese_CI_AS NULL
	, [国外所在地] NVARCHAR(300) COLLATE Japanese_CI_AS NULL
	, [国外所在地イメージID] CHAR(8) COLLATE Japanese_CI_AS NULL
	, [登記記録の閉鎖等年月日] DATE NULL
	, [登記記録の閉鎖等の事由] INT NULL
	, [承継先法人番号] CHAR(13) COLLATE Japanese_CI_AS NULL
	, [変更事由の詳細] NVARCHAR(500) COLLATE Japanese_CI_AS NULL
	, [法人番号指定年月日] DATE NULL
	, [最新履歴] INT NULL
	, [商号又は名称_英語表記] NVARCHAR(300) COLLATE Japanese_CI_AS NULL
	, [国内所在地_都道府県_英語表記] NVARCHAR(9) COLLATE Japanese_CI_AS NULL
	, [国内所在地_市区町村丁目番地等_英語表記] NVARCHAR(600) COLLATE Japanese_CI_AS NULL
	, [国外所在地_英語表記] NVARCHAR(600) COLLATE Japanese_CI_AS NULL
	, [フリガナ] NVARCHAR(500) COLLATE Japanese_CI_AS NULL
	, [検索対象外] INT NULL
	, CONSTRAINT [PK__T法人番号] PRIMARY KEY ([一連番号] ASC)
);
GO

気になる方は以下の設定も行ってください。

定数テーブルの定義など
CreateTable_定数テーブル作成.sql

CREATE TABLE [dbo].[C処理区分]
(
	  [処理区分CD] INT NOT NULL
	, [処理区分_項目値] NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
	, [処理区分_摘要] NVARCHAR(200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
	, CONSTRAINT [PK_C処理区分] PRIMARY KEY ([処理区分CD] ASC)
);
GO

CREATE TABLE [dbo].[C訂正区分]
(
	  [訂正区分CD] INT NOT NULL
	, [訂正区分_項目値] NVARCHAR(50) COLLATE Japanese_CI_AS NOT NULL
	, [訂正区分_摘要] NVARCHAR(200) COLLATE Japanese_CI_AS NULL
	, CONSTRAINT [PK_C訂正区分] PRIMARY KEY ([訂正区分CD] ASC)
);
GO

CREATE TABLE [dbo].[C法人種別]
(
	  [法人種別CD] INT NOT NULL
	, [法人種別_項目値] NVARCHAR(50) COLLATE Japanese_CI_AS NOT NULL
	, [法人種別_摘要] NVARCHAR(200) COLLATE Japanese_CI_AS NULL
	, CONSTRAINT [PK_C法人種別] PRIMARY KEY ([法人種別CD] ASC)
);
GO

CREATE TABLE [dbo].[C登記記録の閉鎖等の事由]
(
	  [登記記録の閉鎖等の事由CD] INT NOT NULL
	, [登記記録の閉鎖等の事由_項目値] NVARCHAR(50) COLLATE Japanese_CI_AS NOT NULL
	, [登記記録の閉鎖等の事由_摘要] NVARCHAR(200) COLLATE Japanese_CI_AS NULL
	, CONSTRAINT [PK_C登記記録の閉鎖等の事由] PRIMARY KEY ([登記記録の閉鎖等の事由CD] ASC)
);
GO

CREATE TABLE [dbo].[C最新履歴]
(
	  [最新履歴CD] INT NOT NULL PRIMARY KEY
	, [最新履歴_項目値] NVARCHAR(50) COLLATE Japanese_CI_AS NOT NULL
	, [最新履歴_摘要] NVARCHAR(200) COLLATE Japanese_CI_AS NULL
	, CONSTRAINT [PK_C最新履歴] PRIMARY KEY ([最新履歴CD] ASC)
);
GO

CREATE TABLE [dbo].[C検索対象外]
(
	  [検索対象外CD] INT NOT NULL
	, [検索対象外_項目値] NVARCHAR(50) COLLATE Japanese_CI_AS NOT NULL
	, [検索対象外_摘要] NVARCHAR(200) COLLATE Japanese_CI_AS NULL
	, CONSTRAINT [PK_C検索対象] PRIMARY KEY ([検索対象外CD] ASC)
);
GO


ALTER TABLE [dbo].[T法人番号] WITH CHECK ADD CONSTRAINT [FK_T法人番号_C処理区分] FOREIGN KEY([処理区分]) REFERENCES [dbo].[C処理区分] ([処理区分CD])
ALTER TABLE [dbo].[T法人番号] CHECK CONSTRAINT [FK_T法人番号_C処理区分]

ALTER TABLE [dbo].[T法人番号] WITH CHECK ADD CONSTRAINT [FK_T法人番号_C最新履歴] FOREIGN KEY([最新履歴]) REFERENCES [dbo].[C最新履歴] ([最新履歴CD])
ALTER TABLE [dbo].[T法人番号] CHECK CONSTRAINT [FK_T法人番号_C最新履歴]

ALTER TABLE [dbo].[T法人番号] WITH CHECK ADD CONSTRAINT [FK_T法人番号_C検索対象外] FOREIGN KEY([検索対象外]) REFERENCES [dbo].[C検索対象外] ([検索対象外CD])
ALTER TABLE [dbo].[T法人番号] CHECK CONSTRAINT [FK_T法人番号_C検索対象外]

ALTER TABLE [dbo].[T法人番号] WITH CHECK ADD CONSTRAINT [FK_T法人番号_C法人種別] FOREIGN KEY([法人種別]) REFERENCES [dbo].[C法人種別] ([法人種別CD])
ALTER TABLE [dbo].[T法人番号] CHECK CONSTRAINT [FK_T法人番号_C法人種別]

ALTER TABLE [dbo].[T法人番号] WITH CHECK ADD CONSTRAINT [FK_T法人番号_C登記記録の閉鎖等の事由] FOREIGN KEY([登記記録の閉鎖等の事由]) REFERENCES [dbo].[C登記記録の閉鎖等の事由] ([登記記録の閉鎖等の事由CD])
ALTER TABLE [dbo].[T法人番号] CHECK CONSTRAINT [FK_T法人番号_C登記記録の閉鎖等の事由]

ALTER TABLE [dbo].[T法人番号] WITH CHECK ADD CONSTRAINT [FK_T法人番号_C訂正区分] FOREIGN KEY([訂正区分]) REFERENCES [dbo].[C訂正区分] ([訂正区分CD])
ALTER TABLE [dbo].[T法人番号] CHECK CONSTRAINT [FK_T法人番号_C訂正区分]
GO

insert into dbo.C処理区分
(処理区分CD,処理区分_項目値,処理区分_摘要)
values
(1,'新規','新たに法人番号が指定されたことを表す情報であることを意味する。')
,(11,'商号又は名称の変更','商号又は名称が変更されたことを表す情報であることを意味する。')
,(12,'国内所在地の変更','国内における本店又は主たる事務所の所在地の変更、国内に本店又は主たる事務所がない法人等の場合は、国内における事務所又は営業所の所在地の変更又は、市区町村合併等により住居表示が変更されたことを表す情報であることを意味する。')
,(13,'国外所在地の変更','国外における本店又は主たる事務所の所在地が変更されたことを表す情報であることを意味する。')
,(21,'登記記録の閉鎖等','清算の結了、合併による解散などの事由により登記記録の閉鎖等の事由が生じたことを表す情報であることを意味する。')
,(22,'登記記録の復活等','清算の結了、合併による解散などの事由により登記記録の閉鎖等が生じた後、清算結了等の手続に瑕疵があり、清算結了が無効になるなどの事由により登記記録が復活等したことを表す情報であることを意味する。')
,(71,'吸収合併','設立登記法人が、吸収合併を行ったことを表す情報であることを意味する。')
,(72,'吸収合併無効','吸収合併後存続した設立登記法人の吸収合併について無効判決が確定したことを表す情報であることを意味する。')
,(81,'商号の登記の抹消','設立登記法人について商号の登記が抹消されたことを表す情報であることを意味する。')
,(99,'削除','法人番号の重複指定等の理由により法人番号の指定を撤回したこと及び公表に同意した人格のない社団等の代表者又は管理人が、公表の同意を撤回したことを表す情報であることを意味する。')
;

insert into dbo.C訂正区分
(訂正区分CD,訂正区分_項目値,訂正区分_摘要)
values
(0,'訂正以外','訂正したデータ(訂正区分が「1」)以外の場合、当該訂正区分に訂正以外「0」を設定する。')
,(1,'訂正','訂正したデータの場合、当該訂正区分に訂正「1」を設定する。')
;

insert into dbo.C法人種別
(法人種別CD,法人種別_項目値,法人種別_摘要)
values
(101,'国の機関','行政機関、裁判所及び国会の機関に係る情報であることを意味する。')
,(201,'地方公共団体','地方自治法第1条の3において定義されている普通地方公共団体及び特別地方公共団体に係る情報であることを意味する。')
,(301,'株式会社','株式会社の情報であることを意味する。')
,(302,'有限会社','特例有限会社の情報であることを意味する。')
,(303,'合名会社','合名会社の情報であることを意味する。')
,(304,'合資会社','合資会社の情報であることを意味する。')
,(305,'合同会社','合同会社の情報であることを意味する。')
,(399,'その他の設立登記法人','株式会社(301)、有限会社(302)、合名会社(303)、合資会社(304)及び合同会社(305)以外の法令の規定により設立の登記をすることによって成立する法人の情報であることを意味する。')
,(401,'外国会社等','外国、外国の行政区画及び外国会社並びに法律又は条約の規定により認許された外国法人の情報であることを意味する。')
,(499,'その他','上記以外の人格のない社団等及び日本の法律の規定により成立し、設立の登記を行わない法人の情報であることを意味する。')
;


insert into dbo.C登記記録の閉鎖等の事由
(登記記録の閉鎖等の事由CD,登記記録の閉鎖等の事由_項目値,登記記録の閉鎖等の事由_摘要)
values
(1,'清算の結了等','設立登記法人について、清算の結了等により登記記録が閉鎖された事を意味する。')
,(11,'合併による解散等','設立登記法人について、合併による解散等により登記記録が閉鎖された事を意味する。')
,(21,'登記官による閉鎖','設立登記法人について、商業登記規則第81条により登記記録の閉鎖された事を意味する。')
,(31,'その他の清算の結了等','設立登記法人以外について、清算の結了等に類する事由が生じた場合に表示する。')
;

insert into dbo.C最新履歴
(最新履歴CD,最新履歴_項目値,最新履歴_摘要)
values
(0,'過去情報','過去の情報であることを意味する。')
,(1,'最新情報','最新の情報であることを意味する。')
;

insert into dbo.C検索対象外
(検索対象外CD,検索対象外_項目値,検索対象外_摘要)
values
(0,'検索対象','検索対象となっている情報であることを意味する。')
,(1,'検索対象外','検索対象から除外した情報であることを意味する。')
;
GO

2-2. BULK INSERTでデータ投入

ダウンロードしたzipファイル(例、00_zenkoku_all_20260831.zip)を展開すると、CSVファイルができますので、そのCSVファイル(例、00_zenkoku_all_20260831.csv)を BULK INSERT コマンドで一括インポートします。

BULK INSERT dbo.T法人番号
FROM 'C:\foo\bar\00_zenkoku_all_20260831.csv'
WITH (
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\r\n',
    FIRSTROW = 1,
    CODEPAGE = '65001' -- UTF-8
);

実は私は上記のスクリプトとはちょっと異なる手順で取り込んでいます。
なので、スクリプトを正しく実行しても上手くいかない可能性があります。
うまくデータが取り込めないなら、AIと相談してください。

10/2追記

9/30更新のデータを読み込ませるときは次のようにしました。
環境はLinuxのdockerコンテナ版のsqlserverです。
CSVファイルは全国版でUTF-8をダウンロードしました。


BULK INSERT dbo.T法人番号2
FROM '/var/opt/mssql/backups/00_zenkoku_all_20260930.csv'
WITH (
    FORMAT='CSV',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '0x0a',
    FIRSTROW = 1
--    ,
--    CODEPAGE = '65001' -- UTF-8
);

3. 分析

データが入ったところで、実際にSQLクエリを叩いて調査・分析を行います。
ここで、データの仕様は次のPDFに規定されています。

リソース定義書(PDF)

3-1. まずは記号の意味と状態を確認する

現在のデータの分布状況を確認します。

次のスクリプトを実行してみましょう。

Query1_状態確認.sql

select 
count(A.一連番号) as 件数
,A.最新履歴
,C1.最新履歴_項目値
from dbo.T法人番号 A
left outer join dbo.C最新履歴 C1
on A.最新履歴=C1.最新履歴CD
group by 
A.最新履歴
,C1.最新履歴_項目値
order by
A.最新履歴
;

最新履歴 最新履歴_項目値 件数
1 最新情報 5,827,771

今回差分ではなく全件のデータを取得したので、すべてのデータが最新情報になっています。

では次に、データの時期についてみてみましょう。
法人番号の制度が2015年10月5日から始まったので、それ以降のデータになっています。
変更年月日と更新年月日は次のように定義されています。

  • 変更年月日

事由が発生した日付を表すデータ項目。
○ 処理区分が新規(01)の場合
法人番号が指定された年月日を意味する。
○ 処理区分が新規(01)以外の場合
・ 設立登記法人:処理区分の事由に係る登記年月日を意味する。
・ 設立登記法人以外:処理区分の事由が生じた年月日を意味する。

  • 更新年月日

法務省等からデータを受け取り、当庁でデータを更新した日付を表す。

Query2_状態確認_時期.sql

select 
    count(A.一連番号) as 件数
    ,datepart(year,A.変更年月日) as 変更年
    ,datepart(month,A.変更年月日) as 変更月
    ,min(A.更新年月日) as min更新年月日
    ,max(A.更新年月日) as max更新年月日
from dbo.T法人番号 A
group by 
    datepart(year,A.変更年月日)
    ,datepart(month,A.変更年月日)
order by
    datepart(year,A.変更年月日)
    ,datepart(month,A.変更年月日)
;

select 
    count(A.一連番号) as 件数
    ,datediff(year,A.変更年月日,A.更新年月日) as 変更から更新までの期間_年単位
from dbo.T法人番号 A
group by 
datediff(year,A.変更年月日,A.更新年月日)
order by
datediff(year,A.変更年月日,A.更新年月日)
;

結果は長いので一部を表示します。

件数 変更年 変更月 min更新年月日 max更新年月日
1 2015 8 2018-06-21 2018-06-21
2,920,304 2015 10 2015-10-26 2026-08-31
13,620 2015 11 2015-11-04 2026-08-27
15,858 2015 12 2015-12-02 2026-08-31
14,631 2016 1 2016-01-05 2026-08-31
36,548 2016 2 2016-02-02 2026-08-31
15,997 2016 3 2016-03-02 2026-08-31
18,415 2016 4 2016-04-04 2026-08-31
13,756 2016 5 2016-05-06 2026-08-31
16,097 2016 6 2016-06-02 2026-08-31
15,478 2016 7 2016-07-04 2026-08-31
14,845 2016 8 2016-08-02 2026-08-31
14,947 2016 9 2016-09-02 2026-08-31
表全体はこちら
件数 変更年 変更月 min更新年月日 max更新年月日
1 2015 8 2018-06-21 2018-06-21
2,920,304 2015 10 2015-10-26 2026-08-31
13,620 2015 11 2015-11-04 2026-08-27
15,858 2015 12 2015-12-02 2026-08-31
14,631 2016 1 2016-01-05 2026-08-31
36,548 2016 2 2016-02-02 2026-08-31
15,997 2016 3 2016-03-02 2026-08-31
18,415 2016 4 2016-04-04 2026-08-31
13,756 2016 5 2016-05-06 2026-08-31
16,097 2016 6 2016-06-02 2026-08-31
15,478 2016 7 2016-07-04 2026-08-31
14,845 2016 8 2016-08-02 2026-08-31
14,947 2016 9 2016-09-02 2026-08-31
15,350 2016 10 2016-10-04 2026-08-31
14,959 2016 11 2016-11-02 2026-08-31
16,460 2016 12 2016-12-02 2026-08-31
23,931 2017 1 2017-01-05 2026-08-31
14,554 2017 2 2017-02-02 2026-08-31
16,406 2017 3 2017-03-02 2026-08-31
18,377 2017 4 2017-04-04 2026-08-31
15,400 2017 5 2017-05-02 2026-08-28
17,062 2017 6 2017-06-02 2026-08-31
15,896 2017 7 2017-07-04 2026-08-28
15,366 2017 8 2017-08-02 2026-08-31
15,357 2017 9 2017-09-04 2026-08-31
16,335 2017 10 2017-10-03 2026-08-31
14,627 2017 11 2017-11-02 2026-08-31
16,467 2017 12 2017-12-04 2026-08-31
26,620 2018 1 2018-01-05 2026-08-31
13,578 2018 2 2018-02-02 2026-08-31
15,266 2018 3 2018-03-02 2026-08-27
20,202 2018 4 2018-04-03 2026-08-31
15,872 2018 5 2018-05-02 2026-08-25
16,128 2018 6 2018-06-04 2026-08-31
16,753 2018 7 2018-07-03 2026-08-31
15,863 2018 8 2018-08-02 2026-08-27
14,204 2018 9 2018-09-04 2026-08-31
19,896 2018 10 2018-10-02 2026-08-27
16,283 2018 11 2018-11-02 2026-08-24
16,467 2018 12 2018-12-04 2026-08-28
26,075 2019 1 2019-01-07 2026-08-25
14,235 2019 2 2019-02-04 2026-08-28
15,171 2019 3 2019-03-04 2026-08-28
19,793 2019 4 2019-04-02 2026-08-31
17,477 2019 5 2019-05-08 2026-08-27
16,899 2019 6 2019-06-04 2026-08-26
18,775 2019 7 2019-07-02 2026-08-28
15,242 2019 8 2019-08-02 2026-08-26
15,777 2019 9 2019-09-03 2026-08-28
19,089 2019 10 2019-10-02 2026-08-20
16,855 2019 11 2019-11-05 2026-08-28
17,748 2019 12 2019-12-03 2026-08-19
27,781 2020 1 2020-01-07 2026-08-27
14,625 2020 2 2020-02-03 2026-08-31
17,793 2020 3 2020-03-02 2026-08-31
20,157 2020 4 2020-04-01 2026-08-24
14,124 2020 5 2020-05-01 2026-08-28
18,216 2020 6 2020-06-01 2026-08-31
19,865 2020 7 2020-07-01 2026-08-31
17,239 2020 8 2020-08-03 2026-08-31
18,735 2020 9 2020-09-01 2026-08-28
20,602 2020 10 2020-10-01 2026-08-27
18,049 2020 11 2020-11-02 2026-08-28
19,608 2020 12 2020-12-01 2026-08-31
28,105 2021 1 2021-01-04 2026-08-31
16,660 2021 2 2021-02-01 2026-08-31
20,789 2021 3 2021-03-01 2026-08-27
24,698 2021 4 2021-04-01 2026-08-31
17,032 2021 5 2021-05-06 2026-08-31
21,668 2021 6 2021-06-01 2026-08-27
19,571 2021 7 2021-07-01 2026-08-28
18,601 2021 8 2021-08-02 2026-08-31
19,609 2021 9 2021-09-01 2026-08-26
21,140 2021 10 2021-10-01 2026-08-31
20,269 2021 11 2021-11-01 2026-08-31
19,824 2021 12 2021-12-01 2026-08-28
28,586 2022 1 2022-01-04 2026-08-24
16,983 2022 2 2022-02-01 2026-08-27
20,691 2022 3 2022-03-01 2026-08-27
23,105 2022 4 2022-04-01 2026-08-31
18,322 2022 5 2022-05-02 2026-08-26
22,052 2022 6 2022-06-01 2026-08-28
20,347 2022 7 2022-07-01 2026-08-28
20,467 2022 8 2022-08-01 2026-08-31
19,539 2022 9 2022-09-01 2026-08-31
21,468 2022 10 2022-10-03 2026-08-31
21,213 2022 11 2022-11-01 2026-08-26
20,883 2022 12 2022-12-01 2026-08-26
29,498 2023 1 2023-01-04 2026-08-31
19,031 2023 2 2023-02-01 2026-08-28
23,214 2023 3 2023-03-01 2026-08-24
25,918 2023 4 2023-04-03 2026-08-28
21,949 2023 5 2023-05-01 2026-08-31
24,632 2023 6 2023-06-01 2026-08-26
23,258 2023 7 2023-07-03 2026-08-31
24,274 2023 8 2023-08-01 2026-08-31
23,862 2023 9 2023-09-01 2026-08-31
26,980 2023 10 2023-10-02 2026-08-28
23,423 2023 11 2023-11-01 2026-08-24
24,649 2023 12 2023-12-01 2026-08-28
52,966 2024 1 2024-01-04 2026-08-31
22,028 2024 2 2024-02-01 2026-08-25
24,337 2024 3 2024-03-01 2026-08-31
29,845 2024 4 2024-04-01 2026-08-31
25,606 2024 5 2024-05-01 2026-08-27
24,888 2024 6 2024-06-03 2026-08-28
27,468 2024 7 2024-07-01 2026-08-31
25,463 2024 8 2024-08-01 2026-08-31
23,610 2024 9 2024-09-02 2026-08-27
28,934 2024 10 2024-10-01 2026-08-31
27,483 2024 11 2024-11-01 2026-08-31
25,440 2024 12 2024-12-02 2026-08-31
86,610 2025 1 2025-01-06 2026-08-28
23,371 2025 2 2025-02-03 2026-08-28
27,570 2025 3 2025-03-03 2026-08-31
32,775 2025 4 2025-04-01 2026-08-31
27,685 2025 5 2025-05-01 2026-08-31
29,114 2025 6 2025-06-02 2026-08-28
31,093 2025 7 2025-07-01 2026-08-31
26,169 2025 8 2025-08-01 2026-08-31
29,155 2025 9 2025-09-01 2026-08-31
34,775 2025 10 2025-10-01 2026-08-31
25,887 2025 11 2025-11-04 2026-08-31
29,612 2025 12 2025-12-01 2026-08-28
76,661 2026 1 2026-01-05 2026-08-31
26,543 2026 2 2026-02-02 2026-08-31
31,802 2026 3 2026-03-02 2026-08-28
36,398 2026 4 2026-04-01 2026-08-28
27,909 2026 5 2026-05-01 2026-08-31
33,383 2026 6 2026-06-01 2026-08-31
33,500 2026 7 2026-07-01 2026-08-31
23,275 2026 8 2026-08-03 2026-08-31
件数 変更から更新までの期間_年単位
4,351,297 0
74,280 1
46,739 2
352,740 3
252,775 4
174,829 5
138,689 6
113,178 7
97,405 8
90,248 9
84,840 10
50,751 11

気になるのは、更新年月日が変更年月日に比べてだいぶ遅れていますね。
項目に法務省等に届け出た日付の情報が無いので、どこが原因かはわかりませんね。

検索対象外の状態をみてみましょう。
検索対象外は、次のように規定されています。

設立登記法人のうち、登記上の所在地が、住居表示の実施や区画整理等で既に廃止されており、現在では存在しない住所表記となっていることが確認できた法人について、検索対象から除外していることを示すデータ項目。
なお、この情報は法人単位で設定しており、データ提供時点の情報を表している。


select 
    count(A.一連番号) as 件数
    ,A.検索対象外
    ,C6.検索対象外_項目値
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
group by 
    A.検索対象外
    ,C6.検索対象外_項目値
;

件数 検索対象外 検索対象外_項目値
5,787,472 0 検索対象
40,299 1 検索対象外

上記の検索対象外の規定からみると所在地が不正との意味なのですが、どうして1%未満とはいえ住所が不正な状態で届け出を受け取るのだろうと不思議に思います。

処理区分、登記記録の閉鎖等の事由について、みてみましょう。
処理区分、登記記録の閉鎖等の事由は次のように規定されています。

  • 処理区分

法人番号の指定、商号又は所在地に変更等が発生した事由をコード値で表す項目。
※英語表記及びフリガナの登録並びに検索対象除外の情報の更新に係る処理区分はありません(これらの項目は、提供済みのデータに英語表記若しくはフリガナの登録又は検索対象除外の情報を追加した上で、訂正データとして提供するため)。
値「01」は、新たに法人番号が指定されたことを表す情報であることを意味する。
値「11」は、商号又は名称が変更されたことを表す情報であることを意味する。
値「12」は、国内における本店又は主たる事務所の所在地の変更、国内に本店又は主たる事務所がない法人等の場合は、国内における事務所又は営業所の所在地の変更又は、市区町村合併等により住居表示が変更されたことを表す情報であることを意味する。
値「13」は、国外における本店又は主たる事務所の所在地が変更されたことを表す情報であることを意味する。
値「21」は、清算の結了、合併による解散などの事由により登記記録の閉鎖等の事由が生じたことを表す情報であることを意味する。
値「22」は、清算の結了、合併による解散などの事由により登記記録の閉鎖等が生じた後、清算結了等の手続に瑕疵があり、清算結了が無効になるなどの事由により登記記録が復活等したことを表す情報であることを意味する。
値「71」は、設立登記法人が、吸収合併を行ったことを表す情報であることを意味する。
値「72」は、吸収合併後存続した設立登記法人の吸収合併について無効判決が確定したことを表す情報であることを意味する。
値「81」は、設立登記法人について商号の登記が抹消されたことを表す情報であることを意味する。
値「99」は、法人番号の重複指定等の理由により法人番号の指定を撤回したこと及び公表に同意した人格のない社団等の代表者又は管理人が、公表の同意を撤回したことを表す情報であることを意味する。
値「99」が設定された場合は、「一連番号」、「法人番号」及び「更新年月日」を除く全ての項目値はブランクとなる。

  • 登記記録の閉鎖等の事由

閉鎖の事由は、登記記録の閉鎖等が生じた事由を表すデータ項目。
01 清算の結了等
設立登記法人について、清算の結了等により登記記録が閉鎖された事を意味する。
11 合併による解散等
設立登記法人について、合併による解散等により登記記録が閉鎖された事を意味する。
21 登記官による閉鎖
設立登記法人について、商業登記規則第81条により登記記録の閉鎖された事を意味する。
31 その他の清算の結了等
設立登記法人以外について、清算の結了等に類する事由が生じた場合に表示する。

Query4_状態確認_処理区分ほか.sql

select 
    count(A.一連番号) as 件数
    ,A.処理区分
    ,C1.処理区分_項目値
    ,A.登記記録の閉鎖等の事由
    ,C4.登記記録の閉鎖等の事由_項目値
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
group by 
    A.処理区分
    ,C1.処理区分_項目値
    ,A.登記記録の閉鎖等の事由
    ,C4.登記記録の閉鎖等の事由_項目値
order by 
    A.処理区分
    ,C1.処理区分_項目値
    ,A.登記記録の閉鎖等の事由
    ,C4.登記記録の閉鎖等の事由_項目値
;

select 
    datepart(year,A.変更年月日) as 年
    ,count(A.一連番号) as 件数
    ,count(case when A.処理区分 in (1) then 1 else null end) as N'法人増加'
    ,count(case when A.処理区分 in (21,71,81) then 1 else null end) as N'法人減少'
    ,count(case when A.処理区分 in (11,12,13) then 1 else null end) as N'法人登記の変更'
    ,count(case when A.処理区分 in (22,72) then 1 else null end) as N'法人登記の復活など'
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
group by
    datepart(year,A.変更年月日)
order by
    datepart(year,A.変更年月日)
;

select 
    datepart(year,A.変更年月日) as 年
    ,count(case when A.処理区分 in (1) then 1 else null end) 
    - count(case when A.処理区分 in (21,71,81) then 1 else null end) as N'法人の増減'
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
group by
    datepart(year,A.変更年月日)
order by
    datepart(year,A.変更年月日)
;

件数 処理
区分
処理区分_項目値 登記記録
の閉鎖等
の事由
登記記録の閉鎖等
の事由_項目値
3,928,197 1 新規 NULL NULL
2 1 新規 31 その他の清算の結了等
119,242 11 商号又は名称の変更 NULL NULL
966,591 12 国内所在地の変更 NULL NULL
1 12 国内所在地の変更 31 その他の清算の結了等
801 13 国外所在地の変更 NULL NULL
506,590 21 登記記録の閉鎖等 1 清算の結了等
61,216 21 登記記録の閉鎖等 11 合併による解散等
209,937 21 登記記録の閉鎖等 21 登記官による閉鎖
1,415 21 登記記録の閉鎖等 31 その他の清算の結了等
2,905 22 登記記録の復活等 NULL NULL
30,854 71 吸収合併 NULL NULL
9 72 吸収合併無効 NULL NULL
11 81 商号の登記の抹消 NULL NULL
年 件数 法人増加 法人減少 法人登記の変更 法人登記の復活など
2015 2,949,783 2,921,854 13,487 14,440 2
2016 207,483 66,793 75,893 64,769 28
2017 199,778 70,122 62,476 67,124 56
2018 207,132 68,598 62,849 75,605 80
2019 213,136 72,715 64,361 75,972 88
2020 226,794 76,621 63,086 86,932 155
2021 247,966 92,036 62,259 93,308 363
2022 253,656 95,575 58,896 98,806 379
2023 290,688 113,677 64,817 111,822 372
2024 338,068 119,246 68,679 149,732 411
2025 403,816 136,653 123,383 143,295 485
2026 289,471 94,309 89,837 104,830 495
年 法人の増減
2015 2,908,367
2016 -9,100
2017 7,646
2018 5,749
2019 8,354
2020 13,535
2021 29,777
2022 36,679
2023 48,860
2024 50,567
2025 13,270
2026 4,472

処理区分の規定から法人が増加するのは処理区分='新規'、法人が減少するのは処理区分=('登記記録の閉鎖等','吸収合併','商号の登記の抹消')となります。
法人数の増減でみると
法人の増加数: 3,928,197+1=3,928,198
法人の減少数: 506,590+61,216+209,937+1,415+30,854+11=810,023

年毎の増減数をみると2015年は制度当初なので290万法人の増加ですが、2016年には減少、2017年以降はすべて増加となっています。
新型コロナウイルス感染症による影響を2020年初頭から2023年春頃とすると、コロナ化でどんどん増加しているのが2025年以降は落ち着いてきているようです。

3-2. 同じ住所に複数の企業が登録されているとの話は本当ですか?

バーチャルオフィスやペーパーカンパニーなどで「同じ住所に多数の法人が存在する」という話をよく耳にしますが、実際はどうなのでしょうか?

a) 集計をしてみる

都道府県名・市区町村名・丁目番地等が同じ法人を集計し、同じ住所に存在する法人数をカウントします。

同所在地.sql

select top 30 
row_number() over (order by PA.件数 desc) as 順位,
*
from (
select
    A.国内所在地_都道府県
    ,A.国内所在地_市区町村
    ,A.国内所在地_丁目番地等
    ,count(A.一連番号) as 件数
    ,count(case when A.処理区分 in (21,71,81) then 1 else null end)
     as 抹消法人件数
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
where A.国内所在地_都道府県 is not null
group by 
    A.国内所在地_都道府県
    ,A.国内所在地_市区町村
    ,A.国内所在地_丁目番地等
) PA
order by 
   PA.件数 desc
;

順
位
国内
所在
地_
都道
府県
国内所
在地_
市区町村
国内所在地_丁目番地等 件数 抹消
法人
件数
1 東京都 渋谷区 道玄坂1丁目10番8号
渋谷道玄坂東急ビル2F-C
4643 137
2 東京都 千代田区 丸の内1丁目4番1号
東京共同会計事務所内
3351 426
3 東京都 渋谷区 神宮前6丁目23番4号
桑野ビル2階
2587 156
4 東京都 港区 浜松町2丁目2番15号
浜松町ダイヤビル2F
2355 189
5 東京都 港区 南青山2丁目2番15号 2201 232
6 東京都 新宿区 西新宿3丁目3番13号
西新宿水間ビル6階
2107 73
7 東京都 中央区 銀座1丁目12番4号
N&EBLD.6F
1868 46
8 東京都 港区 南青山3丁目1番36号
青山丸竹ビル6F
1868 52
9 東京都 新宿区 西新宿3丁目3番13号
西新宿水間ビル2F
1852 49
10 東京都 港区 虎ノ門3丁目22番10-201号 1824 903
11 大阪府 大阪市北区 梅田1丁目2番2号
大阪駅前第2ビル12-12
1763 34
12 東京都 港区 北青山1丁目3番1号
アールキューブ青山3階
1750 45
13 東京都 千代田区 丸の内3丁目1番1号
東京共同会計事務所内
1504 1487
14 東京都 千代田区 霞が関3丁目2-6
東京倶楽部ビルディング6階
1489 0
15 東京都 中央区 銀座1丁目22番11号
銀座大竹ビジデンス2F
1483 50
16 東京都 千代田区 霞が関3丁目2番5号 1481 381
17 東京都 中央区 日本橋室町1丁目11番12号
日本橋水野ビル7階
1398 33
18 東京都 中央区 銀座1丁目22番11号
銀座大竹ビジデンス2階
1356 105
19 東京都 港区 南青山2丁目2番15号
ウィン青山942
1296 170
20 東京都 渋谷区 渋谷2丁目19-15
宮益坂ビルディング609
1147 54
21 東京都 港区 浜松町2丁目2番15号 1101 172
22 東京都 千代田区 丸の内2丁目7番2号 1071 64
23 東京都 港区 元赤坂1丁目1番7号 955 493
24 東京都 中央区 銀座7丁目13番6号
サガミビル2階
942 131
25 東京都 中央区 日本橋1丁目4番1号 884 369
26 東京都 中央区 日本橋1丁目4番1号
日本橋一丁目ビルディング
850 350
27 東京都 千代田区 神田和泉町1番地6-16
ヤマトビル405
810 23
28 愛知県 名古屋市中村区 名駅4丁目24番5号
第2森ビル401
797 30
29 神奈川県 横浜市西区 浅間町1丁目4番3号
ウィザードビル402
749 17
30 東京都 渋谷区 恵比寿西2丁目8番4号
EX恵比寿西ビル5階
744 11

「渋谷道玄坂東急ビル2F-C」が減少を差し引くと約4,500法人と一番多いですね。
でもちょっと待ってください。
15位 「銀座1丁目22番11号銀座大竹ビジデンス2F」
と
18位 「銀座1丁目22番11号銀座大竹ビジデンス2階」
や
25位 「日本橋1丁目4番1号」
と
26位 「日本橋1丁目4番1号日本橋一丁目ビルディング」
は同じではないでしょうか。
表記ゆれがあるってことですね。
データベース的には表記ゆれを取り除きたいところです。

b) 丁目番地等のローマ数字に着目して記号化

住所表記における日本語や記号は多様な表現ができると思います。
これを「統一的」に表現する方法として、数字のみを抽出し、"-"で繋ぐ方法があります。
例えば、
15位 「銀座1丁目22番11号銀座大竹ビジデンス2F」
と
18位 「銀座1丁目22番11号銀座大竹ビジデンス2階」
を次のルールで変換します。

  • 最初のローマ数字("0"~"9")より前の文字列はそのままとする。
  • ローマ数字以外の文字列は"-"に変換する。
  • ローマ数字は全角文字として変換する。
  • 変換後の文字列で末尾の"-"は省略する。

変換してみると
15位 「銀座1丁目22番11号銀座大竹ビジデンス2F」
⇒ 「銀座-1-22-11-2」
と
18位 「銀座1丁目22番11号銀座大竹ビジデンス2階」
⇒ 「銀座-1-22-11-2」
で合致することになります。

変換の結果はテーブルとして保存することにします。

変換関連のスクリプト
変換関数の定義.sql

IF OBJECT_ID('private_NormalizeAddressPattern') IS NOT NULL DROP FUNCTION dbo.private_NormalizeAddressPattern
GO
CREATE   FUNCTION [dbo].[private_NormalizeAddressPattern] (@input NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
WITH SCHEMABINDING
AS
BEGIN
    IF @input IS NULL OR @input = ''
        RETURN @input;

    DECLARE @str NVARCHAR(MAX) = @input;

    -- ==========================================
    -- 0. 事前準備: 半角数字を全角数字に統一 (要件3)
    -- ==========================================
    SET @str = REPLACE(@str, N'0', N'0');
    SET @str = REPLACE(@str, N'1', N'1');
    SET @str = REPLACE(@str, N'2', N'2');
    SET @str = REPLACE(@str, N'3', N'3');
    SET @str = REPLACE(@str, N'4', N'4');
    SET @str = REPLACE(@str, N'5', N'5');
    SET @str = REPLACE(@str, N'6', N'6');
    SET @str = REPLACE(@str, N'7', N'7');
    SET @str = REPLACE(@str, N'8', N'8');
    SET @str = REPLACE(@str, N'9', N'9');

    -- ==========================================
    -- 1. 最初の数字の位置を特定
    -- ==========================================
    -- PATINDEXで最初に全角数字が出現するインデックス(1始まり)を取得
    DECLARE @firstDigitPos INT = PATINDEX(N'%[0-9]%', @str);

    -- 数字が一切含まれない場合はそのまま返却
    IF @firstDigitPos = 0
        RETURN @str;

    -- ==========================================
    -- 2. 最初の数字より前と後に分割 (要件1)
    -- ==========================================
    DECLARE @prefix NVARCHAR(MAX) = LEFT(@str, @firstDigitPos - 1);
    DECLARE @rest   NVARCHAR(MAX) = SUBSTRING(@str, @firstDigitPos, LEN(@str) - @firstDigitPos + 1);

    -- ==========================================
    -- 3. 数字以外の連続する文字列を単一の '-' に変換 (要件2)
    -- ==========================================
    DECLARE @resultRest NVARCHAR(MAX) = N'';
    DECLARE @len INT = LEN(@rest);
    DECLARE @i INT = 1;
    DECLARE @ch NVARCHAR(1);
    DECLARE @inNonDigit BIT = 0;

    WHILE @i <= @len
    BEGIN
        SET @ch = SUBSTRING(@rest, @i, 1);

        -- 全角数字かどうか判定
        IF @ch LIKE N'[0-9]'
        BEGIN
            SET @resultRest = @resultRest + @ch;
            SET @inNonDigit = 0;
        END
        ELSE
        BEGIN
            -- 非数字ブロックの開始時のみ '-' を1つ追加
            IF @inNonDigit = 0
            BEGIN
                SET @resultRest = @resultRest + N'-';
                SET @inNonDigit = 1;
            END
        END

        SET @i = @i + 1;
    END

    -- 後半部の末尾が '-' の場合は除去
    IF RIGHT(@resultRest, 1) = N'-'
        SET @resultRest = LEFT(@resultRest, LEN(@resultRest) - 1);

    -- ==========================================
    -- 4. 前方文字列 + '-' + 後半変換結果 を結合して返却
    -- ==========================================
    RETURN @prefix + N'-' + @resultRest;
END;
GO

丁目地番などで数値抽出テーブル作成.sql

CREATE TABLE [dbo].[T法人番号_国内所在地_丁目番地等_数値抽出]
(
	  [国内所在地_丁目番地等] NVARCHAR(300) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
	, [行数] INT NOT NULL
	, [国内所在地_丁目番地等_数値抽出] AS ([dbo].[private_NormalizeAddressPattern]([国内所在地_丁目番地等]))
	, CONSTRAINT [PK__T法人番号_国内__846EBD61AA47CF9B] PRIMARY KEY ([国内所在地_丁目番地等] ASC)
)

数値化テーブルへの代入.sql

delete 
from dbo.T法人番号_国内所在地_丁目番地等_数値抽出
;

insert into dbo.
(国内所在地_丁目番地等,行数)
select 
    A.国内所在地_丁目番地等
    ,count(A.一連番号) as 行数
from dbo.T法人番号 A
group by A.国内所在地_丁目番地等
;

さて、数値のみを抽出した場合どうなるかをみてみましょう。

Query6_丁目番地等数値抽出確認.sql

select top(10)
    PA.[国内所在地_丁目番地等_数値抽出]
    ,PA.行数_数値抽出
    ,PA.パターン数
    ,PB.国内所在地_丁目番地等 as 変換前_丁目番地等
    ,PB.行数 as 変換前_行数
from (
SELECT TOP (1)
	A.[国内所在地_丁目番地等_数値抽出]
	,sum(A.行数) as 行数_数値抽出
	,count(A.[国内所在地_丁目番地等_数値抽出]) as パターン数
FROM [dbo].[T法人番号_国内所在地_丁目番地等_数値抽出] A
group by A.国内所在地_丁目番地等_数値抽出
order by count(A.[国内所在地_丁目番地等_数値抽出]) desc
) PA
left outer join dbo.[T法人番号_国内所在地_丁目番地等_数値抽出] PB
on PA.国内所在地_丁目番地等_数値抽出=PB.国内所在地_丁目番地等_数値抽出
order by PA.パターン数 desc,PA.行数_数値抽出 desc,PB.行数 desc,PB.国内所在地_丁目番地等

国内所在地_
丁目番地等_
数値抽出
行数
_
数値
抽出
パタ
ーン
数
変換前_丁目番地等 変換
前_
行数
銀座-1-12-4-7 1,581 85 銀座1丁目12-4
N&EBLD.7階
724
銀座-1-12-4-7 1,581 85 銀座1丁目12番4号
N&EBLD.7階
378
銀座-1-12-4-7 1,581 85 銀座1丁目12番4号
N&E・BLD.7階
80
銀座-1-12-4-7 1,581 85 銀座1丁目12-4
N&E・BLD.7階
34
銀座-1-12-4-7 1,581 85 銀座1丁目12-4
N&E.BLD.7階
33
銀座-1-12-4-7 1,581 85 銀座1丁目12-4
N&E-BLD.7階
26
銀座-1-12-4-7 1,581 85 銀座1丁目12番4号
N&E.BLD.7階
24
銀座-1-12-4-7 1,581 85 銀座1丁目12-4
N&EBLD.7F
22
銀座-1-12-4-7 1,581 85 銀座1丁目12番4号
N&E-BLD.7階
22
銀座-1-12-4-7 1,581 85 銀座1丁目12番4号
N&EBLD.7F
18

表記ゆれが多いもののうち上位だけを抽出しています。
いろんな書き方がされいて85パターンもバリエーションがあります。
表記ゆれを数値抽出で統合することで724から1581と倍以上に増えました。
表記ゆれは侮れませんね。

では、数値抽出で再度集計してみましょう。

Query7_同所在地_数値抽出.sql

select top 30 
row_number() over (order by PA.件数 desc) as 順位,
*
from (
select
    A.国内所在地_都道府県
    ,A.国内所在地_市区町村
    ,B.国内所在地_丁目番地等_数値抽出
    ,count(A.一連番号) as 件数
    ,count(case when A.処理区分 in (21,71,81) then 1 else null end)
     as うち抹消法人件数
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_数値抽出 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.国内所在地_都道府県 is not null
group by 
    A.国内所在地_都道府県
    ,A.国内所在地_市区町村
    ,B.国内所在地_丁目番地等_数値抽出
) PA
order by 
   PA.件数 desc
;

順
位
国内所
在地_
都道
府県
国内所在地_
市区町村
国内所在地_丁目番地等_数値抽出 件数 うち
抹消
法人
件数
1 東京都 渋谷区 道玄坂-1-10-8-2 5,284 155
2 東京都 中央区 銀座-1-22-11-2 3,487 205
3 東京都 千代田区 丸ノ内-1-4-1 3,459 446
4 東京都 渋谷区 神宮前-6-23-4-2 3,121 182
5 東京都 港区 浜松町-2-2-15-2 3,039 253
6 東京都 新宿区 西新宿-3-3-13-6 2,533 106
7 東京都 中央区 銀座-1-12-4-6 2,513 71
8 東京都 港区 南青山-2-2-15 2,372 251
9 東京都 港区 南青山-3-1-36-6 2,247 65
10 東京都 新宿区 西新宿-3-3-13-2 2,139 65
11 大阪府 大阪市北区 梅田-1-2-2-2-12-12 2,018 41
12 東京都 渋谷区 渋谷-2-19-15-609 2,003 92
13 東京都 港区 北青山-1-3-1-3 1,976 49
14 東京都 千代田区 霞が関-3-2-6-6 1,974 0
15 東京都 港区 虎ノ門-3-22-10-201 1,840 909
16 東京都 中央区 日本橋-1-4-1 1,742 720
17 東京都 千代田区 丸の内-3-1-1 1,608 1,556
18 東京都 中央区 銀座-1-12-4-7 1,581 59
19 東京都 千代田区 九段南-1-5-6-5 1,574 177
20 東京都 中央区 日本橋室町-1-11-12-7 1,561 38
21 東京都 千代田区 霞が関-3-2-5 1,552 413
22 東京都 港区 南青山-2-2-15-942 1,513 186
23 東京都 港区 浜松町-2-2-15 1,171 181
24 東京都 港区 六本木-1-6-1 1,170 382
25 東京都 千代田区 丸の内-2-7-2 1,105 73
26 東京都 中央区 銀座-7-13-6-2 1,055 149
27 東京都 千代田区 神田和泉町-1-6-16-405 992 26
28 東京都 渋谷区 神南-1-11-4-5 991 17
29 東京都 港区 元赤坂-1-1-7 958 493
30 神奈川県 横浜市西区 浅間町-1-4-3-402 917 19

順位がだいぶ変わりました。上位10位の変化をみてみましょう。

順
位
国内所
在地_
都道
府県
国内所在地_
市区町村
国内所在地_
丁目番地等_数値抽出
順位の
変化
前の順位
1 東京都 渋谷区 道玄坂-1-10-8-2 → 1
2 東京都 中央区 銀座-1-22-11-2 ↑↑ 15と18
3 東京都 千代田区 丸ノ内-1-4-1 ↓ 2
4 東京都 渋谷区 神宮前-6-23-4-2 ↓ 3
5 東京都 港区 浜松町-2-2-15-2 ↓ 4
6 東京都 新宿区 西新宿-3-3-13-6 → 6
7 東京都 中央区 銀座-1-12-4-6 → 7
8 東京都 港区 南青山-2-2-15 ↓ 5
9 東京都 港区 南青山-3-1-36-6 ↓ 8
10 東京都 新宿区 西新宿-3-3-13-2 ↓ 9
 
15 東京都 港区 虎ノ門-3-22-10-201 ↓ 10

結局一番多く法人が登録されているのは「東京都 渋谷区 道玄坂-10-8-2」ということになりました。
ただ、数値抽出した形ではわかりにくいので、数値抽出した丁目番地等で統合した後で一番件数が多い表記方法に置き換えて集計するようにします。

丁目番地等の代表読替
代表読替のテーブル作成.sql

CREATE TABLE [dbo].[T法人番号_国内所在地_丁目番地等_代表読替]
(
	  [国内所在地_丁目番地等] NVARCHAR(300) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
	, [行数] INT NOT NULL
	, [国内所在地_丁目番地等_数値抽出] NVARCHAR(300) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
	, [国内所在地_丁目番地等_代表読替] NVARCHAR(300) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL
	, CONSTRAINT [PK__T法人番号_国内__846EBD61F9185A17] PRIMARY KEY ([国内所在地_丁目番地等] ASC)
);

代表読替データ生成.sql

insert into dbo.T法人番号_国内所在地_丁目番地等_代表読替
(
	国内所在地_丁目番地等
	,行数
	,国内所在地_丁目番地等_数値抽出
	,国内所在地_丁目番地等_代表読替
)
select 
	A.国内所在地_丁目番地等
	,A.行数
	,A.国内所在地_丁目番地等_数値抽出
	,B.国内所在地_丁目番地等_代表読替
from dbo.T法人番号_国内所在地_丁目番地等_数値抽出 A
left outer join 
(
	select
		SA.国内所在地_丁目番地等_数値抽出
		,SA.国内所在地_丁目番地等 as 国内所在地_丁目番地等_代表読替
		,row_number() over (partition by SA.国内所在地_丁目番地等_数値抽出 order by SA.[行数] desc) as 順位
	from dbo.T法人番号_国内所在地_丁目番地等_数値抽出 SA
) B
on A.国内所在地_丁目番地等_数値抽出=B.国内所在地_丁目番地等_数値抽出
and B.順位=1
;

では代表読替による上位10位までをみてみましょう。

Query8_同所在地_代表読替.sql

select top (10) 
row_number() over (order by PA.件数 desc) as 順位,
*
from (
select
    A.国内所在地_都道府県
    ,A.国内所在地_市区町村
    ,B.国内所在地_丁目番地等_代表読替
    ,count(A.一連番号) as 件数
    ,count(case when A.処理区分 in (21,71,81) then 1 else null end)
     as うち抹消法人件数
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_代表読替 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.国内所在地_都道府県 is not null
group by 
    A.国内所在地_都道府県
    ,A.国内所在地_市区町村
    ,B.国内所在地_丁目番地等_代表読替
) PA
order by 
   PA.件数 desc
;

順
位
国内所在地_
都道府県
国内所
在地_
市区町村
国内所在地_
丁目番地等_
代表読替
件数 うち
抹消
法人
件数
1 東京都 渋谷区 道玄坂1丁目10番8号
渋谷道玄坂東急ビル2F-C
5,284 155
2 東京都 中央区 銀座1丁目22番11号
銀座大竹ビジデンス2F
3,487 205
3 東京都 千代田区 丸の内1丁目4番1号
東京共同会計事務所内
3,459 446
4 東京都 渋谷区 神宮前6丁目23番4号
桑野ビル2階
3,121 182
5 東京都 港区 浜松町2丁目2番15号
浜松町ダイヤビル2F
3,039 253
6 東京都 新宿区 西新宿3丁目3番13号
西新宿水間ビル6階
2,533 106
7 東京都 中央区 銀座1丁目12番4号
N&EBLD.6F
2,513 71
8 東京都 港区 南青山2丁目2番15号 2,372 251
9 東京都 港区 南青山3丁目1番36号
青山丸竹ビル6F
2,247 65
10 東京都 新宿区 西新宿3丁目3番13号
西新宿水間ビル2F
2,139 65

ちなみに、1位から3位の住所を調べてみると

1位 「東京都渋谷区道玄坂1丁目10番8号渋谷道玄坂東急ビル2F-C」
=> GMOオフィスサポート渋谷オフィス
https://www.gmo-office.com/area/shibuya/

2位 「東京都中央区銀座1丁目22番11号銀座大竹ビジデンス2F」
=> レゾナンス銀座店
https://virtualoffice-resonance.jp/access/access-ginza/

3位 「東京都千代田区丸の内1丁目4番1号東京共同会計事務所内」
=> 東京共同会計事務所
https://www.tkao.com/about-us/company/

との結果でした。

3-3. 出来てすぐに無くなる会社ってあるの?

a)出来てすぐに無くなる会社の集計

「出来てすぐ無くなる会社」を、次のように定義します。

  • 「会社が出来る」とは、法人として登記されることとし、法人番号指定年月日に行われたものとみなす。
  • 「会社が無くなる」とは、登記記録の閉鎖等または吸収合併または商号の登記の抹消が行われることとし、登記記録の閉鎖等年月日(空欄の場合は変更年月日)に行われたものとみなす。
  • 「すぐ」とは、「会社が出来る」から「会社が無くなる」までが1年未満に行われることとする。

では、「出来てすぐ無くなる会社」をみてみましょう。


select 
	row_number() over (order by PA.件数 desc) as 順位
	,*
from (
select top (10)
datediff(DAY,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日)) as 出来てから無くなるまでの日数
,count(A.一連番号) as 件数
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_代表読替 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.処理区分 in (21,71,81)
and (A.登記記録の閉鎖等年月日 is not null or A.変更年月日 is not null)
and datediff(DAY,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))<366
group by
datediff(DAY,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
order by 
count(A.一連番号) desc
) PA
;

select 
	row_number() over (order by PA.件数 desc) as 順位
	,*
from (
select top (10)
datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日)) as 出来てから無くなるまでの月数
,count(A.一連番号) as 件数
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_代表読替 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.処理区分 in (21,71,81)
and (A.登記記録の閉鎖等年月日 is not null or A.変更年月日 is not null)
--and datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))<12
group by
datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
order by 
count(A.一連番号) desc
) PA
;

順
位
出来てから
無くなるま
での日数
件数 処理区分_項目値 登記記録の
閉鎖等の事由_
項目値
1 119 3,992 登記記録の閉鎖等 登記官による閉鎖
2 127 2,514 登記記録の閉鎖等 登記官による閉鎖
3 120 2,121 登記記録の閉鎖等 登記官による閉鎖
4 133 1,988 登記記録の閉鎖等 登記官による閉鎖
5 126 1,936 登記記録の閉鎖等 登記官による閉鎖
6 121 1,751 登記記録の閉鎖等 登記官による閉鎖
7 144 1,568 登記記録の閉鎖等 登記官による閉鎖
8 128 1,229 登記記録の閉鎖等 登記官による閉鎖
9 136 1,140 登記記録の閉鎖等 登記官による閉鎖
10 134 1,053 登記記録の閉鎖等 登記官による閉鎖

1位から10位まで登記官による閉鎖なんですね。
期間としては119日から144日なので3~4か月くらいでしょうか。

月数単位で長期の傾向です。

順位 出来てから
無くなるま
での月数
件数 処理区分_項目値 登記記録の
閉鎖等の事由_
項目値
1 111 59,927 登記記録の閉鎖等 登記官による閉鎖
2 123 47,365 登記記録の閉鎖等 登記官による閉鎖
3 4 22,791 登記記録の閉鎖等 登記官による閉鎖
4 27 10,809 登記記録の閉鎖等 登記官による閉鎖
5 39 10,780 登記記録の閉鎖等 登記官による閉鎖
6 51 10,656 登記記録の閉鎖等 登記官による閉鎖
7 63 10,053 登記記録の閉鎖等 登記官による閉鎖
8 15 9,572 登記記録の閉鎖等 登記官による閉鎖
9 75 8,386 登記記録の閉鎖等 登記官による閉鎖
10 87 8,242 登記記録の閉鎖等 登記官による閉鎖

1位と2位の111カ月と123カ月は9年3カ月と10年3カ月で、2015年10月の法人番号制度を導入した時期とほぼ一致するので、制度導入以前からあった法人が無くなったと考えた方が適当でしょう。
なので、3位の4カ月は前述の日数の集計とも合致します。
そのあとは、4位2年3カ月、5位3年3カ月、6位4年3カ月、7位5年3カ月、8位1年3カ月、9位6年3カ月、10位7年3カ月と続きます。
4位以下はすべて3カ月が付くのは、決算日の翌日から2か月以内に申告と納税を同時に行う必要があるからではないでしょうか。

b)背景を調べてみよう

「出来て1年以内で無くなる会社」の背景を考察してみます。


if object_id(N'tempdb..#無くなった会社') is not null
	drop table #無くなった会社;

select 
A.一連番号
,datediff(DAY,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日)) as 出来てから無くなるまでの日数
,A.処理区分
,C1.処理区分_項目値
,A.変更年月日
,A.法人種別
,C3.法人種別_項目値
,A.国内所在地_都道府県
,A.国内所在地_市区町村
,A.登記記録の閉鎖等年月日
,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
,A.変更事由の詳細
,A.法人番号指定年月日
into #無くなった会社
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_代表読替 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.処理区分 in (21,71,81)
;

with PA as (
select top (10)
A.処理区分_項目値
,A.登記記録の閉鎖等の事由_項目値
,count(A.一連番号) as 件数
from #無くなった会社 A
where
(A.登記記録の閉鎖等年月日 is null or A.登記記録の閉鎖等年月日>dateadd(year,1,'2015-10-05'))
group by
A.処理区分_項目値
,A.登記記録の閉鎖等の事由_項目値
order by 
count(A.一連番号) desc
)
select 
	row_number() over (order by PPA.件数 desc) as 順位
	,PPA.*
	,floor(100.0*PPA.件数 / (select sum(件数) from PA)) as 比率
from PA PPA
;

with PA as (
select top (10)
A.処理区分_項目値
,A.登記記録の閉鎖等の事由_項目値
,count(A.一連番号) as 件数
from #無くなった会社 A
where
(A.登記記録の閉鎖等年月日 is null or A.登記記録の閉鎖等年月日>dateadd(year,1,'2015-10-05'))
and A.出来てから無くなるまでの日数<366
group by
A.処理区分_項目値
,A.登記記録の閉鎖等の事由_項目値
order by 
count(A.一連番号) desc
)
select 
	row_number() over (order by PPA.件数 desc) as 順位
	,PPA.*
	,floor(100.0*PPA.件数 / (select sum(件数) from PA)) as 比率
from PA PPA
;

全体の結果です。

順位 処理区分_項目値 登記記録の
閉鎖等の事由_
項目値
件数 比率
1 登記記録の閉鎖等 清算の結了等 460,868 62
2 登記記録の閉鎖等 登記官による閉鎖 186,778 25
3 登記記録の閉鎖等 合併による解散等 56,299 7
4 吸収合併 NULL 30,854 4
5 登記記録の閉鎖等 その他の清算の結了等 1,228 0
6 商号の登記の抹消 NULL 11 0

出来て1年以内に無くなった会社の結果です。

順位 処理区分_項目値 登記記録の
閉鎖等の事由_
項目値
件数 比率
1 登記記録の閉鎖等 清算の結了等 9,930 73
2 吸収合併 NULL 2,248 16
3 登記記録の閉鎖等 合併による解散等 1,179 8
4 登記記録の閉鎖等 その他の清算の結了等 66 0
5 登記記録の閉鎖等 登記官による閉鎖 21 0
6 商号の登記の抹消 NULL 1 0

出来て1年以内に無くなった会社は、全体の傾向と比べて

  • 清算の結了等、吸収合併の比率が高い(それぞれ、73%>62%、16%>4%)
  • 合併による解散等、その他の清算の結了等、商号の登記の抹消の比率はほぼ同じ(それぞれ、8%≒7%、0%≒0%、0%≒0%)
  • 登記官による閉鎖の比率が低い(0%<25%)
    となりました。
    きっぱりと無くなるか、吸収合併される会社が多くなるんですね。

c)登記官による閉鎖を除いた場合の出来てすぐ無くなった会社は?

背景を調べた表をみてみると、登記官による閉鎖の割合は低いことがわかりました。
とするとその前の出来てすぐ無くなった会社の集計で登記官による閉鎖ばかりが出ているのは、特殊事例を集計している可能性がありますね。
では、登記官による閉鎖を除いた場合、どうなるのでしょう。

Query11_出来てすぐ無くなる会社_登記官による閉鎖以外.sql

select 
	row_number() over (order by PA.件数 desc) as 順位
	,*
from (
select top (10)
datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日)) as 出来てから無くなるまでの月数
,count(A.一連番号) as 件数
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_代表読替 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.処理区分 in (21,71,81)
and (isnull(A.登記記録の閉鎖等年月日,A.変更年月日)>=dateadd(year,1,'2015-10-05'))
and datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))<12
and (A.登記記録の閉鎖等の事由 is null or A.登記記録の閉鎖等の事由!=21)
group by
datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
order by 
count(A.一連番号) desc
) PA
;

select 
	row_number() over (order by PA.件数 desc) as 順位
	,*
from (
select top (5)
datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日)) as 出来てから無くなるまでの月数
,count(A.一連番号) as 件数
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
from dbo.T法人番号 A
left outer join dbo.C処理区分 C1 on A.処理区分=C1.処理区分CD
left outer join dbo.C訂正区分 C2 on A.訂正区分=C2.訂正区分CD
left outer join dbo.C法人種別 C3 on A.法人種別=C3.法人種別CD
left outer join dbo.C登記記録の閉鎖等の事由 C4 on A.登記記録の閉鎖等の事由=C4.登記記録の閉鎖等の事由CD
left outer join dbo.C最新履歴 C5 on A.最新履歴=C5.最新履歴CD
left outer join dbo.C検索対象外 C6 on A.検索対象外=C6.検索対象外CD
left outer join dbo.T法人番号_国内所在地_丁目番地等_代表読替 B on A.国内所在地_丁目番地等=B.国内所在地_丁目番地等
where A.処理区分 in (21,71,81)
and (isnull(A.登記記録の閉鎖等年月日,A.変更年月日)>=dateadd(year,1,'2015-10-05'))
--and datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))<12
and (A.登記記録の閉鎖等の事由 is null or A.登記記録の閉鎖等の事由!=21)
group by
datediff(MONTH,A.法人番号指定年月日,isnull(A.登記記録の閉鎖等年月日,A.変更年月日))
--,A.処理区分
,C1.処理区分_項目値
--,A.登記記録の閉鎖等の事由
,C4.登記記録の閉鎖等の事由_項目値
order by 
count(A.一連番号) desc
) PA
;

出来てから1年以内に無くなる会社の集計です。

順
位
出来てから
無くなるま
での月数
件数 処理区分_項目値 登記記録の
閉鎖等の事由_
項目値
1 11 1079 登記記録の閉鎖等 清算の結了等
2 9 972 登記記録の閉鎖等 清算の結了等
3 10 924 登記記録の閉鎖等 清算の結了等
4 8 887 登記記録の閉鎖等 清算の結了等
5 6 792 登記記録の閉鎖等 清算の結了等
6 7 788 登記記録の閉鎖等 清算の結了等
7 4 777 登記記録の閉鎖等 清算の結了等
8 3 776 登記記録の閉鎖等 清算の結了等
9 5 728 登記記録の閉鎖等 清算の結了等
10 2 701 登記記録の閉鎖等 清算の結了等

1年以内とはいっても1位、2位が11カ月、9カ月と1年近く頑張っているケースが多いですね。
半年以内は少ないみたいです。

1年以上を含めた傾向でみてみましょう。

順
位
出来てから
無くなるま
での月数
件数 処理区分_項目値 登記記録の
閉鎖等の事由_
項目値
1 26 5,899 登記記録の閉鎖等 清算の結了等
2 14 5,828 登記記録の閉鎖等 清算の結了等
3 38 5,407 登記記録の閉鎖等 清算の結了等
4 50 5,314 登記記録の閉鎖等 清算の結了等
5 20 5,194 登記記録の閉鎖等 清算の結了等

26カ月(2年2カ月)が一番多く、次が14カ月(1年2カ月)となっています。
登記官による閉鎖を含めたときの集計で3位(おそらく実質1位)の4カ月がなく、4位(おそらく実質2位)の27カ月が1位の26カ月とほぼ等しいと言えます。
2年目をやり遂げて心折れるパターンが多いんですね。

4. おわりに

国税庁の法人番号データは、日本の経済活動や企業動向の一端が見える非常に面白いデータセットです。

皆さんもぜひオープンデータをダウンロードして集計してみてください!


9/7 追記

一部異常と思われるデータがありますので、ご自身で集計する際はご注意ください。

異常と思われるデータ.sql

SELECT  
	[一連番号]
	,[処理区分]
	,[訂正区分]
	,[変更年月日]
	,[法人種別]
	,[登記記録の閉鎖等年月日]
	,[登記記録の閉鎖等の事由]
FROM [HoujinBangouDB].[dbo].[T法人番号] A
where 
	A.登記記録の閉鎖等年月日 is not null
	and A.登記記録の閉鎖等年月日!=A.変更年月日
;

一連番号 処理
区分
訂正
区分
変更
年月日
法人
種別
登記記録
の閉鎖等
年月日
登記記録
の閉鎖等
の事由
781927 1 0 2019-01-10 499 2019-03-31 31
3027468 1 1 2022-04-04 499 2023-01-31 31
3510339 12 0 2024-01-05 499 2020-10-29 31

これらのデータで異常に思われるポイントですが、

  • 処理区分=1(新規)や処理区分=12(国内所在地の変更)であるにも関わらず、登記記録の閉鎖等の事由=31(その他の清算の結了等)となっている。(通常、登記記録の閉鎖等の事由=31のとき処理区分=21である。)

  • 登記記録の閉鎖等年月日と変更年月日が異なる。(通常、登記記録の閉鎖等年月日がNULLではない場合は変更年月日と同じ日付になる。)

の2点です。
上記のとおり、3件のデータは通常と異なるポイントがありおそらく誤ったデータと思われます。
集計などにあたってはご注意ください。

10/2追記

9/30更新のデータをダウンロードして、上記のデータがどうなっているかを確認しました。

結果として、すべて変更されずに残っていました。
法人番号公表サイトのご意見・ご要望

から上記の内容を送っていたのですが、変更されませんでした。
ご利用される方はご注意ください。

10/2追記その2

異常と思われるデータについて、下記の国税庁 法人番号管理室に電話連絡してみました。

折り返しの電話連絡を頂き、次の内容をお話ししました。

法人番号管理室より

  • 電話連絡にて伝えた異常と思われるデータは、通常の問い合わせなどで指摘された要件と同じ流れで処理されます。(了承)
  • データの訂正したことを個別に連絡することはありません。(了承)
  • 技術系サイトに投稿したとのことですが、どちらのサイトですか。(Qiitaを案内)

当方から

  • 来月に更新データをみてこの記事の訂正をするかもしれないが、確実ではない。
  • 法人番号公表サイトで「ご意見・ご要望」で送った際、メールアドレスを入力しても受け付けた旨のメールが届かないので、本当に受け付けられたかが確認できない。

今後、上記の「異常と思われる」データについて修正されると思われますが、もしかしたら国税庁法人番号管理室の判断で修正されないかもしれません。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?