=Sheet1!RC*1.1という計算式による不都合の解決
最初に次のような消費税抜きの金額表を作成したとします。
次に税込みの表を作成するために、この表を別のワークシート「Sheet2」にコピーして、各セルに
=Sheet1!RC*1.1
という計算式を入力します。(R1C1参照形式で書いています)
すると次のような結果になり、
- 参照元のセルに文字列が入っていた場合は「#VALUE!」が表示される
- 参照元のセルが空白セルであった場合には0が表示される
- 参照元のセルの「数量」も1.1倍されてしまう
ということから、セルごとに計算式を「=Sheet1!RC」に修正したり、削除したりしなければならなくなり面倒です。
次のような数式を考えました。
=IF(ISNUMBER(Sheet1!RC),Sheet1!RC*1.1,Sheet1!RC&””)
これにより、
- Sheet1のセルに入っているデータが数値であれば1.1倍する
- データが文字列であれば同じ文字列を表示する
- データが空白であれば空白を表示する
ことができます。
数量を1.1倍させない方法ですがSheet1で数量を入力するときに「6」ではなくて「’6」のように頭に「’」を付けて文字列として入力すれば良いです。
- 文字列で入力しても、Sheet1において「料金×数量」を計算できます。
- また、文字列なので上記の計算式を適用しても1.1倍されません。
サンプルのExcelのファイル
Sheet1の内容をSheet2にコピーして、Sheet2の各セルに計算式を入力するExcelのマクロを作成しましたのでサンプルのファイルを添付します。
Sheet3は計算式を「=Sheet1!RC*1.1」にした場合の見本です。