見出し画像

FileMaker関数で10桁ISBNコードを13桁に変換する。

前回の流れで、ひさしぶりにアプリの内部を見てみたところ、ちょっとした不具合が見つかってしまったので原因探しついでにISBNコードの処理について書いてみます。

そもそもISBNコードとは何か

ISBNコードとは、一般に流通している書籍には必ず付いてる固有の番号です。現在では13桁で標準化されています。日本図書コード管理センターが管理しています。細かい説明はここで省きますが、気になるかたは図書コード管理センターのサイトをご覧になってみてください。

https://isbn.jpo.or.jp

13桁の数字で標準化された内容は、978で始まりその後に、4(国)、aaa(出版社)、bbbbb(書名記号)、x(チェック数字)をつなぎ合わせたものです。これにより、書籍に固有の番号が付けられるようになっており、逆にこの番号で本のタイトルを特定することができます。

10桁と13桁のコードがある

元々ISBNコードは10桁だったのですが、2007年に国際規格に対応するために13桁に変更されたという経緯があります。そのため、少し古い蔵書となると、10桁コードのみが表示されている書籍は珍しくありません。特に図書館や古書店で見つける書籍ではよく見かけられます。
しかし、国立国会図書館の書影APIでは13桁コードが必須なので、10桁コードしかわからない場合でも、13桁コードが必要になります。

この10桁から13桁への移行は機械的に行われたので、10桁コードしか無い場合も関数処理で13桁化することが可能です。

逆に、10桁コードはほとんど使われていないですが、amazonの商品リンクに使われています。実際にamazonの商品ページを開いてみると、URLはいろんな要素が入っていて複雑ですが、特定の書籍へのリンクは10桁ISBNを繋げてやれば作れます。

https://www.amazon.co.jp/dp/[10桁ISBN]

10桁コードを13桁コードに変換する

ここでは、filemakerで関数処理により10桁コードから13桁コードに変換する方法を順を追って解説していきます。
変換するため(だけ)のツールでしたらオンライン上でもExcelでも無数にありますので、それらをお使いいただいた方が早いです。それでは解説していきます。

13桁のうち、12桁は難しくない

13桁化のガイドラインにはこう書かれております。

[書き換え方法(既刊本・重版本)] 13桁に書き換え検算
ISBNに続き978-を挿入、4-出版者記号-書名記号-チェックデジットの再計算で算出。
書き換え事例・・・
現行10桁・・・ISBN4-949999-08-7
改定13桁・・・ISBN978-4-949999-08-3

13桁ISBN“国内標準ガイドライン”追補版
日本出版インフラセンター(JPO)・日本図書コード管理センター

13桁コードは10桁のコードの先頭に”978”を追加し、最後の1桁を置き換えて生成します。最初の12桁は、middle関数と演算子"&"で生成できます。
10桁の数字が格納されてるISBN10フィールドから最初のn桁目の数字を拾うには、left関数を使います。

left( ISBN10 ; n  )

ですので、13桁のコードは次のようになります。

[ISBN13]="978"&left(ISBN10;9)&[13桁目の数字]

[ISBN10]フィールドに格納されてるデータが、"abcdefghiz"の場合、
[ISBN13]=978abcdefghiX (Xはこれから求める13桁目の数字)になります。

13桁目は前の12桁を計算して生成される。

ここから先は

2,181字 / 3画像
この記事のみ ¥ 100
期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?