- ベストアンサー
OpenOfficeの表計算ソフトで
OpenOfficeの表計算ソフトで確定申告の計算できるようにしようとおもったのですが数字があいません J6の欄に収入金額の給与を入れて 次の欄に所得金額の給与が計算されるように下記のようなIF関数を使ったのですがうまくいきません =IF(J6<650999;0;IF(651000<J6<1618999;J6-650000;IF(1619000<J6<1619999;969000;IF(1620000<J6<1621999;970000;IF(1622000<J6<1623999;972000;IF(1624000<J6<1627999;974000;IF(1628000<J6<1799999;J6/4*2.4;IF(1800000<J6<3599999;J6/4*2.8-180000;IF(3600000<J6<6599999;J6/4*3.2-540000;IF(6600000<J6<9999999;J6*0.9-1200000;IF(10000000<J6;J6*0.95-1700000))))))))))) 式が間違ってるのでしょうか?それともこういうのを求める場合は違う関数を使うのでしょうか?パソコンにはあまり詳しくなくいろいろ調べながら書いたのですが… 間違ってる場所の指摘か違う書き方などあれば教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセルと互換があると想定していますのでご確認下さい。 エラー原因は、IF関数のネスト数オーバ(エクセルでは8コ超)だと思います。 この様なケースは、検索関数(エクセルではVLOOKUP関数等)にて所得金額リストを作成して抽出する方法が一般的です。
その他の回答 (2)
- jo-zen
- ベストアンサー率42% (848/1995)
IF文のネスト(入れ子構造)が多すぎる可能性が高いです。 例えば、A2セルに収入金額を入れたら、B2セルに所得金額が表示されるようにしたいなら、 A4セルからA14セルに順番に、 0 65100 1619000 1620000 1622000 1624000 1628000 1800000 3600000 6600000 10000000 B4セルからB14セルに順番に 0 =B1-650000 969000 970000 972000 974000 =B1/4*2.4 =B1/4*2.8-180000 =B1/4*3.2-540000 =B1*0.9-1200000 =B1*0.95-1700000 と入力して一覧表をまず作りましょう。 そうして、B2セルに =INDEX(B4:B14;MATCH(B1;A4:A14;1)) という式を入れてあげれば正しい数字を導けるかと思います。 Excelをベースとして考えた(カンマをセミコロンに変えただけ)ので関数の構造がCalcと微妙に違う可能性はありますが、検証しておりませんので悪しからず。
お礼
質問を締め切って回答されてることに気づきました(汗) 一度試してみます。 回答ありがとうございました。
- kadakun1
- ベストアンサー率25% (1507/5848)
確かIFの条件は最大7つまでではないでしょうか? IFが多すぎますねw 何をやりたいのかよくわからないので(式だけでは)あらためてやりたいことを質問してみては?
お礼
回答ありがとうございました。
お礼
回答ありがとうございました。