FileMaker関数で10桁ISBNコードを13桁に変換する。
前回の流れで、ひさしぶりにアプリの内部を見てみたところ、ちょっとした不具合が見つかってしまったので原因探しついでにISBNコードの処理について書いてみます。
そもそもISBNコードとは何か
ISBNコードとは、一般に流通している書籍には必ず付いてる固有の番号です。現在では13桁で標準化されています。日本図書コード管理センターが管理しています。細かい説明はここで省きますが、気になるかたは図書コード管理センターのサイトをご覧になってみてください。
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を繋げてやれば作れます。
10桁コードを13桁コードに変換する
ここでは、filemakerで関数処理により10桁コードから13桁コードに変換する方法を順を追って解説していきます。
変換するため(だけ)のツールでしたらオンライン上でもExcelでも無数にありますので、それらをお使いいただいた方が早いです。それでは解説していきます。
13桁のうち、12桁は難しくない
13桁化のガイドラインにはこう書かれております。
13桁コードは10桁のコードの先頭に”978”を追加し、最後の1桁を置き換えて生成します。最初の12桁は、middle関数と演算子"&"で生成できます。
10桁の数字が格納されてるISBN10フィールドから最初のn桁目の数字を拾うには、left関数を使います。
ですので、13桁のコードは次のようになります。
[ISBN10]フィールドに格納されてるデータが、"abcdefghiz"の場合、
[ISBN13]=978abcdefghiX (Xはこれから求める13桁目の数字)になります。
13桁目は前の12桁を計算して生成される。
この記事が気に入ったらチップで応援してみませんか?