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

表計算処理装置

Info

Publication number
JPH0273458A
JPH0273458A JP63224449A JP22444988A JPH0273458A JP H0273458 A JPH0273458 A JP H0273458A JP 63224449 A JP63224449 A JP 63224449A JP 22444988 A JP22444988 A JP 22444988A JP H0273458 A JPH0273458 A JP H0273458A
Authority
JP
Japan
Prior art keywords
cell
recalculation
value
relationship
arc
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.)
Granted
Application number
JP63224449A
Other languages
English (en)
Other versions
JPH06101008B2 (ja
Inventor
Naoki Kanai
直樹 金井
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.)
NIPPON I B M KK
IBM Japan Ltd
Original Assignee
NIPPON I B M KK
IBM Japan Ltd
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 NIPPON I B M KK, IBM Japan Ltd filed Critical NIPPON I B M KK
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明はスプレッド・シートに表示されたデータを処
理する表計算処理装置に関し、特に、双方向に再計算を
行えるようにしたものである。
B、従来の技術 従来、データを保持するためにセルを用意し、表を複数
のセルで構成し、セルの値を計算するための手順を記憶
しておき、セルの値がユーザによって変更された時に、
自動的にその他のセルの値を再計算する、表形式の簡易
言語プログラムが知られている。例えば、マイクロソフ
ト社のMultiplan (商標)やロータス・ディ
ベロップメント社のLotus 1−2−3 (商標)
が知られている。
ところで、これらの従来の製品には次のような不都合が
あった。これらの製品では、セルの値を計算するための
手順を関数式で表現している。ここで、関数式で値の決
定手順が記述されているセルを関数値セル、関数式中で
参照しているセルを変数値セルと呼ぶ事にする。第26
図に、関数式の定義例を示す。各セルの名前は、Lot
us 1−2−3で採用されているものである。各セル
の上段には、画面上に表示されているセルの値を示す。
下段には、セルに定義されている値、又は、関数式を示
す。この例では、関数値セルB1に関数式が定義されて
いる。ここで、変数値セルの値が変更きれた場合には、
関数式を再評価する事により関数値セルの値が自動的に
再計算される。例えば、第27図のように、変数値セル
AIの値が5、変数値セル^2の値が16に変更される
と、関数値セルB1の値が再計算され80になる。しか
し、関数値セルの値が変更されても、変数値セルの値を
再計算する事ができない。例えば、第28図のように関
数値セルB1の値を100に変更しても、変数値セルA
1、A2の値は再計算されず、そのかわり、定義されて
いた関数式A1*A2が削除され、値100がセルB1
に定義される。
つまり、従来の技術では、一方向のみの再計算しか許さ
れていない。
なお、関連する特許公報としては特開昭61−1383
69.61−138370.61−133371号公報
がある。しかし、これらは一般的な表計算処理を開示す
るのみで、双方向の再計算については何ら記載がない。
C9発明が解決しようとする問題点 この発明は以上の事情を考慮してなされたものであり、
変数値セルの値が変更された時には関数値セルの値を再
計算し、関数値セルの値が変更された時には変数値セル
のうちの一つのセルの値を再計算するという双方向の再
計算機能を持った表計算処理装置を提供する事を目的と
している。
D1問題点を解決するための手段 この発明では以上の目的を達成するために、セルの値を
計算する手順として、セル間に成り立つ関係式を扱い、
それをもとに計算モデルを生成するようにしている。そ
して、ユーザからの1以上のセルの値の変更指令が与え
られた時に、生成された計算モデルに、他のセルの値の
再計算の順序を決定するためのマーク付けを行ない、付
けられたマークを用いて再計算の順序を決定し、再計算
を実行するようにしている。
E、実施例 El、システムの概要 第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=r(XI、、、、、Xn) という形式で表現する。ただし、Y、Xl、、、、、X
oはセル名である。この時、Yは関数値セル、Xl(1
≦i≦n)は変数値セルである。
伝搬制約セルは、変数値セルのうちの一つであり、関数
値セルの値が変更された時に次に再計算すべきセルであ
る。この時、伝搬制約セルの値を求めるための逆関数が
、 Xk=f−’(Y、Xl、、、、Xh−+、Xk++、
、、、Xo)(X、:伝搬制約セル) のように、セル間に成り立つ関係式より作れなげればな
らない。
(2)計算モデルは、関係を表す関係ノード、セルを表
すセル・ノード、およびそれらのノードの間をリンクす
るアークよりなる。各関係ノードは、それぞれ固有の関
係名により識別される。関係ノードは、関係式をデータ
としてもつ。各セル・ノードは、それぞれ固有のセル名
により識別される。セル・ノードは、セルの値をデータ
として持つ。アークは、そのアークがリンクするセル・
ノードと関係ノードの対によって表現される。アークは
3種類に分類できる。まず第1は、関数値セルを表すセ
ル・ノードと関係ノードをリンクするアークであり、関
係ノードからセル・ノードへ向かう方向性を持つ。第2
は、変数値セルを表すセル・ノードと関係ノードをリン
クするアークであり、関係ノードからセル・ノードへ向
かう方向性を持つ。第3は、その他のセル・ノードと関
係ノードをリンクするアークであり、方向性はない。セ
ル・ノード、関係ノード、および、アークに関する情報
は、例えば、それぞれの持つ情報をテーブルに記録する
などの方法によって管理される。
計算モデルを図を用いて説明しよう。第2図は、セルY
Sx1、およびx2間に成り立つ関係fの計算モデルを
表している。五角形11は関係ノードである。四角形1
2.13.14はセル・ノードである。五角形の先端か
らの矢印で表されたアークは、関数値セルを表すセルΦ
ノードと関係ノードをリンクするアークであり、矢印の
方向がアークの方向を表す。第2図では、アーク15が
この様なアークに対応し、セル・ノードY (Yは関数
値セルである)にリンクされている。五角形の底辺から
の矢印で表されたアークは伝搬制約セルを表すセル・ノ
ードと関係ノードをリンクするアークであり、矢印の方
向がアークの方向を表す。第2図では、アーク16がこ
の様なアークに対応し、セル・ノードX1(XIは伝搬
制約セルである)にリンクされている。五角形の底辺か
らのその他のアークは、伝搬制約セルではない変数値セ
ルを表すセル・ノードと関係ノードをリンクするアーク
である。第2図では、アーク17がこの様なアークに対
応し、セル・ノードX2 (X2は変数値セルであり、
かつ、伝搬制約セルではない)にリンクされている。
この計算モデル上で再計算は以下の規則にしたがって行
なわれる。
まず第一に、一つの関係に注目した場合、変数値セルの
値が変更され、かつ、関数値セルの値が変更されていな
い場合、関数値セルの値が再計算される。第3図は関係
fにおける再計算の例を示す。この例では、変数値セル
×2の値が変更され、かつ、関数値セルYの値が変更さ
れていないため、Yの値が再計算される。
第二に、一つの関係に注目した場合、関数値セルの値が
変更きれ、かつ、伝搬制約セル値が変更されていない場
合、伝搬制約セルの値が再計算される。第4図は、関係
fにおける再計算の例を示す。この例では、関数値セル
Yの値が変更きれ、かつ、伝搬制約セル×1の値が変更
されていないため、Xlの値が再計算きれる。
R3,再計算実行部3 再計算実行部3は、ユーザによるセルの値の変更指令に
したがって、該当するセルの値を変更し、次にその他の
セルの値を計算モデルを用いて再計算する。
ただし、各関係において、再計算を実行する場合には、
他の関係により再計算される可能性があるセルが全て実
際に再計算された後に実行される。例えば、第5図のよ
うにセルA1の値が変更きれた場合、関係R1およびR
2によりセルB1と82の値の再計算が実行された後に
、関係R3によりセルC1の値が再計算される。
ざらに、再計算実行部3は、双方向の再計算を許容した
ために発生した二つの問題に以下のように対処する。
第一の問題は、再計算の過程で発生するループである。
第6図は、ループ発生の様子を示している。第6図にお
いてセルXの値が変更されているため、関係R1におけ
る再計算を実行すると関係R1の関数値セルYの値が再
計算され、その結果、関係R2における再計算を実行し
ようとしても関係R2の関数値セルYおよび制約伝搬セ
ルXの双方の値がすでに変更されているため、R2で述
べた再計算の規則を用いる事ができない。このような場
合に対処するため、再計算実行部は、関数値セルと制約
伝搬セルの双方の値が変更されている時には、関係式が
満たされているか否かを評価し、関係式が満たされてい
ない場合にはその事実をユーザに知らせる。
第二の問題は、再計算をどの関係から実行するかで、再
計算の方法が変わるという問題である。
例えば、第7図においては、セルA1とA2の値が変更
されているため、関係R1における再計算を先に実行す
ると、第7図(b)のように関係R1の関数値セルYの
値が関係R1の関係式を用いて再計算され、その結果、
関係R2により関係R2の伝搬制約セル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−ce
ll Input arc、および、0utput a
rcの3[類がある。
マークM−ce l 1は、セルの値が変更されたか否
かを判断するために用いられる。マークInput a
rcは、その関係における再計算以外の原因で値が変更
される可能性があるセルを識別するために用いられる。
マーク0utput arcは、その関係における再計
算によって値が変更される可能性があるセルを識別する
ために用いられる。
表1 前処理部6では、ユーザによる変更指令が入力された場
合、まず、計算モデル上の全てのマーク(M−cell
、Input arc、 0utput arc)を消
去し、次に、ユーザによる変更指令の対象であるセル・
ノードの値をユーザが指定した値に変更するとともに、
そのノードにM−ce l lのマークを付ける。
又、バックトラック制御部9に初期化指令を送る。次に
、マーク付けの条件を満たした全てのアークにInpu
t arc、および、0utput arcのマークを
付ける。
第8図は、関係Y冨f (Xi、X2)に付けられたマ
ークの例を示す。ただし、伝搬制約セルは×1であると
する。ここで、セルx2がユーザにより変更指令を受け
たセルであるとすると、セル・ノードX2にH−ce 
11のマークが付けられる。
又、セル・ノードx2と関係ノードfをつなぐアーク2
1にInput arc24のマークが付けられる。こ
の時、x2の値が変更されたとするとX2は変数値セル
であるため、再計算すべきセルは関数値セルYであるの
で、関係ノードfとセル・ノードYをつなぐアーク22
に0utpu−t arc25のマークが付けられる。
第9図は、第8図の計算モデルに、ざらに、セル・ノー
ドYが他の関係における0utput arcのマーク
の付いたアークに接続している場合のマーク付けの様子
を示す。この場合、セル・ノードYと関係ノードfの間
のアーク22にInput arc 26のマークが付
けられる。そして、Yの値が変更されたとすると、再計
算すべきセルは伝搬制約セルX1になるので、関係ノー
ドfとセル・ノードx1の間のアーク23に0utpu
t arc27のマークが付けられる。
なお、以後、Input arcの始点であるセル・ノ
ードをその関係におけるT−cells 0utput
 arcの終点であるセル・ノードをその関係における
C−ce l 1と呼ぶ事にする。
計算順序決定部7 計算順序決定部7は、前処理部6により付けられたマー
クを用いて再計算するセルの順序を決定する。再計算す
るセルの順序は、例えば、第10図に示された方法を用
いて決定される。この方法では、7つの規則が用いられ
る。以下、それぞれの規則の詳細について述べる。
規則1の条件、および、アクションを表2に示す。規則
1は、すでに値が変更されたセルは、以後の再計算の対
象とはなりえないため、M−cellのマークの付けら
れたセル・ノードとリンクしたアークから0utput
 arcのマークを削除するために用いられる。第11
図に規則1の実行例を示す。
この例では、セル・ノードYにM−cellのマークが
付けられているので、関係ノードfとセル・ノードYを
リンクするアーク31から0utput arc32の
マークが削除される。
表2 (規則名) 規則1 (条件) M−ce l lのマークが付けられたセル・ノードに
接続するアークに0utput arcのマークが付け
られている場合、 (アクション) それらの0utput arcのマークを削除する。
規則2の条件、および、アクションを表3に示す。規則
2は、一つの関係における再計算の対象となる可能性が
あるセルが一つしかない場合に、そのセルを再計算の対
象として確定するために用いられる。第12図に規則2
の実行例を示す。この例では、0utput arcは
0utput arc 41のみが存在し、0utpu
t arc41のマークの付けられたアーク42には1
nputarc43のマークが付けられているため、I
nput arc43のマークが削除される。
表3 (規則名) 規則2 (条件) 一つの関係ノードに接続しているアークの中に、0ut
put arcとInput arcの両者のマークが
付けられたものがあり、かつ、他に0utput ar
cのマーク付けのされたアークが、その関係ノードに接
続されていない場合、 (アクション) Output arcとInput arc両者のマー
クの付いたアークから、Input arcのマークを
削除する。
規則3の条件、および、アクションを表4に示す。規則
3は、他の関係によって変更きれる可能性があるセル全
てが実際に変更されている場合に、その関係における再
計算を実行するために用いられる。第13図に規則3の
実行例を示す。この例にわげるT−cellはxlとX
2であり、かつ、それらにM−ce l 1のマークが
付けられているため、0utput arc F51の
向かうセル・ノードYの値を再計算する。そして、Yに
M−cellのマークが付けられ、全てのアークに付け
られたマークが削除される。
表4 (規則名) 規則3 (条件) 一つの関係における全てのT−ce l lにM−ce
 l lのマークが付けられていて、かつ、0utpu
t arcのマークの付いたアークがその関係ノードに
接続されている場合、 (アクション) Output arcの向かうセル・ノードの持つ値の
再計算を、その間係ノードが持つ関係式を用いて実行す
るように評価計算部8に指令し、 その間係ノードに接続されたアークにつけられた全ての
マーク(Input arcと0utput arc)
を削除し、 値が再計算されたセル・ノードに M−ca I 1のマークを付ける。
規則4の条件、および、アクションを表5に示す。規則
4は、他の関係によって変更きれる可能性があるセル全
てが実際に変更され、かつ、再計算の対象となるセルが
存在しない場合に用いられる。第14図に規則4の実行
例を示す。この例におけるT−cellはYとxlであ
り、かつ、それらにH−cellのマークが付けられて
いる。又、関係ノードに接続しているアークに、0ut
put arcのマーク付けがされたアークが存在せず
、Input arcのマーク付けされたアークが存在
するため、規則4が適用きれチエツクが行なわれる。そ
してアークに付けられた全てのマークが削除される。
表5 (規則名) 規則4 (条件) 一つの関係における全てのT−ce l lにM−ce
llのマークが付けられていて、かつ、その関係ノード
に接続しているアークに0utput arcのマーク
付けされたものが存在せず、かつ、 その関係ノードに接続しているアークにInput a
rcのマーク付けされたものが存在する場合、 (アクション) その関係が満たされているか否かの評価を実行するよう
に評価計算部8に指令し、その関係ノードに接続された
アークにつけられた全てのマーク(Input arc
)を削除す規則5の条件、および、アクションを表6に
示す。規則5は、ループに対処するために用いられる。
第15図に、規則5の実行例を示す。この例では関係ノ
ードfにリンクしたアークに付けられた0utput 
arcは、0utput arc 61だけであり、力
)つ、セル・ノードX1にM−cellのマークが付け
られているため、セル・ノードYの値が再計算され、0
utput arc 1のマークが削除きれる。
第16図に規則5を用いてループに対処する例を示す。
この例では、ループが発生しており、セル・ノードYの
値を再計算しないかぎり、セル・ノードX2の値が再計
算きれる事はない。この時、関係R1に規則5を適用す
る事により、Yの値が再計算され、関係R2に規則3が
適用できるようになり、その結果、x2の値が再計算さ
れる。その後、関係R1に規則4が適用されR1が満た
されているかどうかの評価が行なわれる。
表6 (規則名) 規則5 (条件) 一つの関係ノードに接続しているアークに、0utpu
t arcのマークが付けられたものがただ一つあり、
かつ、 その関係におけるT−ce l lの中に、M−cel
lのマークが付けられているセル・ノードが存在する場
合、 (アクション) Output arcの向かうセル・ノードが持つ値の
再計算を、その関係ノードが持つ関係式を用いて実行す
るように評価計算部8に指令し、 そのセル・ノードにM−cellのマークを付け、 その0utput arcのマークを削除する。
規則60条件、および、アクションを表7に示す。規則
6は、どの関係から規則を適用するかで再計算するセル
が変化する場合に用いられる。第17図に、規則6の実
行例を示す。この例では関係ノードfに接続しているア
ークに付けられた0utput arcは、0utpu
t arc 71と0utput arc 72の二つ
があり、かつ、アーク73にはInput arc74
が付けられており、かつ、セル・ノードX2にM−ce
llのマークが付けられている。ここで、バックトラッ
ク制御部9が規則6を関係fに適用する事を許可したと
すると、セル・ノードx1にM−as l lのマーク
が付けられ、0utpl arc 72が削除される。
どの関係から規則を適用するかで再計算するセルが変化
する場合、強制的にいづれかの関係においてセルの値の
再計算を実行しないかぎり、それ以上再計算が続行しな
い。例えば、第18図の場合、強制的に関係R1かR2
において再計算を実行しないかぎり再計算が続行で沙な
い。ここで第18図(a)のようにR1に規則6を適用
する事により、それ以降、図のように規則が適用でき、
その結果、R1によりYの値が再計算され、R2により
B2の値が再計算される。その後、バックトラックによ
りR1に規則6が適用される前の状態に戻きれた時には
、第18図(b)のようにR2に規則6を適用する事に
より、R2によりYの値が再計算され、R1によりB1
の値が再計算される。
表7 (規則名) 規則6 (条件) 一つの関係ノードに接続しているアークに、0utpu
t arcのマークが付けられたものが二つあり、かつ
、 そのうちの一つにInput arcのマークが付けら
れおり、かつ、 その関係におけるT−ce、11の中にM−cellの
マークが付けられているセル・ノードがあり、かつ、 バックトラック制御部9が、規則6をその関係に適用す
る事を許可した場合、 (アクション) バックトラック制御部9に対し、規則6をその関係に適
用した事を通知し、 0utput arcのみがマーク付けきれたアークと
接続したセル・ノードにM−cellのマークを付け、 そのアークから0utput arcのマークを削規則
7の条件、および、アクションを表8に示す。規則7は
、どの関係から規則を適用するかで再計算するセルが変
化し、かつ、ループが発生する場合に用いられる。第1
9図に規則7の実行例を示す。この例では、関係ノード
fに接続したアーク81とアーク82の双方が、0ut
put arcとInput arcのマークが付けら
れており、かつ、セル・ノードx2にM−ce l l
のマークが付けられている。ここで、バックトラック制
御部9が規則7を関係fに適用する事を許可したとする
と、 0utputarc83が削除される。
第20図では、どの関係から規則を適用するかで再計算
するセルが変化し、かつ、ループが発生している。この
時、関係R1に規則7を適用する事により、それ以降、
第20図のように規則が適用でき、その結果、R1によ
りYの値が再計算され、R2によりA2の値が再計算さ
れ、その後、R1が成り立つかどうかがチエツクされる
。バックトラックによりR1に規則7が適用される前の
状態に戻された時には、R2に規則7を適用する事によ
り、R2によりYの値が再計算され、R1によりA2の
値が再計算され、R2が成り立つかどうかがチエツクさ
れるが、その例は第20図では省略する。
表8 (規則名) 規則7 (条件) 一つの関係ノードに接続しているアークに、 0utp
ut arcとInput arcの両者のマークが付
けられたものが二つあり、かつ、その関係におけるT−
ce l Iの中にM−cellのマークが付けられて
いるセル拳ノードがあり、かつ、 バックトラック制御機構が、規則7をその関係に適用す
る事を許可した場合、 (アクション) バックトラック#御機構に対し、規則7をその関係に適
用した事を通知し、 伝搬制約セルを表すセル・ノードと関係ノードを結ぶア
ークから0utput areのマークを削除する。
評価計算部8 評価計算部8は、計算順序決定部7からの再計算指令お
よび評価指令に対し、セルの値の再計算および関係が満
たされているか否かの評価を行う。
セルの値の再計算は、次のように行なわれる。
再計算すべきセルが関数値セルである場合、関係式の右
辺を評価し、その値を関数値セルの値として設定する。
再計算すべ沙セルが伝搬制約セルである場合、伝搬制約
セルの値を求める逆関数を、関係式より生成し、その式
を評価し、求められた値を伝搬制約セルの値として設定
する。
関係が満たされでいるか否かの評価は、関係式の右辺を
評価した値と、関数値セルの値を比較する事により実行
される。二つの値が等しくない時には、その旨ユーザに
警告する。
バックトラックII制御部9 再計算をどの関係から実行するかで、再計算すべきセル
が変わるという現象は、再計算実行時にば、規則6及び
規則7を適用可能な関係が複数ある時に発生する。故に
、バックトラックIli#li部9は、これらの規則が
関係に適用きれる時に、その時の計算モデルの状態(各
セルの値、マーク付けの状態)を記録し、後にバックト
ラックが起動された時に、状態を記録された状態に戻す
必要がある。
又、バックトラック制御部9は、それらの規則を同じ計
算モデルの状態において同じ関係に二回以上適用しない
ように制御する必要もある。
バックトラック#蓼部9は、以下の機能を有する。
第一の機能は、規則6及び7が実行された事を通知され
た場合、その時の計算モデルの状態をバックトラックの
ために記録し、そして、その計算モデルの状態において
、どの関係にどの規則が適用されたかを記録する(この
記録をその計算モデルの状態における規則の適用記録と
呼ぶ)機能である。
第二の機能は、規則6をある関係に適用しても良いかを
判断する機能である。その時の計算モデルの状態におけ
る規則の適用記録を調べ、規則6をある関係に対し適用
した事がない場合には、その関係への規則6の適用を許
可する。それ以外の場合には、適用を許可しない。この
機能は、規則6を同一の計算モデルの状態において同じ
関係に二回以上適用しないために用いられる。
第三の機能は、規則7をある関係に適用しても良いかを
判断する機能である。その時の計算モデルの状態におけ
る規則の適用記録を調べ、規則7をある関係に対し適用
した事がなく、かつ、その計算モデルの状態において規
則6が用いられたことがない場合には、その関係への規
則7の適用を許可する。それ以外の場合には、適用を許
可しない。この機能は、二つの理由のために用いられる
。その一つは、規則7を同じ計算モデルの状態において
同じ関係に二回以上適用しないためである。もう一つは
、規則6が規則7より優先順位が高いため、ある計算モ
デルの状態における規則6の適用記録がある場合に、規
則7を用いることを禁止するためである。ざらに詳しく
述べると、以下のようになる。まず、ある計算モデルの
状態において、規則6を適用可能な関係がNHあり、規
則7を適用可能な関係が存在したとしよう。この時、優
先順位を考慮すると先に規則6が適用される。そして、
規則6を適用可能な関係がN個ある事から、バックトラ
ックがN回あった後には、規則7が適用可能になってし
まう。ここで規則7を適用すると、その計算モデルの状
態において規則6が適用可能でありなにもかかわらず、
優先順位の低い規則7を適用する事になる。故に、この
場合には、規則7の適用を禁止しなければならない。
第四の機能は、バックトラックを実行する機能である。
バックトラックの実行を命じられた時に、バックトラッ
ク制御部9は、以下の処理を行う。
(1)  一番最近記1i!′:6れな計算モデルの状
態に、実際の計算モデルの状態を戻し、(2)を実行す
る。計算モデル状態の記録がない場合、バックトラック
を終了する。
(2)  a用可能な規則がある場合には、再計算の実
行を行う。適用可能な規則がない場合には、その時の計
算モデルの状態における規則の適用記録を全て削除し、
(1)で用いられた計算モデルの状態の記録を削除する
。その後、(1)を実行する。
第五の機能は、初期化の機能であり、全ての計算モデル
の状態の記録と規則の適用記録を削除する。
E4.実施例の作業例 以下に、ローンの返済金を計算する例を用いて、本発明
を用いたスプレッド・シートに於ける作業例を説明する
ローンを返済する計画を立てる時、考慮しなけしLfな
らないことに、毎月分返済する額とボーナス分で返済す
る額をどのように分配するかという問題がある。この問
題は、本発明による双方向再計算機能を用いる事により
容易に対処できる。第21図にわいて、セルB2は、毎
月返済する分として借り入れる額、セルB3は、ボーナ
スで返済する分として借り入れる額である。セルB4は
、借り入れた総合計を表す。セルC2とc3は、それぞ
れ借入金−万円当りの一回当りの返済額であるとする。
そして、セルD2が毎月の返済額、セルD3が毎ボーナ
スの返済額である。また、それらのセルの間に、第21
図中の三つの関係が定義きれていたとする。
ここで、借入金として3000万円が必要であるとしよ
う。そのため、セルB4にその数値を入力すると、第2
2図のように、まず関係(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に
5ooooooを入力すればよい。この結果、第25図
のように、まず関係(1)に従ってセルB2が再計算さ
れるとともに、関係(3)に従ってセルD3が再計算さ
れる。次に、関係(2)に従ってセルD2が再計算され
る。そして、この場合、毎月13万2千円、毎ボーナス
で40万円返済すればよい事が判る。
以上で実施例の説明を終わる。
F9発明の効果 本発明により、スプレッド・シートに双方向再計算機能
を導入する事により、ユーザに対しより強力な機能を提
供する事がで伊る。その特長は、どのセルの値でも直接
ユーザが変更する事かでき、かつ、他のセルの値が自動
的に再計算される事である。この結果、スプレッド・シ
ートを用いたユーザの作業がより容易に、又、より円滑
になる。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すブロック図、第2図
、第3図および第4図は上記実施例で中合図は上記実施
例の再計算実行部3の動作およ第25図は上記実施例を
用いた作業例を説明する図、第26図、第27図および
第28図は従来例を説明する図である。 1・・入力装置、2・・計算モデル生成部、3・再計算
実行部、 表示制御部、 RT。 ・前処理部、 ・計算順序決定部、 評価計算部、 ・バック トラック制御 部。 出 願 人 インターナショナル◆ビジネス マシーンズ・コーポレーション 復代理人

Claims (3)

    【特許請求の範囲】
  1. (1)スプレッドシートを表示する表示手段、スプレッ
    ドシートの複数のセルの間の関係およびセル値を入力す
    る手段、 入力された関係に対応する関係ノード、上記関係が成立
    するセルに対応するセル・ノード、上記関係ノードおよ
    び上記セル・ノードを連結するアークならびに上記セル
    値の入力に応じた変更が上記アーク上を伝搬する方向を
    記述する記述子からなる計算モデルを確立する手段と、 上記セル値の入力に応じた変更が伝搬する1または複数
    の経路をすべて上記計算モデルにマークする手段と、 所定の規則にしたがって上記経路の1つを決定する手段
    と、 上記決定された経路にしたがって上記入力セル値に応じ
    た再計算を実行する手段と、 上記再計算の実行結果を上記スプレッドシートに反映さ
    せる手段とを有することを特徴とする表計算処理装置。
  2. (2)スプレッドシートの複数のセルの間の関係および
    セル値を入力する手段と、 入力された関係に対応する関係ノード、上記関係が成立
    するセルに対応するセル・ノード、上記関係ノードおよ
    び上記セル・ノードを連結するアークならびに上記セル
    値の入力に応じた変更が上記アーク上を伝搬する方向を
    記述する記述子からなる計算モデルを確立する手段と、 上記セル値の入力に応じた変更が伝搬する1または複数
    の経路をすべて上記計算モデルにマークする手段と、 所定の規則にしたがって上記経路の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 true JPH0273458A (ja) 1990-03-13
JPH06101008B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440681A (en) * 1990-07-20 1995-08-08 International Business Machines Corporation Method and apparatus for display and interactive modification of the tasks in a production plan
US5553212A (en) * 1991-05-17 1996-09-03 International Business Machines Corporation Method and apparatus for solving numerical planning problems with inequalities on a computer system

Families Citing this family (28)

* 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
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
US7937363B2 (en) 2001-11-02 2011-05-03 International Business Machines Corporation 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
DE602004019242D1 (de) * 2003-11-03 2009-03-12 Epista Software As Elektronischer mathematischer modellbauer
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6151267A (ja) * 1984-08-20 1986-03-13 Fujitsu Ltd 帳票データの演算方法

Family Cites Families (4)

* 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
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6151267A (ja) * 1984-08-20 1986-03-13 Fujitsu Ltd 帳票データの演算方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440681A (en) * 1990-07-20 1995-08-08 International Business Machines Corporation Method and apparatus for display and interactive modification of the tasks in a production plan
US5553212A (en) * 1991-05-17 1996-09-03 International Business Machines Corporation Method and apparatus for solving numerical planning problems with inequalities on a computer system

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0273458A (ja) 表計算処理装置
US5657437A (en) Data processing apparatus and method including proportional updating of data
EP1046123B1 (en) Modeling system having constraint solvers
JP2827458B2 (ja) 推論処理方法
CN100533375C (zh) 自动布置方法和自动布置装置
JPH03204687A (ja) プレゼンテーション装置
Tamassia Strategic directions in computational geometry
JPH10177596A (ja) 製品開発プロジェクト管理システムおよび方法
JP2005115498A (ja) ソフトウェア開発前処理方法、ソフトウェア制御方法、ソフトウェア開発方法並びにソフトウェア開発装置
JP2793357B2 (ja) 並列演算装置
Martinsson Maturing XP through the CMM
JPH08292884A (ja) リポジトリ装置
Vrakas et al. A visualization environment for planning
WO2019234839A1 (ja) 影響度計算装置および影響度計算方法
Pfeiffer et al. The Conceptual Programming Environment, CP: Reasoning Representation using Graph Structures and Operations.
JP3057797B2 (ja) ファジィ演算装置
JP2537949B2 (ja) ネットワ―ク表示処理方式
JPH04320530A (ja) ハイパーテキスト装置
Poels et al. Complexity metrics for formally specified business requirements
JP3488581B2 (ja) ネットワークコンピュータシステム構築支援装置および支援方法
JP2845519B2 (ja) データパスシミュレーション装置
JPH0721013A (ja) システム生成方式
Thompson et al. Utilization of a CRT display light pen in the design of feedback control systems
JPH0488834A (ja) 配電系統の負荷融通形態決定方法
JPH05342247A (ja) 非線形不等式推論方法