ブログランキング・にほんブログ村へ 欲しい情報やレビューもたくさん!
ワクワクが見つかるブログポータルサイト。
-------- --:-- | カテゴリ:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサーサイト

ボート免許証の各種手続代行|ゆめのしまボートライセンス ボート免許証の更新・失効手続なら - www.yumenoshima-maritime.jp

免許講習の予約から免許証お渡しまで一貫してお引き受け。更新8000円・失効13000円


  ブログランキング・にほんブログ村へ 欲しい情報やレビューもたくさん!
ワクワクが見つかるブログポータルサイト。
2010-12-10 19:55 | カテゴリ:後悔日誌
ひーひー言いながら、どうにか新しい請求書と領収書のフォームが出来上がりました。

エクセルにしろアクセスにしろ、今回もと言うか、毎回毎回泣かされるのが関数の使い方。
新しいフォームでは、請求書側にあるデータを領収書側から参照して計算させていくんですけれど、一番ネックになったのが消費税の計算。

海事代理士の請求金額には、消費税の入るものと入らないものとが混在しています。
なので一覧表となっている金額から、消費税がかかる分だけを抜き出して合算し、税率をかけてはじき出してやらなければなりません。
手計算でやれば良いんでしょうけれど、手間がかかってしまいますし、つまんない請求ミスなどを防ぐためにも、何とか自動化したい部分なんです。

今回は金額の左側に、税別か税込かを記載するセルを用意して、その隣にある金額を抜き出すかどうかの関数を設定することにしました。

  A   B     C   D
1|…|税別| 2500 |…|
2|…|   | 2500 |…|

例えば一覧表が上記のようになっていたとして、B列のセルに税別と入っていたら、右隣の2500と言う数値をピックアップする、と言う関数を考えるわけです。
税込の場合は目視での確認を容易にするためにも、フレーズの似ている税込とは入れず、あえて空欄としてしまいます。

まーこれが悪かったんですけれども。

人間には同じ空欄に見えるものでも、エクセルの場合

1.全くの未入力状態
2.計算などの結果、文字などか格納されていない状態(いわゆる"")
3.半角スペースが格納されている状態(いわゆる" ")
4.全角スペースが格納されている状態(いわゆる" ")

では、それぞれ意味の違う、独立したデータとして扱われます。

データの入力は請求書にしていくんですけれど、そのときに税別のセルが1.の未入力であったとしても、領収書がそこを参照してしまうと、計算などの結果と判定されてしまい、領収書上では2.の無格納の状態になってしまいます。

ここで安易に「もしB列が未入力状態なら、隣の数字を抜き取れ。そうでなければ0を返せ。」と言う関数を作ってしまうと、エクセルは請求書では2500を、領収書では0を返してきてしまいます。
こうなると課税対象額はもとより、消費税額まで狂ってきてしまうハメになるんですね。

また税込であるにも関わらず、誤って税別を書いてしまったものを修正する際、正確に削除をして未入力状態にできるのなら良いんですけれど、なにぶん人が触る部分ですから、半角ないし全角スペースを入力して3.や4.の状態にしてしまうことも想定できます。
見た目は未入力状態でも、データがしっかり入った状態になるので、上と同じような狂いが出てきてしまいます。

なので、セルが空欄かどうかで税別かどうかを判断させるのは難しいんです。

だからと言って、税別と入っているかどうかで判断をさせようとなると、これまた人の触る部分だけに、誤入力もありえます。
税別、税べつ、性別、北別府・・・と、さまざまな誤入力も想定できますから、誤入力を許容できるようにすることを考えると、セルに文字が入っているかどうかで税別かどうかを判断させるのも難しくなってしまいます。

もうね、こんなのばっかですよ。
僕がぶつかっている壁と言うのは。
苛立たしいったらありゃしないです。

赤のマルボロをひと箱、真っ白に燃え尽きさせて考えた結果、特定のセルに格納されているデータから、

1.全角・半角を問わずスペースと言うデータを削除し(TRIM関数)、
2.結果として残ったセル内の文字数を調べ(LEN関数)、
3.0文字(=未入力または無格納)で無い時に限り、隣にあるセルのデータをピックアップする(IF関数)

ことで解決してみました。
具体的には

   A          B         C    D
1|…|税別(性別・北別府・etc)| 2500 |…|
2|…|(未入力・""・" "・" ")  | 2500 |…|

=IF(LEN(TRIM(B1))>0,C1,0)
結果:2500

=IF(LEN(TRIM(B2))>0,C2,0)
結果:0

となります。

これでピックアップした金額だけを合算すると課税対象額となるので、ここに0.05を掛けてROUND関数で丸めれば、消費税額をはじき出せます。
また請求書側のデータを参照することによって、データが変わってしまうことがある領収書側でも、この関数を組んでやれば、請求書と領収書で計算ズレを起こさなくもなります。

はー、今日もどうでも良いことでえらく疲れました。
ひとまずお風呂に入ってきます・・・。
関連記事
スポンサーサイト
スポンサーサイト

ボート免許証の各種手続代行|ゆめのしまボートライセンス ボート免許証の更新・失効手続なら - www.yumenoshima-maritime.jp

免許講習の予約から免許証お渡しまで一貫してお引き受け。更新8000円・失効13000円



秘密

トラックバックURL
→http://yumenoshimamaritime.blog108.fc2.com/tb.php/299-6ade6193
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。