【事件の表示】
　特願２００５−１８３５７６「データのテーブルを扱うためのスプレッドシート関数のデザイン」拒絶査定不服審判事件〔平成１８年　４月２０日出願公開、特開２００６−１０７４４１、請求項の数（３０）〕について、次のとおり審決する。
【結　論】
　原査定を取り消す。
　本願の発明は、特許すべきものとする。
【理　由】
第1　手続の経緯
　本願は、平成１７年６月２３日（パリ条約による優先権主張２００４年９月３０日、米国）の出願であって、平成２３年８月１日付けで拒絶理由通知が通知され、平成２３年１１月７日付けで意見書、補正書が提出されたが、平成２４年６月１２日付けで拒絶査定がなされ、これに対して、平成２４年１０月１０日に拒絶査定不服審判が請求され、手続補正書が提出されたものである。
　平成２５年５月２４日付けで当審から審尋がなされ、平成２５年８月２７日付けで回答書が提出されたものである。
　
第２　平成２４年１０月１０日付けの手続補正（以下、「本件補正」という。）の適否
　
１．補正の内容
　本件補正は、特許請求の範囲の請求項１及び請求項２６を、
「【請求項１】
　コンピュータによって、スプレッドシートアプリケーションにおけるデータのテーブルを処理するための方法であって、
　前記スプレッドシートアプリケーションのセル内で、入力データを処理するための１つ又は複数のデータベース関数を受け取ることと、
　　　　　　　ここで、前記データベース関数は１つ又は複数の引数を含み、該引数は、前記テーブルのセル内の入力データを参照して、前記データベース関数の実行を調整し、
　　　　　　　　　　　
前記データベース関数は、フィルタ関数、ソート関数、重複除去関数、テーブル付加関数、又は列追加関数のうちの１つであり、
　　　　　　　　　　　前記１つ又は複数の引数は、数式を含み、
　前記データのテーブルの１つ又は複数のセルからなる入力データの選択を受け取ることと、
　　　　　　ここで、前記入力データは、前記スプレッドシートアプリケーション内に存在し、前記データのテーブルは、複数の行と複数の列との両方を占めるセルの集合体として構成され、
　前記１つ又は複数のデータベース関数を用いて前記入力データを処理することと、
　　　　　　ここで、前記入力データを処理することは、
　　　　　　　　　　前記１つ又は複数のデータベース関数が、前記テーブル内の行毎に前記入力データの選択に適用可能かどうかを判定することと、
　　　　　　　　　　前記判定されたデータベース関数を前記入力データの選択の各行に別個に適用することであって、該判定されたデータベース関数を適用する前に、該判定されたデータベース関数が前記引数に基づいて処理の実行の順序付けがなされることとを含み、
　前記処理された入力データを前記スプレッドシートアプリケーション内に出力データとして出力することと、
　　　　　　ここで、該出力データは、前記１つ又は複数のデータベース関数が受け取られた前記セル内にアンカーされ、該出力データは、前記スプレッドシートアプリケーションの１つ以上のセルからなるデータの配列として提示され、該配列は、前記データのテーブルから分離されており、
を具え、
　　
前記データベース関数は、前記スプレッドシートアプリケーション内に存在する前記入力データを受取り、該入力データを処理して、前記スプレッドシートアプリケーション内の前記１以上のセルからなるデータの配列からなる前記出力データを生成することができる、前記スプレッドシートアプリケーションの関数であり、
　　
前記１つ又は複数のデータベース関数と共に前記１つ又は複数の引数を受け取る場合において、
　　　　
前記入力データを処理することは、
　　　　　
１つ又は複数の引数を行毎に適用可能かどうかを判定することと、
　　　　　
前記判定された引数を各行に別個に適用することと、
　　　　　　　　　
ここで、前記判定された引数を適用する前に、該判定された引数が所定の処理を実行するための順序付けがなされ、
　　　　　
前記複数の引数のうちの残りの任意の引数又はデータベース関数を適用することと
をさらに含む
　　【請求項２６】
　スプレッドシートアプリケーションにおけるデータのテーブルを処理するためのシステムであって、
　　プロセッサと、
　　該プロセッサにより処理されるコンピュータ実行可能命令を有するメモリとを具え、前記プロセッサにより処理されるコンピュータ実行可能命令は、
　　前記スプレッドシートアプリケーションのセル内で、入力データを処理するための１つ又は複数のデータベース関数を受け取ることと、
　　　　　　　ここで、前記データベース関数は１つ又は複数の引数を含み、該引数は、
前記テーブルのセル内の入力データを参照して、前記データベース関数の実行を調整し、
　　　　　　　　　　　
前記データベース関数は、フィルタ関数、ソート関数、重複除去関数、テーブル付加関数、又は列追加関数のうちの１つであり、
　　　　　　　　　　　
前記１つ又は複数の引数は、数式を含み、
　前記データのテーブルの１つ又は複数のセルからなる入力データの選択を受け取ることと、
　　　　　　　ここで、前記入力データは、前記スプレッドシートアプリケーション内に存在し、前記データのテーブルは、複数の行と複数の列との両方を占めるセルの集合体として構成され、
　前記１つ又は複数のデータベース関数を用いて前記入力データを処理することと、
　　　　　　　ここで、前記入力データを処理することは、
　　　　　　　　　　前記１つ又は複数のデータベース関数が、前記テーブル内の行毎に
前記入力データの選択に適用可能かどうかを判定することと、
　　　　　　　　　　前記判定されたデータベース関数を前記入力データの選択の各行に別個に適用することであって、該判定されたデータベース関数を適用する前に、該判定されたデータベース関数が前記引数に基づいて処理の実行の順序付けがなされることとを含み、
　前記処理された入力データを前記スプレッドシートアプリケーション内に出力データとして出力することと、
　　　　　　　ここで、該出力データは、前記１つ又は複数のデータベース関数が受け取られた前記セル内にアンカーされ、該出力データは、前記スプレッドシートアプリケーションの１つ以上のセルからなるデータの配列として提示され、該配列は、前記データのテーブルから分離されており、
を実行するように具え、
　　
前記データベース関数は、前記スプレッドシートアプリケーション内に存在する前記入力データを受取り、該入力データを処理して、前記スプレッドシートアプリケーション内の前記１以上のセルからなるデータの配列からなる前記出力データを生成することができる、前記スプレッドシートアプリケーションの関数であり、
　　
前記１つ又は複数のデータベース関数と共に前記１つ又は複数の引数を受け取る場合において、
　　　　
前記入力データを処理することは、
　　　　　
１つ又は複数の引数を行毎に適用可能かどうかを判定することと、
　　　　　
前記判定された引数を各行に別個に適用することと、
　　　　　　　　　
ここで、前記判定された引数を適用する前に、該判定された引数が所定の処理を実行するための順序付けがなされ、
　　　　　
前記複数の引数のうちの残りの任意の引数又はデータベース関数を適用することと
をさらに含む
と補正するものである。
　
２．補正の適否
　本件補正は、補正前の請求項８，１４，２４，３０を削除し、それらの内容を補正前の請求項１、請求項２９に付加し、新たな請求項１、請求項２６とするものである。
　本件補正に記載した発明を特定するために必要な事項である「データベース関数」について、「フィルタ関数、ソート関数、重複除去関数、テーブル付加関数、又は列追加関数のうちの１つ」との限定を付加し、さらに、「前記１つ又は複数の引数は、数式を含」むこと、「スプレッドシートアプリケーション内に存在する前記入力データを受取り、該入力データを処理して、前記スプレッドシートアプリケーション内の前記１以上のセルからなるデータの配列からなる前記出力データを生成することができる」ことに限定し、また、「１つ又は複数のデータベース関数と共に１つ又は複数の引数を受け取る場合において」、「入力データを処理することは、１つ又は複数の引数を行毎に適用可能かどうかを判定することと、判定された引数を各行に別個に適用することと、ここで、判定された引数を適用する前に、該判定された引数が所定の処理を実行するための順序付けがなされ」ること、「前記複数の引数のうちの残りの任意の引数又はデータベース関数を適用する」ことを限定するものであって、補正前の請求項１、請求項２９に記載された発明と補正後の請求項１、請求項２６に記載された発明の産業上の利用分野及び解決しようとする課題が同一であるから、特許法第１７条の２第４項第１号の請求項の削除、特許法第１７条の２第４項第２号の特許請求の範囲の減縮を目的とするものに該当する。
　また、特許法第１７条の２第３項に違反するところはない。
　そこで、本件補正後の前記請求項１、請求項２６に記載された発明が、平成１８年法律第５５号改正附則第３条第１項によりなお従前の例によるとされる同法による改正前の特許法第１７条の２第５項において準用する同法第１２６条第５項の規定に適合するか（特許出願の際独立して特許を受けることができるものであるか）について以下に検討する。
　
（１）引用例１の記載事項
　原査定の拒絶の理由に引用された「土屋和人，Ｅｘｃｅｌ ＶＢＡ パーフェクトマスター Ｓｅｃｏｎｄ Ｅｄｉｔｉｏｎ，株式会社秀和システム，２００４年　５月２０日，第１版，ｐｐ．５９８−６０６」の、第６０５，６０６頁には、
ア．「ユーザー定義関数MatchArrayは、指定したセルの左端の列で検索を行い、検索値と一致するすべての行で、指定した列の値の配列を返します。SUMIF関数やVLOOKUP関数と似ていますが、このユーザ定義関数は、他の組み込み関数と組み合わせることで、様々な応用ができるように設計しています。」（第６０５頁）
イ．「この例では、動的配列を利用して、まずいったん範囲内の１列分の全セル数の配列を作成し、配列に代入された値の数に合わせて配列をリサイズしています。
検索値には比較演算子を使って指定はできませんが、「＊」や「？」のワイルドカードは使用できます。VLOOKUP関数で「検索の型」にTrue指定した場合のように近似値を含めて検索することはできず、必ず完全一致の指定になります。
「配列を返す」というと、すぐ思いつくのが配列数式としての利用かもしれませんが、配列数式としてだけでは用途としては限られてしまいます。この例のようなユーザー定義関数の場合、SUMやAVERAGEなどを組み合わせることで、特定の条件にマッチするセルだけの合計や平均が簡単に求められます。また、INDEX関数と組み合わせることで、条件にマッチする複数の値の中で、n番目に検索された値を取り出すことも可能です。」（第６０６頁）と記載されている。
　そうすると、引用例１には、「ＥＸＣＥＬにおいて、ユーザー定義関数MatchArrayは、他の組み込み関数と組み合わせることで、検索を行った配列を返すことができる方法。」の発明が記載されている。（以下、「引用例１発明（方法）」という。）
　
（２）請求項１記載の発明と引用例１発明（方法）の対比
　引用例１発明（方法）と請求項１記載の発明（以下、「請求項１発明」という。）を対比する。
　引用例１発明（方法）の「ＥＸＣＥＬ」は、基本的に「コンピュータによって、スプレッドシートアプリケーションにおけるデータのテーブルを処理するための方法」を有しており、エクセルの基本的な機能として、「スプレッドシートアプリケーションのセル内で、入力データを処理するための１つ又は複数のデータベース関数を受け取る」機能を有していることは明らかであるから、請求項１発明の「コンピュータによって、スプレッドシートアプリケーションにおけるデータのテーブルを処理するための方法であって、
　スプレッドシートアプリケーションのセル内で、入力データを処理するための１つ又は複数のデータベース関数を受け取る」機能を有している。
　引用例１発明（方法）の「ユーザー定義関数MatchArrayは、他の組み込み関数と組み合わせる」は、組み込み関数として請求項１発明の「データベース関数」も含んでいて、実行を調整するようにプログラムしているから、請求項１発明の「データベース関数は１つ又は複数の引数を含み、該引数は、前記テーブルのセル内の入力データを参照して、データベース関数の実行を調整」する機能を有している。また、ＥＸＣＥＬにおいて、データベース関数が「数式を含む」ことは一般的事項であるから、請求項１発明の「１つ又は複数の引数は、数式を含」む構成となっている。
　引用例１発明（方法）の「ユーザー定義関数MatchArray」は、データのテーブルの１つ又は複数のセルからなる入力データの選択を受け取っていることは明らかであるから、請求項１発明の「データのテーブルの１つ又は複数のセルからなる入力データの選択を受け取ること」の構成を有している。
　引用例１発明（方法）の「ＥＸＣＥＬ」は、基本的な構成として、請求項１発明と同様に「入力データは、スプレッドシートアプリケーション内に存在し、データのテーブルは、複数の行と複数の列との両方を占めるセルの集合体として構成され」ている。
　引用例１発明（方法）の「ＥＸＣＥＬ」は、基本的な構成として、請求項１発明と同様に「処理された入力データをスプレッドシートアプリケーション内に出力データとして出力」し、「ここで、該出力データは、１つ又は複数のデータベース関数が受け取られたセル内にアンカーされ、該出力データは、スプレッドシートアプリケーションの１つ以上のセルからなるデータの配列として提示され、該配列は、データのテーブルから分離され」た構成となっている。
　引用例１発明（方法）の「ＥＸＣＥＬ」において、組み込み可能な「SUM」や「AVERAGE」といった関数もデータベース関数であるから、請求項１発明の「データベース関数は、スプレッドシートアプリケーション内に存在する入力データを受取り、該入力データを処理して、スプレッドシートアプリケーション内の１以上のセルからなるデータの配列からなる出力データを生成することができる、スプレッドシートアプリケーションの関数」であり「１つ又は複数のデータベース関数と共に１つ又は複数の引数を受け取る場合」を含んでいる。
　
（３）請求項１記載の発明と引用例１発明（方法）の対比に対する判断
　請求項１発明と引用例１発明（方法）の一致点と相違点は以下の通りである。
［一致点］
「コンピュータによって、スプレッドシートアプリケーションにおけるデータのテーブルを処理するための方法であって、
　前記スプレッドシートアプリケーションのセル内で、入力データを処理するための１つ又は複数のデータベース関数を受け取ることと、
　　　　　　　ここで、前記データベース関数は１つ又は複数の引数を含み、該引数は、前記テーブルのセル内の入力データを参照して、前記データベース関数の実行を調整し、　　　　　　　　　　　　　　　　　　　　　　前記１つ又は複数の引数は、数式を含み、
　前記データのテーブルの１つ又は複数のセルからなる入力データの選択を受け取ることと、
　　　　　　ここで、前記入力データは、前記スプレッドシートアプリケーション内に存在し、前記データのテーブルは、複数の行と複数の列との両方を占めるセルの集合体として構成され、
　前記１つ又は複数のデータベース関数を用いて前記入力データを処理することと、
　前記処理された入力データを前記スプレッドシートアプリケーション内に出力データとして出力することと、
　　　　　　ここで、該出力データは、前記１つ又は複数のデータベース関数が受け取られた前記セル内にアンカーされ、該出力データは、前記スプレッドシートアプリケーションの１つ以上のセルからなるデータの配列として提示され、該配列は、前記データのテーブルから分離されており、
を具え、
　　前記データベース関数は、前記スプレッドシートアプリケーション内に存在する前記入力データを受取り、該入力データを処理して、前記スプレッドシートアプリケーション内の前記１以上のセルからなるデータの配列からなる前記出力データを生成することができる、前記スプレッドシートアプリケーションの関数であり、
　　前記１つ又は複数のデータベース関数と共に前記１つ又は複数の引数を受け取る場合
を含む方法。」
　
［相違点］
（ア）請求項１発明のデータベース関数は、「フィルタ関数、ソート関数、重複除去関数、テーブル付加関数、又は列追加関数のうちの１つ」であるのに対して、引用例１発明（方法）のユーザー定義関数で組み込まれる関数は、「SUMやAVERAGE」などを含む点。
（イ）請求項１発明のデータベース関数を用いた処理は、「１つ又は複数のデータベース関数が、テーブル内の行毎に前記入力データの選択に適用可能かどうかを判定することと、判定されたデータベース関数を入力データの選択の各行に別個に適用することであって、該判定されたデータベース関数を適用する前に、該判定されたデータベース関数が前記引数に基づいて処理の実行の順序付けがなされることとを含」んでいるのに対して、引用例１発明（方法）の「ユーザー定義関数MatchArray」は、プログラムされたとおりに処理を行っている点。
（ウ）請求項１発明は、「１つ又は複数の引数を行毎に適用可能かどうかを判定することと、前記判定された引数を各行に別個に適用することと、ここで、前記判定された引数を適用する前に、該判定された引数が所定の処理を実行するための順序付けがなされ、前記複数の引数のうちの残りの任意の引数又はデータベース関数を適用すること」といった処理がなされているのに対して、引用例１発明（方法）の「ユーザー定義関数MatchArray」は、プログラムされたとおりに処理を行っている点。
　
　上記相違点について検討する。
　相違点（ア）
　請求項１発明は、データベース関数のうち「フィルタ関数、ソート関数、重複除去関数、テーブル付加関数、又は列追加関数」に特化したものであり、引用例１発明は、ユーザー定義関数であって、組み込まれる関数を「フィルタ関数、ソート関数、重複除去関数、テーブル付加関数、又は列追加関数」に特化したものではないから、相違点（ア）は引用例１発明（方法）から容易に想到できたものとはいえない。
　相違点（イ）、（ウ）
　請求項１発明は、データベース関数の処理順序、引数の処理順序について、処理を適用する前に判定しているが、引用例１発明（方法）は、処理順序はプログラミングされており固定であるから、この様な処理は行われていない。また、審査官が拒絶査定において引用した「「相沢輝昭，外，アルゴリズム時点，共立出版株式会社，１９９４年　９月　１日，第１版，Ｐ．５５４」の問い合わせの最適化、などの記載」が周知であることを考慮して、これを適用したとしても、引用例１発明（方法）のようにプログラミングされた順序は変更されるものではなく、この周知事項を適用することにも阻害要因があることから、相違点（イ）、（ウ）についても当業者が容易に想到できたものとはいえない。
　したがって、請求項１発明は、引用例１発明（方法）に基いて、当業者が容易に発明をすることができたとはいえない。
　
（４）請求項２６記載の発明に対する判断
　引用例１において、ＥＸＣＥＬを実行するのはパソコンであるから、引用例１には「ＥＸＣＥＬを実行するパソコンであって、ユーザー定義関数MatchArrayは、他の組み込み関数と組み合わせることで、検索を行った配列を返すことができるもの。」の発明（以下、「引用例１発明（システム）」という。）が記載されている。
　引用例１発明（システム）は、ＥＸＣＥＬを実行するパソコンであるから、請求項２６記載の発明の構成である「プロセッサと、該プロセッサにより処理されるコンピュータ実行可能命令を有するメモリとを具え、前記プロセッサにより処理されるコンピュータ実行可能命令は、前記スプレッドシートアプリケーションのセル内で、入力データを処理するための１つ又は複数のデータベース関数を受け取る」構成を有していて、請求項２６記載の発明と、引用例１発明（システム）を対比すると、処理において、請求項１発明の場合と同様の相違点が存在する。
　そうすると、請求項２６記載の発明も、引用例１発明（システム）から容易に発明をすることができたとはいえない。
　したがって、請求項２６記載の発明は、引用例１発明（システム）に基いて、当業者が容易に発明をすることができたとはいえない。
　
　よって、請求項１、請求項２６に対する補正は、平成１８年法律第５５号改正附則第３条第１項によりなお従前の例によるとされる同法による改正前の特許法第１７条の２第５項において準用する同法第１２６条第５項の規定に適合する。
　
（５）むすび
　本件補正は、平成１８年法律第５５号改正附則第３条第１項によりなお従前の例によるとされる同法による改正前の特許法第１７条の２第３項ないし第５項の規定に適合する。
　
第３　請求項１〜３０に記載の発明
　本件補正は上記のとおり、平成１８年法律第５５号改正附則第３条第１項によりなお従前の例によるとされる同法による改正前の特許法第１７条の２第３項ないし第５項の規定に適合するから、請求項１〜３０に係る発明は、本件補正により補正された特許請求の範囲の請求項１〜３０に記載された事項により特定されるとおりのものである。
　そして、本願については、原査定の拒絶理由を検討してもその理由によって拒絶すべきものとすることはできない。 
　また、他に本願を拒絶すべき理由を発見しない。 
　よって、結論のとおり審決する。