[関数] 筆頭出願人を抽出(FIND, IF, ISERROR, LEFT)

共同出願の特許文献には、出願人欄に複数の出願人名が入力されている。そのような場合に、先頭の出願人のみに注目して分析を進めたい場合がある。例えば、出願人(会社)ごとの出願件数を集計したい場合、その会社(出願人)単独の出願と共同出願とが別人として扱われるとうまく集計できない。

単独出願と共同出願が混在するので場合分けが必要で、EXCELでは関数で処理するのは少々面倒。しかし、複数の関数を使った数式の作り方の例になるのでご紹介する。

FIND関数
G30セルが「ツィンファ ユニバーシティ」と「鴻海精密工業股▲ふん▼有限公司」の共同出願で、2社が半角コンマ「,」で区切られている。(区切り記号としてセミコロン「;」が使われているデータもある。)
FIND関数は、この区切り記号である半角コンマ「,」が何文字目にあるのかを出力する(図1)。

図1 FIND関数

LEFT関数
複数の出願人名が記載されているセルから、区切り記号である半角コンマ「,」よりも前に部分だけを抜き出す。LEFT関数は、参照先の文字列の先頭から指定された文字数だけを抜き出して出力する。
参照先は出願人であるF30セル、文字数はFIND関数で求めた区切り記号「,」の位置(FIND(“,”,F30)よりも1文字前までである。
① P30セルにおいて、既に入力した「FIND(“,”,F30)」の直前にカーソルを移動する。
② 「LEFT(」を入力して、参照する「文字列」に「F30」を入力する。
③ 半角コンマ「,」を入力して「文字数」の入力に移る。
④ 「FIND(“,”,F30)」の後ろに「-1」を入力する(図2)。

図2 FIND関数とLEFT関数の組み合わせ

他の行にコピーするとエラーになる(図3)。

図3 他の行(単独出願)にコピーするとエラーになる

FIND関数は、探す対象の文字列の中に目的の文字(文字列)が見つからないと、上のように「#VALUE!」というエラーを出力する。

そこでエラーになったら、つまり出願人欄(F列)に区切り記号「,」が見つからなければ、(単独出願だと判断して)、出願人欄(F列)をそのまま出力する。

IF関数とISERROR関数
IF関数 IF(条件,[真の場合],[偽の場合]) 条件を判断した結果、「真」なら「真の場合」、「偽」なら「偽の場合」に指定された結果を出力する。なお、カギ括弧「[・・・]」の引数は省略してもよい。
ISERROR関数 ISERROR(数式) 数式を実行した結果、エラーなら「真」、エラーでなければ「偽」を出力する。上のIF関数の「条件」部分に使う。

図4 エラーになるかどうかで場合わけする

「=IF(ISERROR(FIND(“,”,F31)),F31,LEFT(F31,FIND(“,”,F31)-1))」
IF関数の「条件」にはFIND関数(FIND(“,”,F31))がエラーになる(F31に区切り文字「,」が含まれない)かどうかを調べるISERROR関数「真の場合」(エラーになる場合)はF31セルの値をそのまま出力「偽の場合」(エラーにならない場合:F31に区切り文字「,」が含まれている場合)は区切り文字の前までを抜き出すLEFT関数の結果を出力する。

P31セルをすべての行にコピーする。このとき共同出願の行(30行、40行)にも同じようにコピーする。共同出願の場合は筆頭出願人だけが抽出される(図5)。

《サンプル》
http://lib.aq-patent.com/wp-content/uploads/2020/05/func_primaryApplicant.xlsx

[関数] 筆頭FIを抽出(LEFT関数)

複数のFIが入力されているセルから、先頭のFI(筆頭FI)のサブクラスまでを抜き出す。
FIのセル(G列)には複数のFIは、半角コンマ「,」で区切られている。(セミコロン「;」で区切られているデータもある)またFIのサブクラスは先頭4文字で、文字数にゆらぎはない。
先頭だけ抜き出したいので、半角コンマ「,」で区切られた2つめ以降は無視して良いので、FIのセル(G列)の左から4文字を抜き出すことにする。

LEFT関数を使うことにする。
LEFT関数が参照するのは、元のセル(G列)。引数として文字数を入力する。

O2セルにLEFT関数を入力する
 ① O2セルに「=」から入力する
 ② 「=L」と入力すると、Lから始まる関数が候補として表示される
   (引数は、文字列と文字数であることがわかる)
 ③ 「=LEFT(」まで入力した後、参照するセルG2をマウスで選ぶと入力される(上図)
 ④ 2つめの引数として、抜き出す文字「4」を入力する
 ⑤ 括弧を閉じてリターン(「=LEFT(G2,4)」)すると、計算結果「H01M」が表示される
 ⑥ O2セルをコピー、下方向のすべての行にペーストする(下図)

《サンプル》
http://lib.aq-patent.com/wp-content/uploads/2020/05/func_left.xlsx

《コラム》
関数が入力されたセルをコピーすると、参照先がペースト先に応じて変化する。
O2 =LEFT(G2,4) コピー元
O3 =LEFT(G3,4) ペースト先
O3 =LEFT(G3,4) ペースト先
      :
コピー元ではG2セルを参照している
次の行にペーストすると、参照先の行番号が1増えてG3セルになる
さらに次の行では、さらに行番号が増えてG4セルになる

列方向でも同様に変化していく

変化させたくないときは、変化させたくない行/列/両方に「$」マークを付ける(コピー元)
O2 =LEFT(G$2,4) コピー元
O3 =LEFT(G$2,4) ペースト先
O3 =LEFT(G$2,4) ペースト先
      :