(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128585
(43)【公開日】2024-09-24
(54)【発明の名称】表計算装置、表計算方法及びプログラム
(51)【国際特許分類】
G06F 40/18 20200101AFI20240913BHJP
G06F 15/02 20060101ALI20240913BHJP
G06F 40/111 20200101ALI20240913BHJP
【FI】
G06F40/18
G06F15/02 330K
G06F40/111
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023037621
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】佐地 宏太
【テーマコード(参考)】
5B019
5B109
【Fターム(参考)】
5B019HA06
5B019HE19
5B019HG12
5B109NB07
5B109PB05
5B109VC03
(57)【要約】
【課題】表形式で入力されている計算要素を対象として計算を行う場合の計算式を、より柔軟な記述形式で入力することを可能にする。
【解決手段】表計算装置としての端末20は、表形式で入力されている計算要素を対象として計算を行う計算式を、表のセルを参照する記述形式に対応する第1部分と数学自然表示用の記述形式に対応する第2部分とを含む第1の形式の第1の計算式として受け付ける。そして、端末20は、第1部分が参照するセルの値を用いてこの第1の計算式の計算を行う計算処理、または、第2部分が示す数学自然表示の表示形態で第1の計算式を表示する表示処理、を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
表形式で入力されている計算要素を対象として計算を行う計算式を、表のセルを参照する記述形式に対応する第1部分と数学自然表示用の記述形式に対応する第2部分とを含む第1の形式の第1の計算式として受け付け、
前記第1部分が参照するセルの値を用いて前記第1の計算式の計算を行う計算処理、または、前記第2部分が示す数学自然表示の表示形態で前記第1の計算式を表示する表示処理、を実行する表計算装置。
【請求項2】
前記第1の計算式に含まれる各計算要素が、前記第1部分であるか前記第2部分であるかを判定し、
前記第1部分が参照するセルの値を取り込むことにより、前記第1の形式の前記第1の計算式を、表のセルを参照しない第2の形式の第2の計算式に変換する、
処理を実行する請求項1に記載の表計算装置。
【請求項3】
前記第1部分と前記第2部分のいずれも含まない第3形式の計算式を計算可能な計算処理部により、指定した計算式の計算を実行させることが可能であり、
前記第2の形式の前記第2の計算式を前記第3形式の第3の計算式に変換し、
前記計算処理として、前記第3形式の前記第3の計算式を前記計算処理部により計算させる、
請求項2に記載の表計算装置。
【請求項4】
前記第1の計算式は、表のセルに入力される計算式であり、
セル内での前記第1の計算式の記述形式に応じて、前記第1の計算式に対して前記計算処理を実行するか前記表示処理を実行するかを判定する、
処理を実行する請求項1乃至3のいずれか一項に記載の表計算装置。
【請求項5】
前記第1部分は、表のセルを参照する計算を行う表計算用の関数の記述と、参照すべき表のセルを指定するセル座標の記述とを含み、
前記第2部分は、表のセルを参照しない数学自然表示用の関数の記述と、数学自然表示用の関数の計算対象となるセル座標ではないパラメータの記述とを含む、
請求項1乃至3のいずれか一項に記載の表計算装置。
【請求項6】
前記第1の計算式は、表のセルに入力される計算式であり、
前記第1の計算式に含まれる前記第1部分は、入力文字そのままのテキストとして入力を受け付け、
前記第1の計算式に含まれる前記第2部分は、組版処理システム用の記法によるテキストとして入力を受け付ける、
請求項3に記載の表計算装置。
【請求項7】
前記組版処理システム用の記法は、LaTeX記法である、
請求項6に記載の表計算装置。
【請求項8】
前記表形式で入力される計算要素として、
数値又は変数である数値データと、
数値を前記LaTeX記法により表したLaTeXデータと、
を受け付ける、
請求項7に記載の表計算装置。
【請求項9】
前記表のセルに、当該セルに入力された前記LaTeXデータを前記数学自然表示により表示する、
請求項8に記載の表計算装置。
【請求項10】
前記表のセルのセル値として、
入力された前記LaTeXデータと、
入力された前記LaTeXデータを数値に変換した数値データ、
を保存する、
請求項8に記載の表計算装置。
【請求項11】
前記第1の計算式に含まれる前記第1部分は表計算関数を含み、
前記第1の計算式から前記第2の計算式への変換は、前記表計算関数の内容に基づいて、入力内容をLaTeX表記法によるLaTeXデータに置き換えると共に参照するセルに保存されたLaTeXデータを用いることにより、前記第1の形式の第1の計算式を、前記計算可能な第2の形式であるLaTeX記法の前記第2の計算式に置き換えることと
を含む、
請求項10に記載の表計算装置。
【請求項12】
前記第1の計算式を受け付けた前記セルに対するセル値として、前記第3の計算式の計算結果を前記LaTeXデータ及び数値データにより保存する、
請求項10に記載の表計算装置。
【請求項13】
前記第1の計算式を受け付けた前記セルに、前記第3の計算式の計算結果である前記LaTeXデータを前記数学自然表示により表示する、
請求項12に記載の表計算装置。
【請求項14】
前記計算処理部は、ネットワークを介して通信可能な計算サーバを含む、
請求項3に記載の表計算装置。
【請求項15】
前記第1の計算式に含まれる前記第1部分は表計算関数を含み、
前記第1の計算式が、前記計算サーバで処理できない表計算関数を含むとき、前記計算サーバが計算した計算結果における数値データに対して、当該表計算関数による計算を行う、
請求項14に記載の表計算装置。
【請求項16】
受け付けた第1の計算式に含まれる各計算要素が、表のセルを参照するセル座標に対応する第1部分であるか、LaTeX記法に対応する第2部分であるかを判定し、
前記判定の結果に応じて、前記第1の計算式を所定の計算処理部で計算可能な第2の形式の第2の計算式に変換する、
処理を実行する表計算装置。
【請求項17】
表計算装置が、
表形式で入力されている計算要素を対象として計算を行う計算式を、表のセルを参照する記述形式に対応する第1部分と数学自然表示用の記述形式に対応する第2部分とを含む第1の形式の第1の計算式として受け付け、
前記第1部分が参照するセルの値を用いて前記第1の計算式の計算を行う計算処理、または、前記第2部分が示す数学自然表示の表示形態で前記第1の計算式を表示する表示処理、を実行するようにした表計算方法。
【請求項18】
表計算装置の制御部が、
表形式で入力されている計算要素を対象として計算を行う計算式を、表のセルを参照する記述形式に対応する第1部分と数学自然表示用の記述形式に対応する第2部分とを含む第1の形式の第1の計算式として受け付け、
前記第1部分が参照するセルの値を用いて前記第1の計算式の計算を行う計算処理、または、前記第2部分が示す数学自然表示の表示形態で前記第1の計算式を表示する表示処理、を実行するように機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、表計算装置、表計算方法及びプログラムに関する。
【背景技術】
【0002】
従来より、各種の業務に、コンピュータで実行される表計算アプリケーションソフトウェア(以下、表計算ソフトと略記する。)が広く利用されている。
【0003】
また、近年、欧米を中心に学校教育へのICT(Information and Communication Technology)機器の導入が進んできており、これに伴い、学校の授業や定期試験に電子教材が利用されるケースが増加している(例えば、特許文献1を参照)。この電子教材の一つとして、当然、表計算ソフトも利用されている。
【0004】
表計算ソフトでは、表のセルに入力されている数値を計算要素(計算パラメータ)とした計算式をユーザが入力して計算を行わせることができる。この場合、計算要素とする数値が入力されているセルをセル座標(範囲)で指定する。例えば、「=SUM(B1:B5)」のような合計を計算する関数(SUM)の引数としてセル座標範囲を指定した計算式を入力すると、セル座標(B1)からセル座標(B5)までの複数のセルに入力されている数値を対象として合計を計算することができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、表計算ソフトでは、その表計算ソフトに特化した関数を用いる必要があり、例えば、指定した範囲の数値を積分(定積分)する場合に、一般的な数学の積分表記である数学自然表示ではなく、「SUM(…)」のように記述しなければならない。よって、ユーザは、その表計算ソフトに特化した関数を覚える必要があり、柔軟な計算式の表記を行うことは難しかった。
【0007】
本発明が解決しようとする課題は、表形式で入力されている計算要素(数値や計算式など)を対象として計算を行う場合の計算式を、より柔軟な記述形式で入力することが可能になる表計算装置、表計算方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明に係る表計算装置は、
表形式で入力されている計算要素を対象として計算を行う計算式を、表のセルを参照する記述形式に対応する第1部分と数学自然表示用の記述形式に対応する第2部分とを含む第1の形式の第1の計算式として受け付け、
前記第1部分が参照するセルの値を用いて前記第1の計算式の計算を行う計算処理、または、前記第2部分が示す数学自然表示の表示形態で前記第1の計算式を表示する表示処理、を実行する。
【発明の効果】
【0009】
本発明によれば、表形式で入力されている計算要素を対象として計算を行う場合の計算式を、より柔軟な記述形式で入力することが可能になる表計算装置、表計算方法及びプログラムを提供できる。
【図面の簡単な説明】
【0010】
【
図1】本発明の表計算装置、表計算方法及びプログラムの一実施形態に係る表計算システムの全体の構成を示す図である。
【
図2】表計算ソフトによって作成される表計算シートの一例を示す図である。
【
図3】表計算システムが含む端末の入力値メモリの記憶内容の一例を示す図である。
【
図4A】端末のセル値メモリにおけるスタンダードテーブルの記憶内容の一例を示す図である。
【
図4B】端末のセル値メモリにおけるデシマルテーブルの記憶内容の一例を示す図である。
【
図5】表計算シートに入力された、表計算ソフト関数と数学自然表示を含む計算式の一例を示す図である。
【
図6】
図5の例に対応する端末の入力値メモリの記憶内容の一例を示す図である。
【
図7】表計算ソフトに従った端末のプロセッサの表計算処理を示すフローチャートである。
【
図8】「SUM(…)」形式の表計算ソフト関数を含む計算式の場合における
図7の表計算ソフト関数変換処理の一例を示すフローチャートである。
【
図9A】計算結果を保存した場合のスタンダードテーブルの記憶内容の一例を示す図である。
【
図9B】計算結果を保存した場合のデシマルテーブルの記憶内容の一例を示す図である。
【
図10】計算結果の表示を含む表計算シートの一例を示す図である。
【
図11】表計算ソフト関数と数学自然表示を含む計算式の具体例を説明するための図である。
【
図12】表計算ソフト関数と数学自然表示を含む計算式の別の具体例を説明するための図である。
【
図13】表計算ソフト関数と数学自然表示を含む計算式の更に別の具体例を説明するための図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の一実施形態について説明する。
【0012】
(実施形態の構成)
図1は、本発明の表計算装置、表計算方法及びプログラムの一実施形態に係る表計算システム1の全体の構成を示す図である。表計算システム1は、計算サーバ10と、端末20と、を含む。計算サーバ10と端末20とは、ネットワーク30を介して通信可能に接続される。ネットワーク30は、例えばインターネットである。なお、
図1には、1台の端末20のみが示されているが、ネットワーク30を介して計算サーバ10に接続可能な端末20の台数はこれに限定されない。1以上の端末20が接続可能である。
【0013】
表計算システム1は、ユーザが入力した計算式に基づく計算を実行する。具体的には、表計算システム1では、端末20に表示された表計算シートのセルに入力された計算式とその参照先のセルに入力されている値とに基づく計算用データが、端末20から計算サーバ10に送信される。計算サーバ10は、当該計算用データに従った計算を実行し、計算結果を端末20に送信する。端末20は、当該計算結果を受信して、これを計算式が入力されたセルのデータ値とする。
【0014】
計算サーバ10は、プロセッサ11と、ROM12と、RAM13と、ストレージ14と、通信装置15と、を有している。これらの各々は、システムバス16を介して互いに接続されている。
【0015】
プロセッサ11は、CPU(Central Processing Unit)等の集積回路であって良い。ROM12は、プロセッサ11の動作に用いられる情報を記録している。RAM13は、プロセッサ11の主記憶装置として機能する。ストレージ14は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の随時書込み及び読み出しが可能な不揮発性メモリであって良い。ストレージ14には、プロセッサ11で用いられるサーバ制御プログラム、各種演算を実行するための演算プログラム等の各種プログラム、パラメータ等が記憶されている。プログラムは、計算サーバ10を実施形態に係る表計算装置の一部として機能させる計算プログラム141を含む。プロセッサ11は、ストレージ14に記憶されたプログラムに従って計算サーバ10の動作を制御する。プロセッサ11として、CPU以外のプロセッサ、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等が用いられても良い。通信装置15は、ネットワーク30等の外部の通信ネットワークと通信可能である。
【0016】
端末20は、プロセッサ21と、ROM22と、RAM23と、ストレージ24と、入力装置25と、表示装置26と、通信装置27と、を有している。これらの各々は、システムバス28を介して互いに接続されている。端末20は、パーソナルコンピュータ(PC)、タブレット端末、スマートフォン、等の電子機器であって良い。
【0017】
プロセッサ21は、端末20の各種動作を制御するCPU等の集積回路である。プロセッサ21としては、ASIC、FPGA、等の他の集積回路が用いられても良い。ROM22は、起動プログラム等を記録している。RAM23は、プロセッサ21の主記憶装置として機能する。ストレージ24は、HDDやSSD等の随時書込み及び読み出しが可能な不揮発性メモリであって良い。ストレージ24には、プロセッサ21で用いられる端末制御プログラム等の各種プログラム、パラメータ等が記憶されている。プロセッサ21は、入力装置25からの入力信号や通信装置27による受信信号に応じて各種プログラムを実行することで端末20の動作を制御する。各種プログラムは、不図示のウェブサーバから、ネットワーク30、通信装置27を介してストレージ24にダウンロードされても良い。通信装置27は、ネットワーク30等の外部の通信ネットワークと通信可能である。
【0018】
入力装置25は、キーボード、マウス、等の外部入力装置、或いは、端末20の表示装置26に表示される入力ボードを含む。入力装置25の操作により、入力インターフェース(I/F)からシステムバス28を介してプロセッサ21に入力信号が入力される。
【0019】
表示装置26は、液晶ディスプレイ等の外部表示装置、或いは、端末20の液晶ディスプレイ等の表示部を含む。表示装置26には、プロセッサ21からシステムバス28、出力インターフェース(I/F)を介して出力信号が伝送される。
【0020】
本実施形態では、ストレージ24には、表計算ソフト241がインストールされる。表計算ソフト241は、プロセッサ21によって実行されることで、端末20を実施形態に係る表計算装置の一部として機能させる表計算プログラムである。端末20は、プロセッサ21が表計算ソフト241に記述された命令に従い回路各部の動作を制御し、ソフトウエアとハードウエアとが協働して動作することにより、後述の動作説明で述べるような各種の機能を実現する。その際、プロセッサ21は、RAM23に、入力値メモリ231及びセル値メモリ232を確保し、また、ワークメモリ233に、動作中に生成する各種データを一時記憶させる。入力値メモリ231は、ユーザによって表計算シートのセルに入力されたデータを保存し、セル値メモリ232は、同じく表計算シートのセルに入力されたデータ又は計算サーバ10による計算結果を保存するために用いられる。
【0021】
図2は、表計算ソフト241によって作成され、表示装置26に表示される表計算シート100の一例を示す図である。この表計算ソフト241では、表計算シート100の各セルに、例えばセルB1の「ルート2」のような数学自然表示により、セル値を表示することができる。
【0022】
図3は、入力値メモリ231の記憶内容の一例を示す図である。この例は、
図2に示した表計算シート100の例に対応する。
図3に示されるように、本実施形態では、表計算シート100のセルに入力される内容に2通りがある。数値や変数、表計算ソフト241に特化した規定の関数である表計算ソフト関数の入力については、入力文字そのままのテキストとして入力を受け付ける。一方で、数学自然表示のための入力は、入力文字そのままではなく、組版処理システム用の記法であるLaTeX記法によるテキストとして入力を受け付ける。例えば、「ルート2」は「¥sqrt{2}」というLaTeX記法によるテキストとして入力される。入力値メモリ231は、こうして各セルに入力されたテキストを、LaTeX記法によるテキストデータ(以下、LaTeXデータと記す。)として記憶する。
【0023】
セル値メモリ232は、スタンダードテーブルとデシマルテーブルとを含む。
図4Aは、スタンダードテーブル232Sの記憶内容の一例を示す図であり、
図4Bは、デシマルテーブル232Dの記憶内容の一例を示す図である。スタンダードテーブル232Sは、表計算シート100の各セルのセル値を、入力値メモリ231と同様にLaTeXデータとして記憶する。また、デシマルテーブル232Dは、表計算シート100の各セルのセル値を、10進数表記の数値データとして記憶する。
【0024】
デシマルテーブル232Dは、入力値メモリ231に記憶された計算要素(数値や計算式など)又は計算式の計算結果をセル値として記憶する。表計算シート100は、このスタンダードテーブル232Sの記憶内容に従って各セルのセル値を表示する。すなわち、LaTeX記法によるテキストをLaTeXの組版処理システムにより組版して表示する。これにより、
図2の表計算シート100の例えばセルB1に「ルート2」として示すように、各セルに数学自然表示によりセル値を表示することができる。また、入力値メモリ231に記憶された計算要素が計算式であっても、その計算式を計算する場合と計算しない場合とがある。計算式が計算されるか否かは、計算式の先頭に「=」が入力されているか否かによる。よって、
図3に示す入力値メモリ231の例における「-¥sqrt{2}-¥sqrt{3}」のようにLaTeX記法により計算式が入力されていても「=」が入力されていない場合には、その計算式の計算は行わずに、その計算式がセル値としてスタンダードテーブル232Sに記憶される。よって、
図2のセルB5に示されるように、その計算式が数学自然表示によるセル値として表示される。
【0025】
これに対して、デシマルテーブル232Dは、計算式先頭の「=」の有無によらず、表計算シート100の各セルのセル値を、10進数表記の数値データとして計算した結果を記憶する。例えば、「ルート2」を「1.14142…」として記憶し、「-ルート2-ルート3」を「-3.1462…」として記憶する。
【0026】
(実施形態の動作)
次に、実施形態の表計算システム1の動作について説明する。
【0027】
図5は、表計算シート100に入力された、表計算ソフト関数と数学自然表示を含む計算式の一例を示す図であり、
図6は、
図5の例に対応する入力値メモリ231の記憶内容の一例を示す図である。この例では、セルA1とセルC1に、表計算ソフト関数と数学自然表示を含む計算式が入力されている。なお、本実施形態では、数学自然表示を含む計算式とは、当該計算式が数学自然表示で記述されているものに限らず、当該計算式が数学自然表示で記述されていなかったとしても参照先セルのセル値が数学自然表示である場合も含むものとする。
【0028】
図7は、表計算ソフト241に従ったプロセッサ21の表計算処理を示すフローチャートである。
【0029】
プロセッサ21は、入力装置25から任意のセルに対してテキストが入力されると、そのテキストデータ(LaTeXデータ)を入力値メモリ231に保存する(ステップS11)。なお、この入力装置25による入力は、例えば、キーボードによるLaTeX記法でのテキスト入力であることができる。また、ユーザがLaTeX記法に慣れていない場合もあるため、その入力中にLaTeX記法による関数の候補を出して選択させるものであっても良い。或いは、LaTeX記法による関数を選択可能なソフトウェアキーボードを表示し、そのソフトウェアキーボードのボタン押下によるものであっても良い。また、LaTeX記法による関数の引数などの記述方式を含めてサジェスト機能により記述例を自動入力させるようにしてもよい。また、手書きで入力された数学自然表示の形態の計算式を画像処理などで認識してLaTeX記法に変換するようにしてもよい。
【0030】
そして、プロセッサ21は、入力値メモリ231に保存したLaTeXデータの最初の文字が「=」であるか否か判断する(ステップS12)。「=」でないと判断した場合には(ステップS12(NO))、入力されたテキストが直ちに計算すべき計算式ではないということなので、プロセッサ21は、このフローチャートに示す処理を終了する。こうしてフローチャートに示す処理を終了した場合、プロセッサ21は、入力値メモリ231に保存したテキストデータに基づいて、セル値メモリ232のスタンダードテーブル232S及びデシマルテーブル232Dにセル値を保存することとなる。よって、前述したように、最初の文字が「=」でない場合には、計算式であっても計算されずに、LaTeXの組版処理システムにより組版して表計算シート100のセルに表示されることとなる。
【0031】
最初の文字が「=」であると判断した場合(ステップS12(YES))、プロセッサ21は、表計算ソフト関数変換処理を実行して、入力された計算式に含まれる表計算ソフト関数をLaTeX記法に変換する(ステップS13)。表計算ソフト関数変換処理においては、計算式の前から順にLaTeX記法に変換していく。この際、前方一致で、表計算ソフト関数であるか否かを判定する。なおここで、表計算ソフト関数名とその他の関数名で重複はないものとする。或いは、表計算ソフト関数を使用する際には、頭に♯等の所定の記号を付ける等のルールを設けても良い。表計算ソフト関数と判定された場合には、()内の引数毎に処理を施す。この表計算ソフト関数変換処理の内容は、表計算ソフト関数の種類に応じて異なる。
【0032】
図8は、
図5及び
図6に示される「=SUM(B1:B5)」のような「SUM(…)」形式の表計算ソフト関数を含む計算式の場合における表計算ソフト関数変換処理の一例を示すフローチャートである。この場合の表計算ソフト関数変換処理は、前処理としての、入力内容のR1C1参照形式の部分それぞれに対してA1参照形式に変更するR1C1処理と、実際の処理部分である表計算関数処理と、を含む。
図8において、破線で囲んだ処理がR1C1処理であり、一点鎖線で囲んだ処理が表計算関数処理である。表計算関数処理は、点線で囲んだセル値参照処理を含む。このセル値参照処理は、入力内容のB1,B2,…それぞれに対して、それぞれのデシマル値及びスタンダード値を取得する処理である。特殊な関数(SUM,COUNT,等)においてのみ、デシマル値が数値か否かを判定した後、代入する値を決める。特殊な関数以外には、スタンダード値を代入する。
【0033】
具体的には、プロセッサ21は、「SUM(…)」形式の表計算ソフト関数を含む計算式における「…」の内容が「B1:B5」形式(複数のセルをセル座標範囲で指定する形式)であるか否か判断する(ステップS1301)。「B1:B5」形式ではないと判断した場合(ステップS1301(NO))、プロセッサ21は、後述するステップS1303の処理に移行する。
【0034】
「B1:B5」形式であると判断した場合(ステップS1301(YES))、プロセッサ21は、「…」の内容を「B1,B2,B3,B4,B5」形式(複数のセルを個別のセル座標で指定する形式)に変換する(ステップS1302)。プロセッサ21は、変換した結果の計算式を、ワークメモリ233に一時記憶させる。
【0035】
そして、プロセッサ21は、ワークメモリ233に設けた図示しないポインタiに「0」をセットする(ステップS1303)。
【0036】
その後、プロセッサ21は、ポインタiにセットされた値が、ワークメモリ233に一時記憶している計算式における引数の数より小さいか否か判断する(ステップS1304)。
【0037】
引数の数より小さいと判断した場合(ステップS1304(YES))、プロセッサ21は、ポインタiの値で示されるi番目の引数はセル参照が必要であるか否か判断する(ステップS1305)。
【0038】
ここで、セル参照が必要であると判断した場合(ステップS1305(YES))、プロセッサ21は、その参照先セルのデシマル値を、セル値メモリ232のデシマルテーブル232Dから取得する(ステップS1306)。プロセッサ21は、取得したデシマル値を、ワークメモリ233に一時記憶させる。
【0039】
その後、プロセッサ21は、そのデシマル値が数値であるか否か判断する(ステップS1307)。
【0040】
数値であると判断した場合(ステップS1307(YES)、プロセッサ21は、参照先セルのスタンダード値を、セル値メモリ232のスタンダードテーブル232Sから取得し、取得したスタンダード値を、ワークメモリ233に一時記憶されているデシマル値に置換する(ステップS1308)。
【0041】
そして、プロセッサ21は、このワークメモリ233に一時記憶したデシマル値を、ワークメモリ233に一時記憶させる、変換した計算式におけるa_iの値として代入する(ステップS1309)。
【0042】
その後、プロセッサ21は、ポインタiに「1」を加える(ステップS1310)。そして、プロセッサ21は、上記ステップS1304の処理に移行する。
【0043】
また、上記ステップS1307において、例えば参照先セルB4のデシマル値は変数「a」であるので、数値ではないと判断される。このように数値ではないと判断した場合には(ステップS1307(NO)、プロセッサ21は、ワークメモリ233に一時記憶されているデシマル値を「0」に置換する(ステップS1311)。そして、プロセッサ21は、上記ステップS1309の処理に移行する。
【0044】
また、上記ステップS1305においてセル参照は必要でないと判断した場合には(ステップS1305(NO))、プロセッサ21は、ポインタiの値で示されるi番目の引数の値を取得する(ステップS1312)。そして、プロセッサ21は、上記ステップS1309の処理に移行して、この取得したi番目の引数の値を、計算式におけるa_iの値として代入することとなる。
【0045】
以上のステップS1304乃至ステップS1312の処理を繰り返していき、上記ステップS1304において、ポインタiにセットされた値が計算式における引数の数より小さくなくなったと判断すると(ステップS1304(NO))、プロセッサ21は、上位のルーチンに戻る。
【0046】
以上の「=SUM(B1:B5)」の計算式の場合における表計算ソフト関数変換処理により、ワークメモリ233には、変換した計算式として、
【0047】
【0048】
を示すLaTeXデータ
【0049】
【0050】
つまり、
【0051】
【0052】
が記憶される。なお、LaTeXデータにおける「\」は「¥」と同じ意味を示す異なる表記である。
【0053】
また、
図5の表計算シート100におけるセルC1に入力された
【0054】
【0055】
の場合には、表計算ソフト関数変換処理により、ワークメモリ233には、変換した計算式として、
【0056】
【0057】
が記憶されることとなる。
【0058】
以下、幾つかの例を挙げる。ここでは、入力値メモリ231に記憶されるLaTeXデータ、表計算シート100での表示、変換した計算式、の順に記す。
【0059】
【0060】
ここで、(4)式は、セルB4~B6についての分母が不明であるため、シンタックスエラーとなる。
【0061】
さらに別の例を挙げる。
【0062】
【0063】
ここで、(7)式の表計算ソフト関数「OFFSET」は、この関数独自のセル参照を行う。すなわち、第1引数はそのまま、その他の引数はセル値を参照する。
図5の表計算シート100の例ではセルC1にセル値が設定されていないので、この計算式もシンタックスエラーとなる。
【0064】
図7の説明に戻る。プロセッサ21は、上記のような表計算ソフト関数変換処理でLaTeX記法に変換した計算式に対して、参照するセルに保存された数値データを用いて計算することで、計算サーバ10で計算可能な計算用データを作成する(ステップS14)。プロセッサ21は、作成した計算用データをワークメモリ233に一時記憶させる。例えば、
図5の表計算シート100におけるセルA1の計算式の場合、計算用データは、以下のようになる。
【0065】
【0066】
また、
図5の表計算シート100におけるセルC1の計算式の場合には、計算用データは、以下のようになる。
【0067】
【0068】
こうして、プロセッサ21は、入力装置25によってユーザから受け付けた表計算ソフト関数と数学自然表示を含む計算式を、計算サーバ10で計算可能な第2の計算式に変換する。
【0069】
プロセッサ21は、この変換した第2の計算式を示す計算用データを、通信装置27によりネットワーク30を介して計算サーバ10に送信する(ステップS15)。
【0070】
特にフローチャートは図示しないが、ストレージ14に記憶された計算プログラム141に従って動作している計算サーバ10のプロセッサ11は、この計算用データを通信装置15により受信すると、それをRAM13に一時記憶する。そして、プロセッサ11は、このRAM13に一時記憶した計算用データで示される計算式の計算を実行し、その計算結果を、通信装置15によりネットワーク30を介して端末20へ返信する。
【0071】
端末20のプロセッサ21は、ネットワーク30を介して計算サーバ10から返信されてきた計算結果を、通信装置27により受信する(ステップS16)。計算結果は、スタンダード値とデシマル値とを含む。例えば、
図5の表計算シート100におけるセルA1の計算式の場合、スタンダード値は「\pi」、デシマル値は「3.1415…」である。また、
図5の表計算シート100におけるセルC1の計算式の場合、スタンダード値及びデシマル値は共に「6」である。プロセッサ21は、この受信した計算結果をワークメモリ233に一時記憶させる。
【0072】
その後、プロセッサ21は、付加計算が必要か否か判断する(ステップS17)。例えば、表計算ソフト関数には、「COUNT」や「OFFST」等、計算サーバ10で処理できない関数が存在する。よって、ここでは、入力値メモリ231に記憶しているLaTeXデータが、そのような関数を含むか否かを判断することとなる。
【0073】
付加計算が不要であると判断した場合(ステップS17(NO))、プロセッサ21は、ワークメモリ233に一時記憶している計算結果を、セル値メモリ232のスタンダードテーブル232S及びデシマルテーブル232Dに、セル値として保存する(ステップS18)。そして、プロセッサ21は、このフローチャートに示す処理を終了する。なお、この処理を終了する際、ワークメモリ233に一時記憶しているデータを削除することが望ましい。
【0074】
これに対して、付加計算が必要と判断した場合には(ステップS17(YES))、プロセッサ21は、付加計算を実行する(ステップS19)。すなわち、プロセッサ21は、ワークメモリ233に一時記憶している計算結果に対して、入力値メモリ231に記憶している計算式に含まれる関数の計算を実行する。その後、上記ステップS18に移行して、この付加計算の結果を、セル値メモリ232のスタンダードテーブル232S及びデシマルテーブル232Dに、セル値として保存することとなる。
【0075】
図9Aは、計算結果を保存した場合のスタンダードテーブル232Sの記憶内容の一例を示す図であり、
図9Bは、同じくデシマルテーブル232Dの記憶内容の一例を示す図である。また、
図10は、この計算結果の表示を含む表計算シート100の一例を示す図である。これらの図に示すように、
図5のセルA1に入力された計算式に対して、計算結果として、スタンダードテーブル232Sには「¥pi」が、デシマルテーブル232Dには「3.1415…」が記憶され、表計算シート100には「π」が表示されることとなる。また、
図5のセルC1に入力された計算式については、計算結果として、スタンダードテーブル232S及びデシマルテーブル232Dの両方に「6」が記憶され、表計算シート100にも「6」が表示されることとなる。
【0076】
(具体例)
以下、表計算ソフト関数と数学自然表示を含む幾つかの計算式について、各ステップでの処理結果の具体例を示す。
【0077】
図11は、表計算ソフト関数と数学自然表示を含む計算式の具体例を説明するための図である。この例における表計算ソフト関数と数学自然表示を含む計算式は、
【0078】
【0079】
である。この場合、ステップS11では、入力値メモリ231には、
【0080】
【0081】
というLaTeXデータが保存される。そして、ステップS13の表計算ソフト関数変換処理により、
【0082】
【0083】
と変換され、ステップS14において、
【0084】
【0085】
のようなLaTeX記法の計算式として、計算サーバ10で計算可能な計算用データが作成される。
【0086】
そして、この計算用データを計算サーバ10に送信することで、ステップS16において、計算サーバ10から計算結果として、
【0087】
【0088】
を受信する。この場合、付加計算は不要であるので、ステップS18において、それがセル値メモリ232のスタンダードテーブル232S及びデシマルテーブル232Dに保存されることとなる。
【0089】
図12は、表計算ソフト関数と数学自然表示を含む計算式の別の具体例を説明するための図である。この例における表計算ソフト関数と数学自然表示を含む計算式は、
【0090】
【0091】
である。この場合、ステップS11では、入力値メモリ231には、
【0092】
【0093】
というLaTeXデータが保存される。そして、ステップS13の表計算ソフト関数変換処理により、
【0094】
【0095】
と変換され、ステップS14において、
【0096】
【0097】
のようなLaTeX記法の計算式として、計算サーバ10で計算可能な計算用データが作成される。
【0098】
そして、この計算用データを計算サーバ10に送信することで、ステップS16において、計算サーバ10から計算結果として、
【0099】
【0100】
を受信する。この場合、付加計算は不要であるので、ステップS18において、それがセル値メモリ232のスタンダードテーブル232S及びデシマルテーブル232Dに保存されることとなる。
【0101】
図13は、表計算ソフト関数と数学自然表示を含む計算式の更に別の具体例を説明するための図である。この例における表計算ソフト関数と数学自然表示を含む計算式は、
【0102】
【0103】
である。この場合、ステップS11では、入力値メモリ231には、
【0104】
【0105】
というLaTeXデータが保存される。そして、ステップS13の表計算ソフト関数変換処理により、
【0106】
【0107】
と変換され、ステップS14において、
【0108】
【0109】
のようなLaTeX記法の計算式として、計算サーバ10で計算可能な計算用データが作成される。
【0110】
そして、この計算用データを計算サーバ10に送信することで、ステップS16において、計算サーバ10から計算結果として、
【0111】
【0112】
を受信する。この場合、入力値メモリ231に記憶されている計算式は「COUNT」関数を含むので、付加計算が必要となる。よって、ステップS19において、計算サーバ10から計算結果のデシマル値に対して、
【0113】
【0114】
という付加計算を行う。そして、ステップS18において、その計算結果を、
【0115】
【0116】
を、セル値メモリ232のスタンダードテーブル232S及びデシマルテーブル232Dの両方に保存することとなる。
【0117】
以上のように、表計算ソフト関数がSUM関数(=SUM(…))であれば、セルからの取得値が値か否かの判定を行った後にセル値(スタンダード値)を取得すると共に、計算サーバ10で処理できる関数(SUM({…,…}))に置き換える。そして、SUM関数は計算サーバ10で計算されているので、表計算ソフト関数を実行するための付加計算は行われない。
【0118】
また、表計算ソフト関数がCOUNT関数である場合には、セルからの取得値が値か否かの判定を行った後にセル値(スタンダード値)を取得すると共に、引数を計算サーバ10に渡す。そして、この計算サーバ10計算後に、付加計算としてCOUNT関数を実行する。
【0119】
なお、ここでは具体例を挙げなかったが、表計算ソフト関数がOFFSET関数であれば、第1引数はそのままで、その他の引数はセルからの取得値が値か否かの判定を行った後にセル値(スタンダード値)を取得する。そして、第1引数以外の引数を計算サーバ10に渡し、計算サーバ10で計算後に、付加計算としてCOUNT関数を実行する。
【0120】
(実施形態のまとめ)
以上詳述したように、実施形態の表計算システム1(表計算装置)によれば、端末20において、表形式で入力されている計算要素(数値や計算式など)を対象として計算を行う計算式を、例えば
図5のセルC1に示すように、表のセルを参照する記述形式に対応する第1部分と、数学自然表示用の記述形式に対応する第2部分とを含む第1の形式の第1の計算式として受け付け、第1部分が参照するセルの値を用いて第1の計算式の計算を行う計算処理、または、第2部分が示す数学自然表示の表示形態で第1の計算式を表示する表示処理、を実行する。従って、表形式で入力されている計算要素を対象として計算を行う場合の計算式を、数学自然表示を含む計算式として受け付けて、その計算式の計算を行うこと、または、その計算式を数学自然表示を含む表示形態で表示することができる。よって、計算式をより柔軟な記述形式で入力することが可能になる。
【0121】
また、端末20は、第1の計算式に含まれる各計算要素が、第1部分であるか第2部分であるかを判定し、第1部分については、その第1部分が参照するセルの値を取り込むことにより、第1の形式の第1の計算式を、表のセルを参照しない第2の形式の第2の計算式に変換する。こうすることで、表のセルを参照しながら計算しなくても、第2の計算式を計算すれば、第1の計算式の計算結果が得られる。つまり、表を参照しなくても計算可能となる。
【0122】
また、実施形態の表計算システム1では、第1部分と第2部分のいずれも含まない第3形式の計算式を計算可能な計算処理部、例えば計算サーバ10により、指定した計算式の計算を実行させることが可能であり、端末20は、例えばステップS14において、第2の形式の第2の計算式を、そのような第3形式の第3の計算式に変換し、この第3形式の第3の計算式を計算処理部により計算させる。よって、多数の計算処理を高速に実行し得る計算処理部を用いて、計算を迅速に行うことができる。
【0123】
なお、第1の計算式は、表のセルに入力される計算式であり、端末20は、セル内での第1の計算式の記述形式に応じて、第1の計算式に対して計算処理を実行するか表示処理を実行するかを判定する。端末20は、例えば、第1の計算式が「=」で始まっているか否かにより、この判定を行うことができる。このように、第1の計算式の記述形式をどうするかにより、ユーザは、その計算式を計算させるのか表示させるのかを選択することが可能となる。
【0124】
例えば、
図5のセルC1の第1の計算式では、第1部分は、SUM関数のように、表のセルを参照する計算を行う表計算用の表計算ソフト関数の記述と、B1のように、参照すべき表のセルを指定するセル座標の記述とを含む。また、第2部分は、積分記号のような、表のセルを参照しない数学自然表示用の関数の記述と、2xのような、数学自然表示用の関数の計算対象となるセル座標ではないパラメータの記述とを含む。このように、第1の計算式は、表計算ソフト関数、セル座標、数学自然表示用の関数及びそのパラメータにより記述することができる。
【0125】
なお、受け付ける第1の計算式は、例えば
図5のセルA1やC1に示すように、表計算シート100のセルに入力される計算式であり、この計算式において、第1部分については、入力文字そのままのテキストとして入力を受け付け、第2部分は、組版処理システム用の記法によるテキストとして入力を受け付ける。従って、計算式を入力するユーザは、一般に利用されている組版処理システム用の記法を用いて、容易に計算式を入力することが可能となる。
【0126】
なお、組版処理システム用の記法としては、例えば、LaTeX記法を使用する。よって、広く利用されているLaTeX記法を採用することで、計算式の入力をより容易にすることができる。
【0127】
また、実施形態の表計算システム1では、表形式で入力される計算要素として、例えば
図2のセルB4やC3に示すように、数値又は変数である数値データに加えて、例えば
図2のセルB1やB3に示すように、数値をLaTeX記法により表したLaTeXデータを受け付ける。よって、計算式以外の数値についても、数学自然表示で受け付けることが可能となる。
【0128】
なお、この表計算シート100のセルに入力された数値についても、表示装置26に数学自然表示により表示される。よって、ユーザは、LaTeX記法で入力した数値が正しく入力できたか否かを容易に判別かることができる。
【0129】
端末20は、表計算シート100のセルのセル値として、RAM23のセル値メモリ232におけるスタンダードテーブル232Sに、入力されたLaTeXデータを保存し、デシマルテーブル232Dに、入力されたLaTeXデータを数値に変換した数値データを保存する。このように、各セルのセル値として、スタンダード値とデシマル値の2種類を保存することができる。
【0130】
なお、実施形態の表計算システム1では、第1の計算式に含まれる第1部分は表計算ソフト関数を含み、第1の計算式から第2の計算式への変換は、表計算ソフト関数の内容に基づいて、入力内容をLaTeX表記法によるLaTeXデータに置き換えると共に、参照するセルに保存されたLaTeXデータを用いることにより、第1の形式の第1の計算式を、例えば計算サーバ10で計算可能な第2の形式であるLaTeX記法の第2の計算式に置き換える。このとき、第1の計算式に含まれる表計算ソフト関数の内容に応じて、処理方法を変えている。例えば、SUM関数やCOUNT関数などの参照セルのデシマル値を用いて計算を行う表計算ソフト関数の場合には、
図8のステップS1307,S1311を実行するが、それ以外の、とりあえず引数をスタンダード値のままにしておいてもよい表計算ソフト関数の場合には、
図8のステップS1307,S1311を実行しない。このように、表計算ソフト関数の内容に応じて、第1の計算式を第2の計算式に変換することができる。なお、COUNT関数やOFFSET関数などの計算サーバ10で計算できる形式に変換できない表計算ソフト関数の場合には、
図7のステップS19のように、後処理で計算することができる。
【0131】
端末20は、第1の計算式を受け付けた表計算シート100のセルに対するセル値として、RAM23のセル値メモリ232におけるスタンダードテーブル232Sに、例えば
図9Aに示すように、第3の計算式の計算結果であるLaTeXデータを保存し、デシマルテーブル232Dに、例えば
図9Bに示すように、第3の計算式の計算結果である数値データを保存する。このように、各セルのセル値として、スタンダード値とデシマル値の2種類を保存することができる。
【0132】
そして、表示装置26に表示した第1の計算式を受け付けた表計算シート100のセルには、例えば
図10のセルA1に示すように、スタンダードテーブル232Sに保存している第3の計算式の計算結果であるLaTeXデータを数学自然表示により表示する。よって、計算結果も、数学自然表示により表示されるので、ユーザにとって計算結果が判り易い。
【0133】
なお、実施形態の表計算システム1では、第2の計算式を第3の計算式に変換した端末20は、第3の計算式を計算する計算処理部である計算サーバ10にネットワーク30を介して第3の計算式を送信し、その計算サーバ10での計算結果を受信する。このように、実施形態の表計算システム1では、端末20と計算サーバ10とが協働して、計算を実施することができる。
【0134】
ここで、第1の計算式が、COUNT関数やOFFSET関数などの計算サーバ10で計算できる形式に変換できない表計算ソフト関数を含んでいた場合には、端末20は、計算サーバ10が計算した計算結果における数値データに対して、当該表計算ソフト関数による計算を行う。よって、計算サーバ10では計算できない表計算ソフト関数が有っても、計算結果を取得することが可能となる。
【0135】
また、実施形態の表計算システム1(表計算装置)によれば、端末20において、受け付けた第1の計算式に含まれる各計算要素(数値や計算式など)が、表のセルを参照するセル座標に対応する第1部分であるか、LaTeX記法に対応する第2部分であるかを判定し、その判定の結果に応じて、第1の計算式を所定の計算処理部、例えばネットワーク30を介して通信可能な計算サーバ10で計算可能な第2の形式の第2の計算式に変換する。従って、第1の計算式に含まれる計算要素を対象として計算を行う場合の計算式を、LaTwX記法で記述された計算式として受け付けて、計算を行うことができる。よって、計算式をより柔軟な記述形式で入力することが可能になる。
【0136】
以上の一実施形態において記載した表計算システム1による各処理の手法、すなわち、
図7のフローチャートに示す表計算処理、
図8のフローチャートに示す表計算ソフト関数変換処理、等の各手法は、何れもコンピュータに実行させることができる表計算ソフト241のプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピ(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の外部記録装置の媒体に格納して配布することができる。そして、情報処理装置(電子機器)の制御部(CPU)は、この外部記録装置の媒体に記録されたプログラムを記憶装置に読み込み、この読み込んだプログラムによって動作が制御されることにより、各実施形態において説明した各種の機能を実現し、前述した手法による同様の処理を実行することができる。
【0137】
また、各手法を実現するためのプログラムのデータは、プログラムコードの形態としてネットワーク30上を伝送させることができ、このネットワーク30に接続されたコンピュータ装置(プログラムサーバ)から、前記プログラムのデータを端末20に取り込んでストレージ24に記憶させ、前述した各種の機能を実現することもできる。
【0138】
また、一実施形態では、端末20と計算サーバ10とが協働して計算を実行するものとしたが、第2の計算式の計算も端末20で行うようにしても良い。すなわち、端末20単独で、表計算装置を構成するようにしても良い。
【0139】
なお、本発明は、実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【0140】
1…表計算システム
10…計算サーバ
11…プロセッサ
12…ROM
13…RAM
14…ストレージ
15…通信装置
16…システムバス
20…端末
21…プロセッサ
22…ROM
23…RAM
24…ストレージ
25…入力装置
26…表示装置
27…通信装置
28…システムバス
30…ネットワーク
100…表計算シート
141…計算プログラム
231…入力値メモリ
232…セル値メモリ
232D…デシマルテーブル
232S…スタンダードテーブル
233…ワークメモリ
241…表計算ソフト