JPH06101008B2 - 表計算処理装置 - Google Patents

表計算処理装置

Info

Publication number
JPH06101008B2
JPH06101008B2 JP63224449A JP22444988A JPH06101008B2 JP H06101008 B2 JPH06101008 B2 JP H06101008B2 JP 63224449 A JP63224449 A JP 63224449A JP 22444988 A JP22444988 A JP 22444988A JP H06101008 B2 JPH06101008 B2 JP H06101008B2
Authority
JP
Japan
Prior art keywords
cell
value
node
recalculation
rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63224449A
Other languages
English (en)
Other versions
JPH0273458A (ja
Inventor
直樹 金井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP63224449A priority Critical patent/JPH06101008B2/ja
Priority to EP19890309043 priority patent/EP0358492A3/en
Publication of JPH0273458A publication Critical patent/JPH0273458A/ja
Priority to US07/912,048 priority patent/US5339410A/en
Publication of JPH06101008B2 publication Critical patent/JPH06101008B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q99/00Subject matter not provided for in other groups of this subclass

Description

【発明の詳細な説明】 A.産業上の利用分野 この発明はスプレッド・シートに表示されたデータを処
理する表計算処理装置に関し、特に、双方向に再計算を
行えるようにしたものである。
B.従来の技術 従来、データを保持するためにセルを用意し、表を複数
のセルで構成し、セルの値を計算するための手順を記憶
しておき、セルの値がユーザによって変更された時に、
自動的にその他のセルの値を再計算する、表形式の簡易
言語プログラムが知られている。例えば、マイクロソフ
ト社のMultiplan(商標)やロータス・ディベロップメ
ント社のLotus 1-2-3(商標)が知られている。
ところで、これらの従来の製品には次のような不都合が
あった。これらの製品では、セルの値を計算するための
手順を関数式で表現している。ここで、関数式で値の決
定手順が記述されているセルを関数値セル、関数式中で
参照しているセルを変数値セルと呼ぶ事にする。第26図
に、関数式の定義例を示す。各セルの名前は、Lotus 1-
2-3で採用されているものである。各セルの上段には、
画面上に表示されているセルの値を示す。下段には、セ
ルに定義されている値、又は、関数式を示す。この例で
は、関数値セルB1に関数式 A1*A2 が定義されている。ここで、変数値セルの値が変更され
た場合には、関数式を再評価する事により関数値セルの
値が自動的に再計算される。例えば、第27図のように、
変数値セルA1の値が5、変数値セルA2の値が16に変更さ
れると、関数値セルB1の値が再計算され80になる。しか
し、関数値セルの値が変更されても、変数値セルの値を
再計算する事ができない。例えば、第28図のように関数
値セルB1の値を100に変更しても、変数値セルA1、A2の
値は再計算されず、そのかわり、定義されていた関数式
A1*A2が削除され、値100がセルB1に定義される。
つまり、従来の技術では、一方向のみの再計算しか許さ
れていない。
なお、関連する特許公報としては特開昭61-138369、61-
138370、61-138371号公報がある。しかし、これらは一
般的な表計算処理を開示するのみで、双方向の再計算に
ついては何ら記載がない。
C.発明が解決しようとする問題点 この発明は以上の事情を考慮してなされたものであり、
変数値セルの値が変更された時には関数値セルの値を再
計算し、関数値セルの値が変更された時には変数値セル
のうちの一つのセルの値を再計算するという双方向の再
計算機能を持った表計算処理装置を提供する事を目的と
している。
D.問題点を解決するための手段 この発明では以上の目的を達成するために、セルの値を
計算する手順として、セル間に成り立つ関係式を扱い、
それをもとに計算モデルを生成するようにしている。そ
して、ユーザからの1以上のセルの値の変更指令が与え
られた時に、生成された計算モデルに、他のセルの値の
再計算の順序を決定するためのマーク付けを行ない、付
けられたマークを用いて再計算の順序を決定し、再計算
を実行するようにしている。
E.実施例 E1.システムの概要 第1図は一実施例を実現する処理システムを示してい
る。本処理システムは、入力装置1、計算モデル生成部
2、再計算実行部3、表示制御部4およびCRT5よりな
る。ユーザは、セル間に成り立つ関係に関する情報を入
力装置1より入力する。計算モデル生成部2は、入力さ
れた関係に関する情報を基にして計算モデルを生成す
る。計算モデル生成部2に関しては後に詳しく述べる。
ユーザによるセルの値の変更指令は、ユーザにより入力
装置1より入力される。再計算実行部3は、入力された
変更指令にしたがって、該当するセルの値を変更し、次
にその他のセルの値を計算モデルを用いて再計算する。
再計算実行部は、前処理部6、計算順序決定部7、評価
計算部8、およびバックトラック制御部9より構成され
る。再計算実行部3についても後に詳しく述べる。再計
算実行部3の実行結果は、表示制御部4によりCRT5に表
示される。
E2.計算モデル生成部2 計算モデル生成部2は、ユーザにより入力された(1)
で述べるセル間に成り立つ関係に関する情報をもとにし
て、(2)で述べる計算モデルを生成し、双方向再計算
の実行を可能にする。
(1)セル間に成り立つ関係に関する情報は、セル間に
成り立つ関係式と伝搬制約セルよりなる。
関係式は、 Y=f(X1,...,Xn) という形式で表現する。ただし、Y,X1,...,Xnはセル名
である。この時、Yは関数値セル、Xi(1≦i≦n)は
変数値セルである。
伝搬制約セルは、変数値セルのうちの一つであり、関数
値セルの値が変更された時に次に再計算すべきセルであ
る。この時、伝搬制約セルの値を求めるための逆関数
が、Xk=f-1(Y,X1,..,Xk-1,Xk+1,..,Xn) (Xk:伝搬制約セル) のように、セル間に成り立つ関係式より作れなければな
らない。
(2)計算モデルは、関係を表す関係ノード、セルを表
すセル・ノード、およびそれらのノードの間をリンクす
るアークよりなる。各関係ノードは、それぞれ固有の関
係名により識別される。関係ノードは、関係式をデータ
としてもつ。各セル・ノードは、それぞれ固有のセル名
により識別される。セル・ノードは、セルの値をデータ
として持つ。アークは、そのアークがリンクするセル・
ノードと関係ノードの対によって表現される。アークは
3種類に分類できる。まず第1は、関数値セルを表すセ
ル・ノードと関係ノードをリンクするアークであり、関
係ノードからセル・ノードへ向かう方向性を持つ。第2
は、変数値セルを表すセル・ノードと関係ノードをリン
クするアークであり、関係ノードからセル・ノードへ向
かう方向性を持つ。第3は、その他のセル・ノードと関
係ノードをリンクするアークであり、方向性はない。セ
ル・ノード、関係ノード、および、アークに関する情報
は、例えば、それぞれの持つ情報をテーブルに記録する
などの方法によって管理される。
計算モデルを図を用いて説明しよう。第2図は、セル
Y、X1、およびX2間に成り立つ関係fの計算モデルを表
している。五角形11は関係ノードである。四角形12、1
3、14はセル・ノードである。五角形の先端からの矢印
で表されたアークは、関数値セルを表すセル・ノードと
関係ノードをリンクするアークであり、矢印の方向がア
ークの方向を表す。第2図では、アーク15がこの様なア
ークに対応し、セル・ノードY(Yは関数値セルであ
る)にリンクされている。五角形の底辺からの矢印で表
されたアークは伝搬制約セルを表すセル・ノードと関係
ノードをリンクするアークであり、矢印の方向がアーク
の方向を表す。第2図では、アーク16がこの様なアーク
に対応し、セル・ノードX1(X1は伝搬制約セルである)
にリンクされている。五角形の底辺からのその他のアー
クは、伝搬制約セルではない変数値セルを表すセル・ノ
ードと関係ノードをリンクするアークである。第2図で
は、アーク17がこの様なアークに対応し、セル・ノード
X2(X2は変数値セルであり、かつ、伝搬制約セルではな
い)にリンクされている。
この計算モデル上で再計算は以下の規則にしたがって行
なわれる。
まず第一に、一つの関係に注目した場合、変数値セルの
値が変更され、かつ、関数値セルの値が変更されていな
い場合、関数値セルの値が再計算される。第3図は関係
fにおける再計算の例を示す。この例では、変数値セル
X2の値が変更され、かつ、関数値セルYの値が変更され
ていないため、Yの値が再計算される。
第二に、一つの関係に注目した場合、関数値セルの値が
変更され、かつ、伝搬制約セル値が変更されていない場
合、伝搬制約セルの値が再計算される。第4図は、関係
fにおける再計算の例を示す。この例では、関数値セル
Yの値が変更され、かつ、伝搬制約セルX1の値が変更さ
れていないため、X1の値が再計算される。
E3.再計算実行部3 再計算実行部3は、ユーザによるセルの値の変更指令に
したがって、該当するセルの値を変更し、次にその他の
セルの値を計算モデルを用いて再計算する。
ただし、各関係において、再計算を実行する場合には、
他の関係により再計算される可能性があるセルが全て実
際に再計算された後に実行される。例えば、第5図のよ
うにセルA1の値が変更された場合、関係R1およびR2によ
りセルB1とB2の値の再計算が実行された後に、関係R3に
よりセルC1の値が再計算される。
さらに、再計算実行部3は、双方向の再計算を許容した
ために発生した二つの問題に以下のように対処する。
第一の問題は、再計算の過程で発生するループである。
第6図は、ループ発生の様子を示している。第6図にお
いてセルXの値が変更されているため、関係R1における
再計算を実行すると関係R1の関数値セルYの値が再計算
され、その結果、関係R2における再計算を実行しようと
しても関係R2の関数値セルYおよび制約伝搬セルXの双
方の値がすでに変更されているため、E2で述べた再計算
の規則を用いる事ができない。このような場合に対処す
るため、再計算実行部は、関数値セルと制約伝搬セルの
双方の値が変更されている時には、関係式が満たされて
いるか否かを評価し、関係式が満たされていない場合に
はその事実をユーザに知らせる。
第二の問題は、再計算をどの関係から実行するかで、再
計算の方法が変わるという問題である。例えば、第7図
においては、セルA1とA2の値が変更されているため、関
係R1における再計算を先に実行すると、第7図(b)の
ように関係R1の関数値セルYの値が関係R1の関係式を用
いて再計算され、その結果、関係R2により関係Rの伝搬
制約セルB2の値が再計算される。一方、関係R2における
再計算を先に実行すると、第7図(c)のように関係R2
の関数値セルYの値が関係R2の関係式を用いて再計算さ
れ、その結果関係R1により関係R1の伝搬制約セルB1の値
が再計算される。このような場合に対処するため、再計
算をどの関係から実行するかで再計算の方法が変わる場
合には、再計算実行部は、その時の各セルの値を記録し
ておき、再計算を実行すべき関係を一つ選択して再計算
を続行し、後にバックトラックが起動された場合、各セ
ルの値を記録した状態に戻した後、その他の関係を選択
し再計算を続行する。
再計算実行部3は、第1図で示したように前処理部6、
計算順序決定部7、評価計算部8、およびバックトラッ
ク制御部9から構成される。ユーザによりセルの値の変
更指令が入力されると、まず、前処理部6が、再計算の
過程で変更される可能性のある全てのセルを調べるため
に、計算モデル2上にマーク付けを行う。次に、計算順
序決定部7が前処理部6により付けられたマークを用い
て、どのような順序でセルの値を再計算すべきかを決定
し、評価計算部8がセルの値を再計算する。バックトラ
ック制御部9は、再計算をどの関係から実行するかで再
計算の方法が変わる場合に、各セルの値の記録し、バッ
クトラック起動時に、各セルの値を記録された元の値に
戻す。以下、各部分の詳細について述べる。
前処理部6 前処理部6は、ユーザによりセルの値の変更指令が入力
された場合、再計算の過程で変更される可能性のある全
てのセルを調べるために、以下に述べるマークを計算モ
デル上に付ける。マークには、表1に示されたM-cell、
Input arc、および、Output arcの3種類がある。
マークM-cellは、セルの値が変更されたか否かを判断す
るために用いられる。マークInput arcは、その関係に
おける再計算以外の原因で値が変更される可能性がある
セルを識別するために用いられる。マークOutput arc
は、その関係における再計算によって値が変更される可
能性があるセルを識別するために用いられる。
前処理部6では、ユーザによる変更指令が入力された場
合、まず、計算モデル上の全てのマーク(M-cell、Inpu
t arc、Output arc)を消去し、次に、ユーザによる変
更指令の対象であるセル・ノードの値をユーザが指定し
た値に変更するとともに、そのノードにM-cellのマーク
を付ける。又、バックトラック制御部9に初期化指令を
送る。次に、マーク付けの条件を満たした全てのアーク
にInput arc、および、Output arcのマークを付ける。
第8図は、関係Y=f(X1,X2)に付けられたマークの
例を示す。ただし、伝搬制約セルはX1であるとする。こ
こで、セルX2がユーザにより変更指令を受けたセルであ
るとすると、セル・ノードX2にM-cellのマークが付けら
れる。又、セル・ノードX2と関係ノードfをつなぐアー
ク21にInput arc24のマークが付けられる。この時、X2
の値が変更されたとするとX2は変数値セルであるため、
再計算すべきセルは関数値セルYであるので、関係ノー
ドfとセル・ノードYをつなぐアーク22にOutput arc25
のマークが付けられる。
第9図は、第8図の計算モデルに、さらに、セル・ノー
ドYが他の関係におけるOutput arcのマークの付いたア
ークに接続している場合のマーク付けの様子を示す。こ
の場合、セル・ノードYと関係ノードfの間のアーク22
にInput arc26のマークが付けられる。そして、Yの値
が変更されたとすると、再計算すべきセルは伝搬制約セ
ルX1になるので、関係ノードfとセル・ノードX1の間の
アーク23にOutput arc27のマークが付けられる。
なお、以後、Input arcの始点であるセル・ノードをそ
の関係におけるT-cell、Output arcの終点であるセル・
ノードをその関係におけるC-cellと呼ぶ事にする。
計算順序決定部7 計算順序決定部7は、前処理部6により付けられたマー
クを用いて再計算するセルの順序を決定する。再計算す
るセルの順序は、例えば、第10図に示された方法を用い
て決定される。この方法では、7つの規則が用いられ
る。以下、それぞれの規則の詳細について述べる。
規則1の条件、および、アクションを表2に示す。規則
1は、すでに値が変更されたセルは、以後の再計算の対
象とはなりえないため、M-cellのマークの付けられたセ
ル・ノードとリンクしたアークからOutput arcのマーク
を削除するために用いられる。第11図に規則1の実行例
を示す。この例では、セル・ノードYにM-cellのマーク
が付けられているので、関係ノードfとセル・ノードY
をリンクするアーク31からOutput arc32のマークが削除
される。
規則2の条件、および、アクションを表3に示す。規則
2は、一つの関係における再計算の対象となる可能性が
あるセルが一つしかない場合に、そのセルを再計算の対
象として確定するために用いられる。第12図に規則2の
実行例を示す。この例では、Output arcはOutput arc41
のみが存在し、Output arc41のマークの付けられたアー
ク42にはInput arc43のマークが付けられているため、I
nput arc43のマークが削除される。
規則3の条件、および、アクションを表4に示す。規則
3は、他の関係によって変更される可能性があるセル全
てが実際に変更されている場合に、その関係における再
計算を実行するために用いられる。第13図に規則3の実
行例を示す。この例におけるT-cellはX1とX2であり、か
つ、それらにM-cellのマークが付けられているため、Ou
tput arc51の向かうセル・ノードYの値を再計算する。
そして、YにM-cellのマークが付けられ、全てのアーク
に付けられたマークが削除される。
規則4の条件、および、アクションを表5に示す。規則
4は、他の関係によって変更される可能性があるセル全
てが実際に変更され、かつ、再計算の対象となるセルが
存在しない場合に用いられる。第14図に規則4の実行例
を示す。この例におけるT-cellはYとX1であり、かつ、
それらにM-cellのマークが付けられている。又、関係ノ
ードに接続しているアークに、Output arcのマーク付け
がされたアークが存在せず、Input arcのマーク付けさ
れたアークが存在するため、規則4が適用されチェック
が行なわれる。そしてアークに付けられた全てのマーク
が削除される。
規則5の条件、および、アクションを表6に示す。規則
5は、ループに対処するために用いられる。第15図に、
規則5の実行例を示す。この例では関係ノードfにリン
クしたアークに付けられたOutput arcは、Output arc61
だけであり、かつ、セル・ノードX1にM-cellのマークが
付けられているため、セル・ノードYの値が再計算さ
れ、Output arc1のマークが削除される。
第16図に規則5を用いてループに対処する例を示す。こ
の例では、ループが発生しており、セル・ノードYの値
を再計算しないかぎり、セル・ノードX2の値が再計算さ
れる事はない。この時、関係R1に規則5を適用する事に
より、Yの値が再計算され、関係R2に規則3が適用でき
るようになり、その結果、X2の値が再計算される。その
後、関係R1に規則4が適用されR1が満たされているかど
うかの評価が行なわれる。
規則6の条件、および、アクションを表7に示す。規則
6は、どの関係から規則を適用するかで再計算するセル
が変化する場合に用いられる。第17図に、規則6の実行
例を示す。この例では関係ノードfに接続しているアー
クに付けられたOutput arcは、Output arc71とOutput a
rc72の二つがあり、かつ、アーク73にはInput arc74が
付けられており、かつ、セル・ノードX2にM-cellのマー
クが付けられている。ここで、バックトラック制御部9
が規則6を関係fに適用する事を許可したとすると、セ
ル・ノードX1にM-cellのマークが付けられ、Output arc
72が削除される。
どの関係から規則を適用するかで再計算するセルが変化
する場合、強制的にいづれかの関係においてセルの値の
再計算を実行しないかぎり、それ以上再計算が続行しな
い。例えば、第18図の場合、強制的に関係R1かR2におい
て再計算を実行しないかぎり再計算が続行できない。こ
こで第18図(a)のようにR1に規則6を適用する事によ
り、それ以降、図のように規則が適用でき、その結果、
R1によりYの値が再計算され、R2によりB2の値が再計算
される。その後、バックトラックによりR1に規則6が適
用される前の状態に戻された時には、第18図(b)のよ
うにR2に規則6を適用する事により、R2によりYの値が
再計算され、R1によりB1の値が再計算される。
規則7の条件、および、アクションを表8に示す。規則
7は、どの関係から規則を適用するかで再計算するセル
が変化し、かつ、ループが発生する場合に用いられる。
第19図に規則7の実行例を示す。この例では、関係ノー
ドfに接続したアーク81とアーク82の双方が、Output a
rcとInput arcのマーク付けられており、かつ、セル・
ノードX2にM-cellのマークが付けられている。ここで、
バックトラック制御部9が規則7を関係fに適用する事
を許可したとすると、Output arc83が削除される。
第20図では、どの関係から規則を適用するかで再計算す
るセルが変化し、かつ、ループが発生している。この
時、関係R1に規則7を適用する事により、それ以降、第
20図のように規則が適用でき、その結果、R1によりYの
値が再計算され、R2によりA2の値が再計算され、その
後、R1が成り立つかどうかがチェックされる。バックト
ラックによりR1に規則7が適用される前の状態に戻され
た時には、R2に規則7を適用する事により、R2によりY
の値が再計算され、R1によりA2の値が再計算され、R2が
成り立つかどうかがチェックされるが、その例は第20図
では省略する。
評価計算部8 評価計算部8は、計算順序決定部7からの再計算指令お
よび評価指令に対し、セルの値の再計算および関係が満
たされているか否かの評価を行う。
セルの値の再計算は、次のように行なわれる。再計算す
べきセルが関数値セルである場合、関係式の右辺を評価
し、その値を関数値セルの値として設定する。再計算す
べきセルが伝搬制約セルである場合、伝搬制約セルの値
を求める逆関数を関係式より生成し、その式を評価し、
求められた値を伝搬制約セルの値として設定する。
関係が満たされているか否かの評価は、関係式の右辺を
評価した値と、関係値セルの値を比較する事により実行
される。二つの値が等しくない時には、その旨ユーザに
警告する。
バックトラック制御部9 再計算をどの関係から実行するかで、再計算すべきセル
が変わるという現象は、再計算実行時には、規則6及び
規則7を適用可能な関係が複数ある時に発生する。故
に、バックトラック制御部9は、これらの規則が関係に
適用される時に、その時の計算モデルの状態(各セルの
値、マーク付けの状態)を記録し、後にバックトラック
が起動された時に、状態を記録された状態に戻す必要が
ある。
又、バックトラック制御部9は、それらの規則を同じ計
算モデルの状態において同じ関係に二回以上適用しない
ように制御する必要もある。
バックトラック制御部9は、以下の機能を有する。
第一の機能は、規則6及び7が実行された事を通知され
た場合、その時の計算モデルの状態をバックトラックの
ために記録し、そして、その計算モデルの状態におい
て、どの関係にどの規則が適用されたかを記録する(こ
の記録をその計算モデルの状態における規則の適用記録
と呼ぶ)機能である。
第二の機能は、規則6をある関係に適用しても良いかを
判断する機能である。その時の計算モデルの状態におけ
る規則の適用記録を調べ、規則6をある関係に対し適用
した事がない場合には、その関係への規則6の適用を許
可する。それ以外の場合には、適用を許可しない。この
機能は、規則6を同一の計算モデルの状態において同じ
関係に二回以上適用しないために用いられる。
第三の機能は、規則7をある関係に適用しても良いかを
判断する機能である。その時の計算モデルの状態におけ
る規則の適用記録を調べ、規則7をある関係に対し適用
した事がなく、かつ、その計算モデルの状態において規
則6が用いられたことがない場合には、その関係への規
則7の適用を許可する。それ以外の場合には、適用を許
可しない。この機能は、二つの理由のために用いられ
る。その一つは、規則7を同じ計算モデルの状態におい
て同じ関係に二回以上適用しないためである。もう一つ
は、規則6が規則7より優先順位が高いため、ある計算
モデルの状態における規則6の適用記録がある場合に、
規則7を用いることを禁止するためである。さらに詳し
く述べると、以下のようになる。まず、ある計算モデル
の状態において、規則6を適用可能な関係がN個あり、
規則7を適用可能な関係が存在したとしよう。この時、
優先順位を考慮すると先に規則6が適用される。そし
て、規則6を適用可能な関係がN個ある事から、バック
トラックがN回あった後には、規則7が適用可能になっ
てしまう。ここで規則7を適用すると、その計算モデル
の状態において規則6が適用可能であったにもかかわら
ず、優先順位の低い規則7を適用する事になる。故に、
この場合には、規則7の適用を禁止しなければならな
い。
第四の機能は、バックトラックを実行する機能である。
バックトラックの実行を命じられた時に、バックトラッ
ク制御部9は、以下の処理を行う。
(1)一番最近記録された計算モデルの状態に、実際の
計算モデルの状態を戻し、(2)を実行する。計算モデ
ル状態の記録がない場合、バックトラックを終了する。
(2)適用可能な規則がある場合には、再計算の実行を
行う。適用可能な規則がない場合には、その時の計算モ
デルの状態における規則の適用記録を全て削除し、
(1)で用いられた計算モデルの状態の記録を削除す
る。その後、(1)を実行する。
第五の機能は、初期化の機能であり、全ての計算モデル
の状態の記録と規則の適用記録を削除する。
E4.実施例の作業例 以下に、ローンの返済金を計算する例を用いて、本発明
を用いたスプレッド・シートに於ける作業例を説明す
る。
ローンを返済する計画を立てる時、考慮しなければなら
ないことに、毎月分返済する額とボーナス分で返済する
額をどのように分配するかという問題がある。この問題
は、本発明による双方向再計算機能を用いる事により容
易に対処できる。第21図において、セルB2は、毎月返済
する分として借り入れる額、セルB3は、ボーナスで返済
する分として借り入れる額である。セルB4は、借り入れ
た総合計を表す。セルC2とC3は、それぞれ借入金一万円
当りの一回当りの返済額であるとする。そして、セルD2
が毎月の返済額、セルD3が毎ボーナスの返済額である。
また、それらのセルの間に、第21図中の三つの関係が定
義されていたとする。
ここで、借入金として3000万円が必要であるとしよう。
そのため、セルB4にその数値を入力すると、第22図のよ
うに、まず関係(1)に従ってセルB2の値が再計算さ
れ、次に、関係(2)に従ってセルD2の値が再計算され
る。この結果、毎月分で全て返済しようとすると毎月18
万円返済すればよい事が判る。
ここで、毎月の返済分を12万円に抑えたいとしよう。そ
のためには、セルD2に120000を入力すればよい。この結
果、第23図のように、まず、関係(2)に従ってセルB2
の値が再計算され、次に関係(1)に従ってセルB3の値
が再計算され、最後に、関係(3)に従ってセルD3の値
が再計算される。そして、この場合には、毎ボーナスで
50万円返済すればよい事が判る。
しかし、毎ボーナスでは、最大でも42万円までしか返済
できないとしたら、今度は、セルD3に420000を入力すれ
ばよい。この結果、第24図のように、まず関係(3)に
従ってセルB3が再計算され、次に関係(1)に従ってセ
ルB2が再計算され、最後に関係(2)に従ってセルD2が
再計算される。そして、この場合には、毎月12万9600円
返済すればよい事が判る。
さらに、借入金は100万円単位でないと借りられないと
いう制約があるとする。そこで、ボーナス分の借入金額
を、800万にしてみる。そのためには、セルB3に8000000
を入力すればよい。この結果、第25図のように、まず関
係(1)に従ってセルB2が再計算されるとともに、関係
(3)に従ってセルD3が再計算される。次に、関係
(2)に従ってセルD2が再計算される。そして、この場
合、毎月13万2千円、毎ボーナスで40万円返済すればよ
い事が判る。以上で実施例の説明を終わる。
F.発明の効果 本発明により、スプレッド・シートに双方向再計算機能
を導入する事により、ユーザに対しより強力な機能を提
供する事ができる。その特長は、どのセルの値でも直接
ユーザが変更する事ができ、かつ、他のセルの値が自動
的に再計算される事である。この結果、スプレッド・シ
ートを用いたユーザの作業がより容易に、又、より円滑
になる。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すブロック図、第2
図、第3図および第4図は上記実施例で用いる計算モデ
ルを説明する図、第5図ないし第20図は上記実施例の再
計算実行部3の動作およびその各部の動作を説明する
図、第21図ないし第25図は上記実施例を用いた作業例を
説明する図、第26図、第27図および第28図は従来例を説
明する図である。 1……入力装置、2……計算モデル生成部、3……再計
算実行部、4……表示制御部、5……CRT、6……前処
理部、7……計算順序決定部、8……評価計算部、9…
…バックトラック制御部。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】スプレッドシートを表示する手段と、 前記スプレッドシートの複数のセルの間の関係式および
    セル値を入力する入力手段と、 入力された関係式に対応する関係ノードと、関数値セル
    ・ノードと変数値セル・ノードと伝搬制約セル・ノード
    とを含む複数のセル・ノードと、前記セル・ノードと前
    記関係ノードを接続するアークとを有する計算モデルを
    確立する手段と、 前記入力手段によりセル値の変更が入力された場合に、
    前記変更が伝搬する経路を決めるためのマークを前記計
    算モデルに付する手段と、 所定の規則を前記マークに適用して前記変化が伝搬する
    経路を決定し、前記関数値ノードの値を順方向に、前記
    伝搬制約セル・ノードの値を前記関係式の逆関係式で逆
    方向に、自動的に計算する再計算手段と、 前記再計算の実行結果を前記スプレッドシートに反映さ
    せる手段と を有する表計算処理装置。
  2. 【請求項2】前記所定の規則を前記マークに適用して前
    記変化が伝搬する経路を決定する際に前記経路が複数あ
    る場合、1の前記経路で前記再計算を実行し、 前記再計算が行われていない1又は複数の未実行経路の
    存在を表示する手段と、 前記未実行経路による再計算の要求を受け取る手段と、 前記要求に応答して、前記所定の規則を前記マークに適
    用して前記変化が伝搬する経路を再度決定し、前記関数
    値ノードの値を順方向に、前記伝搬制約セル・ノードの
    値を前記関係式の逆関係式で逆方向に、自動的に再計算
    する手段と、 前記要求に応答して再計算した実行結果を前記スプレッ
    ドシートに反映させる手段と をさらに有する請求項1記載の表計算処理装置。
  3. 【請求項3】前記再計算の実行結果を受け取るセルに関
    連する関係式及びその関係式の他のセルの値を用いて前
    記実行結果を受け取るセルが採るべき値を求め、この値
    と前記実行結果とを比較し、前記再計算の一貫性を判断
    できるようにした請求項1又は2記載の表計算処理装
    置。
JP63224449A 1988-09-09 1988-09-09 表計算処理装置 Expired - Lifetime JPH06101008B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63224449A JPH06101008B2 (ja) 1988-09-09 1988-09-09 表計算処理装置
EP19890309043 EP0358492A3 (en) 1988-09-09 1989-09-06 A spreadsheet system
US07/912,048 US5339410A (en) 1988-09-09 1992-07-09 Method of bidirectional recalculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63224449A JPH06101008B2 (ja) 1988-09-09 1988-09-09 表計算処理装置

Publications (2)

Publication Number Publication Date
JPH0273458A JPH0273458A (ja) 1990-03-13
JPH06101008B2 true JPH06101008B2 (ja) 1994-12-12

Family

ID=16813949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63224449A Expired - Lifetime JPH06101008B2 (ja) 1988-09-09 1988-09-09 表計算処理装置

Country Status (3)

Country Link
US (1) US5339410A (ja)
EP (1) EP0358492A3 (ja)
JP (1) JPH06101008B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1991007723A1 (en) * 1989-11-13 1991-05-30 Emtek Health Care Systems, Inc. Method for handling loops in calculation formulae
GB9009930D0 (en) * 1990-05-02 1990-06-27 Int Computers Ltd Electronic spreadsheet
JPH0482659A (ja) * 1990-07-20 1992-03-16 Internatl Business Mach Corp <Ibm> 生産計画修正方法および装置
JP2986247B2 (ja) * 1991-05-17 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション 数値的な計画問題の解決装置および方法
US5510980A (en) * 1991-11-27 1996-04-23 Microsoft Corporation Method and system for selecting and executing arithmetic functions and the like
US5416895A (en) * 1992-04-08 1995-05-16 Borland International, Inc. System and methods for improved spreadsheet interface with user-familiar objects
JPH0737008A (ja) * 1993-06-29 1995-02-07 Hitachi Ltd 表計算処理装置の表示制御方法
US5657437A (en) * 1993-12-10 1997-08-12 Lucent Technologies Inc. Data processing apparatus and method including proportional updating of data
US5893123A (en) * 1995-06-22 1999-04-06 Tuinenga; Paul W. System and method of integrating a spreadsheet and external program having output data calculated automatically in response to input data from the spreadsheet
US5819231A (en) * 1996-05-01 1998-10-06 Electronic Data Systems Corporation Compensation planning tool and method
US6292810B1 (en) 1997-03-03 2001-09-18 Richard Steele Richards Polymorphic enhanced modeling
EP1178414A1 (en) * 2000-08-01 2002-02-06 Sun Microsystems, Inc. Method and apparatus for inputting data into spreadsheet documents
US7640489B2 (en) * 2000-08-01 2009-12-29 Sun Microsystems, Inc. Methods and systems for inputting data into spreadsheet documents
EP1202206A3 (en) 2000-10-24 2004-01-21 International Business Machines Corporation Method and system in an electronic spreadsheet for persistently self-replicating multiple ranges of cells through a copy-paste operation
US6912690B2 (en) * 2000-10-24 2005-06-28 International Business Machines Corporation Method and system in an electronic spreadsheet for persistently copy-pasting a source range of cells onto one or more destination ranges of cells
EP1204048A1 (en) * 2000-11-03 2002-05-08 Sun Microsystems, Inc. Method and apparatus for handling scenarios in spreadsheet documents
EP1209607A3 (en) * 2000-11-28 2005-12-21 International Business Machines Corporation Method and system for filling a range of cells in an electronic spreadsheet by samples
US6779151B2 (en) * 2001-01-05 2004-08-17 Microsoft Corporation Storing objects in a spreadsheet
US7793210B2 (en) * 2001-01-30 2010-09-07 Oracle America, Inc. Method and apparatus for formula evaluation in spreadsheets on small devices
US7010779B2 (en) * 2001-08-16 2006-03-07 Knowledge Dynamics, Inc. Parser, code generator, and data calculation and transformation engine for spreadsheet calculations
US7062479B2 (en) 2001-11-02 2006-06-13 Cognos Incorporated Calculation engine for use in OLAP environments
EP1308852A1 (en) * 2001-11-02 2003-05-07 Cognos Incorporated A calculation engine for use in OLAP environments
US7937363B2 (en) 2001-11-02 2011-05-03 International Business Machines Corporation Calculation engine for use in OLAP environments
DK1685500T3 (da) * 2003-11-03 2009-05-04 Epista Software As En Elektronisk matematisk modelbygger
GB2433614A (en) * 2005-12-23 2007-06-27 Mark Martindale Data tracking system
US8635125B2 (en) * 2007-07-03 2014-01-21 Microsoft Corporation Automatic calculation with multiple editable fields
US10133719B2 (en) * 2007-09-28 2018-11-20 Microsoft Technology Licensing, Llc Spreadsheet workbook part libraries
US9552348B2 (en) * 2014-06-27 2017-01-24 Koustubh MOHARIR System and method for operating a computer application with spreadsheet functionality
US11449493B2 (en) * 2019-08-08 2022-09-20 Sap Se Persistent and configurable multidimensional data constraints
US11636254B2 (en) * 2021-02-05 2023-04-25 Microsoft Technology Licensing, Llc Provenance aware editing for spreadsheets

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4398249A (en) * 1970-08-12 1983-08-09 Pardo Rene K Process and apparatus for converting a source program into an object program
JPS6151267A (ja) * 1984-08-20 1986-03-13 Fujitsu Ltd 帳票データの演算方法
US5055998A (en) * 1984-12-10 1991-10-08 Wang Laboratories, Inc. Intermediate spreadsheet structure
US4989141A (en) * 1987-06-01 1991-01-29 Corporate Class Software Computer system for financial analyses and reporting
US4866634A (en) * 1987-08-10 1989-09-12 Syntelligence Data-driven, functional expert system shell

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理学会第36回(昭和63年前期)全国大会、特許庁資料館昭和63年4月4日受入,社団法人情報処理学会,P.1357〜1358

Also Published As

Publication number Publication date
EP0358492A2 (en) 1990-03-14
JPH0273458A (ja) 1990-03-13
EP0358492A3 (en) 1991-05-29
US5339410A (en) 1994-08-16

Similar Documents

Publication Publication Date Title
JPH06101008B2 (ja) 表計算処理装置
US5630069A (en) Method and apparatus for creating workflow maps of business processes
US4866634A (en) Data-driven, functional expert system shell
US8645249B2 (en) Systems, methods and computer program products for modeling uncertain future benefits
US5523942A (en) Design grid for inputting insurance and investment product information in a computer system
US5467462A (en) Event driven logic simulator for partial simulation
JP2004272919A (ja) タスク実行のためのプロセス構造を定義するシステムおよび方法
CA2065998A1 (en) System and method for solution of numerical planning problems
US8219607B2 (en) Collaborative planning actions and recipes
US7318200B2 (en) Master data framework
JP3726903B2 (ja) 情報処理システムおよび情報処理システムによる作業の流れ管理方法
US20050027504A1 (en) Job execution plan evaluation system
US6442572B2 (en) Method of and computer system for performing a transaction on a database
WO2000005658A1 (en) Method for providing bi-directional propagation among data within spreadsheets
CN109740131A (zh) 一种表单数据的处理方法及装置、终端设备及存储介质
Stavness et al. Supporting Flexible Business Processes with a Progression Model.
Thizy et al. Interactive multiple criteria optimization for capital budgeting in a canadian telecommunications company
Bock et al. A More Complete Model of Relations and Their Implementation–Part II: Mappings
JP2021039704A (ja) 遺言書模擬文書作成装置
Ene Implementation of a Port-graph Model for Finance
JP3123400B2 (ja) 資産修正履歴自動生成システム
Ene et al. A Graph Transformation Approach to the Modelling of Capital Markets
JP2902006B2 (ja) 情報提示装置
JPH0737151Y2 (ja) 小型電子式計算機
CN113688996A (zh) 一种量子门化简融合的前端回显方法及设备