対象
・Sheetモード
・Xrossモードの詳細シート(ピボットシートは対象外)
現金の出納管理のように入出金を登録した時に、前のレコードの残金と合計して現在の残金を登録したい場合は、OFFSET関数を使用します。
OFFSET関数は、指定したセルまたはセル範囲から指定された行数と列数だけシフトした位置にあるセル範囲の参照を返します。
[参考情報]OFFSET関数 - Microsoft
下記の入出金簿アプリでは、金額フィールドに入力された金額と、前のレコードの残金フィールドの金額の合計を、入力したレコードの残金フィールドに登録しています。
前のレコードの残金と金額の合計を求める数式は以下の通りです。残金は数式フィールドなので、OFFSET関数を使って金額フィールドからの相対位置で指定します。
OFFSET(金額,-1,1,1,1)+金額
ただし、krewSheetの数式フィールドは行全体に対して適用されるため、上記の数式をそのまま設定すると、1行目では、存在しない1行目の前のレコードを参照してしまい、数式エラーとなります。
そのため、1行目のみ金額フィールドの値をそのまま取得するようにIF関数で条件分岐を行います。
IF(ROW()=1,金額,OFFSET(金額,-1,1,1,1)+金額)
なお、OFFSET関数は常に画面上に表示されている見た目上のセル配置で値を取得するため、ソートやフィルタリングでレコードの並びが変化すると正しい結果が表示されなくなります。
また、OFFSET関数に限らず、他のレコードの値を参照する関数はページングに対応しておりません。
そのため、レコード件数が500件を超え2ページ目が表示される場合は、画面に表示されていないレコードは計算対象外となり、正しい結果が表示されない場合があります。
数式利用時の注意事項につきましては製品ヘルプをご確認ください。