Excel関数の世界へようこそ

このブログは私が在職中に業務の改善で考えたExcel関数を思い出しながら解説するブログです。マイペースでぼちぼちやります。市販の解説本やヘルプには載っていないテクニックも使用します。狭くて深い領域で、一部の人しか参考にならないかもしれませんが、他に応用できる事もあると思います。

一度投稿した記事は、後で誤りを訂正したり、分かりやすく直す事があるかもしれません。

<このプログの関数で出来る事>
・Excel関数で減価償却費をリアルタイムに高速計算する
 現有固定資産データから今後の減価償却費と簿価を計算
 設備投資予算から今後の減価償却費と簿価を計算
 

・減価償却費を減らす為の不要となったサービス用固定資産判定

上記2項をマスターすると、将来の減価償却費と廃却による特別損失のシュミレーションが出来ます。

ご意見、ご希望をお寄せ下さい。メールはelpinojp-bg()yahoo.co.jp宛に、()を@に変更してお送り下さい。

2012年12月3日月曜日

便利な検索1:複数列をまとめて検索

 今回は、どこの列に居るか分からないデータを検索する方法です。
 そして次回は、この方法を応用して、二つのワークシートを比較し変更されたセルを見つける方法に挑戦する予定です。 
 
 まずサンプルのワークシート画像を下に添付します。これは名前を間違い易い花のデータをまとめて、画像判定に利用しているものです。
 種類1~種類3の水色の部分の列が花の名前で、間違い易い3種類が登録されています。区別の列には各々の花の特徴が登録されていて、ここを見て違いを区別します。
 
 オートフィルタでこの3列のどこに居るか分からない名前を探すには、C列、E列、G列と3回フィルタを掛けて探すのが普通ですが、この3つの列を連結させて一発で検索する方法が有ります。
 B列がその関数で、5行目には =C5&E5&G5 という関数が入っています。この&記号が文字列の結合をします。この関数をB5のセルに入れて、ずっと下にコピーすれば出来上がりです。
 またこの&記号で結合する代わりに、=CONCATENATE(C5,E5,G5)の様に、CONCATENATEという関数を使う手も有ります。
 
サンプルワークシート




 


 次に、連結したB列を利用して検索します。ここでは、検索条件を・・・を含むにします。
 サンプルでは、「ママコノシリヌグイ」という、漢字で書くと「継子の尻拭い」という凄い名前ですが、実物は可愛らしい花です。
 
 
検索条件の設定
 
 
 
 上の条件で検索した結果はこの様になり、種類2の6行に「ママコノシリヌグイ」が見つかりました。
 
検索結果
 
 
 
では、次回はこの応用で、このワークシートをだれかに電子メールで送って直して貰ったが、どこが直されたか分からないのを発見する方法です。
 
 この応用で実際仕事で使っていたのが、固定資産台帳のチェックです。先月と今月の固定資産台帳を突き合わせて、増えた資産や廃却された資産、また改造が上乗せされた資産を検出して、これらの処理が正しく行われたかチェック出来ます。
 
では、次回に続く

2012年10月3日水曜日

2-⑤<税制改正後>2007年4月使用開始以後で型

ご注意:このブログは連載になっていますので、前との関わりが有ります。


3.<税制改正以後 金型(2年償却)限定>

20074月使用開始以後の金型(2年償却)専用の式である。型扱いの版は私の勤務していた事業は3年償却なのでここには含まれなかった。償却年数は会社や事業によって異なるので、貴方の会社で確認して下さい)
 

<ここで扱う資産の一生>

取得価額の1/12を取得月から毎月定額償却する。(年をまたいでも、定率法の様に期首簿価を計算してそれに償却率を掛ける事はしない。)→償却を終了する12ヶ月目(取得月から数えて)には備忘価額1円を残す。

定率法の法定耐用年数が2年の減価償却資産の償却額の計算方法は国税庁発行資料こちらの8ページ を参照して下さい。
なお、平成23年12月改正で250%定率法から200%定率法に変更されていますが、両者とも耐用年数2年の償却率は1の為に、ここで解説する式に影響ないことが上記国税庁の資料で分かります。

<今回解説する部分>式の行は6行目に変換しているので注意!








 

3-①現在未使用

 
3-②年内指定月 簿価計算
<式の全体>
=IF(VALUE(LEFT(AW6,4))=$ER$3,(AZ6-(AZ6/12)*($ES$3-VALUE(RIGHT(AW6,2))+1))*($ES$3-VALUE(RIGHT(AW6,2))<11)*(VALUE(RIGHT(AW6,2))<=$ES$3)+IF($AZ6>=1,1,-1)*($ES$3-VALUE(RIGHT(AW6,2))=11),IF((ABS(BL6)-ABS((AZ6/12)*($ES$3+1)))<0,IF($AZ6>=1,1,-1),(BL6-(AZ6/12)*$ES$3)))


<上の式を分解して解説>
 =IF(VALUE(LEFT(AW6,4))=$ER$3,
使用開始年が今年の物は、

 
(AZ6-(AZ6/12)
取得価額-(取得価額/12)

 
*($ES$3-VALUE(RIGHT(AW6,2))+1))
X(求める月-使用開始月+1)→償却した月数


*($ES$3-VALUE(RIGHT(AW6,2))<11)
但し、償却月数が11ヶ月迄のもので、

 
*(VALUE(RIGHT(AW6,2))<=$ES$3)
計算月以前の使用開始月に限る

 

+IF($AZ6>=1,1,-1)*($ES$3-VALUE(RIGHT(AW6,2))=11),
償却月数が12ヶ月の物の簿価は1(負の取得の時は-1)にする。
(1月使用開始で、12月の簿価を求める場合にしか発生しない)
 

IF((ABS(BL6)-ABS((AZ6/12)*($ES$3+1)))<0,IF($AZ6>=1,1,-1),
(使用開始が今年以外で、)
期首簿価-(取得価額/12X月数+1(つまり、求める月の次の月の簿価が0未満になる様なら、
1(負の取得では-1)にする。

 
(BL6-(AZ6/12)*$ES$3)))
そうでない場合は、期首簿価-(取得価額/12X月数

                                              

3-③年内指定月 償却費計算
<式の全体>
=IF(VALUE(LEFT(AW6,4))=$ER$3,IF(VALUE(RIGHT(AW6,2))<=$ES$3,AZ6/12*($ES$3-VALUE(RIGHT(AW6,2))<11)+(AZ6-AZ6/12*11-IF($AZ6>=1,1,-1))*($ES$3-VALUE(RIGHT(AW6,2))=11),0),IF(ABS(BL6)-ABS(AZ6/12*($ES$3+1))>=0,AZ6/12,IF(ABS(BL6)-ABS(AZ6/12*($ES$3+1))<0,(AZ6-AZ6/12*11-IF($AZ6>=1,1,-1))*(ABS(BL6)-ABS(AZ6/12*$ES$3)>=0),0)))

<上の式を分解して解説>
=IF(VALUE(LEFT(AW6,4))=$ER$3,
使用開始が今年の資産の場合で、

 
IF(VALUE(RIGHT(AW6,2))<=$ES$3,
使用開始月以降なら、(使用開始月より前の月の値を求めてきたらゼロにする)

 

AZ6/12*($ES$3-VALUE(RIGHT(AW6,2))<11)
取得価額/12が償却費。但し、経過月数が11ヶ月未満の場合。
条件で、上記か下記を選ぶ処理。

 

+(AZ6-AZ6/12*11-IF($AZ6>=1,1,-1))*($ES$3-VALUE(RIGHT(AW6,2))=11)
12ヶ月目で償却が完了する月の端数調整と、備忘価額を残す処理。
取得価額-毎月の償却費X11ヶ月-1円(負の取得では-1円)が償却費となる。

 

,0),
使用開始月より前の月の値を求めてきたらゼロにする

 

以下は使用開始が昨年以前の処理

IF(ABS(BL6)-ABS(AZ6/12*($ES$3+1))>=0,AZ6/12,
もし、求める月の次の月の簿価が”0以上なら取得価額/12が償却費となる
 

IF(ABS(BL6)-ABS(AZ6/12*($ES$3+1))<0,
もし、求める月の次の月の簿価が”0”未満の場合は、

 

(AZ6-AZ6/12*11-IF($AZ6>=1,1,-1))*(ABS(BL6)-ABS(AZ6/12*$ES$3)>=0),
取得価額-取得価額/12X11-1(負の取得の時は-1)が償却費となる。但し、後ろに条件式が掛けてあり、求める前月の簿価が1円以上の場合。(償却が完了する最後の月で端数調整を行う)

 

0)))
それ以外の場合は”0”にする。


 

3-④2008/12 簿価計算
<式の全体>
=IF(VALUE(LEFT(AW6,4))=$ER$3,IF(VALUE(RIGHT(AW6,2))=1,IF($AZ6>=1,1,-1),AZ6-AZ6/12*(12-VALUE(RIGHT(AW6,2))+1)),IF($AZ6>=1,1,-1))

<上の式を分解して解説>
=IF(VALUE(LEFT(AW6,4))=$ER$3,
今年使用開始の資産は、

 

IF(VALUE(RIGHT(AW6,2))=1,IF($AZ6>=1,1,-1),
もし、1月使用開始なら、12月の簿価は1(負の取得の時は-1)になる

 

AZ6-AZ6/12*(12-VALUE(RIGHT(AW6,2))+1)),
1月使用開始以外では)
取得価額-(取得価額/12X12月迄の経過月数

 

IF($AZ6>=1,1,-1))
今年使用開始以外の簿価は1(負の取得では-1)になる。

  


<今回解説する部分>式の行は6行目に変換しているので注意!











3-⑤現在未使用

 
3-⑥次年度以降 計算簿価→今までの解説で分かると思うので省略
<式の全体>
=IF((ABS(ET6)-ABS(($AZ6/12)*(EW$3+1)))<0,IF($AZ6>=1,1,-1),(ET6-($AZ6/12)*EW$3))

 
<上の式を分解して解説>
=IF((ABS(ET6)-ABS(($AZ6/12)*(EW$3+1)))<0,・・・12ヶ月目以降

 
IF($AZ6>=1,1,-1),

 
(ET6-($AZ6/12)*EW$3))・・・11ヶ月目まで

 
 

3-⑦次年度以降 償却費計算
<式の全体>
=IF(ABS(ET6)-ABS($AZ6/12*($EW$3+1))>=0,$AZ6/12,IF(ABS(ET6)-ABS($AZ6/12*($EW$3+1))<0,($AZ6-$AZ6/12*11-IF($AZ6>=1,1,-1))*(ABS(ET6)-ABS($AZ6/12*($EW$3))>=0),0))


 
<上の式を分解して解説>
=IF(ABS(ET6)-ABS($AZ6/12*($EW$3+1))>=0,
もし、求める月の次の月の簿価が0円以上なら(11ヶ月目までの条件)

 

$AZ6/12,
取得価額/12

 

IF(ABS(ET6)-ABS($AZ6/12*($EW$3+1))<0,
もし、求める月の次の月の簿価が0円未満なら(下の条件式と合わせて12ヶ月目を検出)

 

($AZ6-$AZ6/12*11-IF($AZ6>=1,1,-1))
取得価額-取得価額/12X11-1円(負の取得では-1円)・・・1円(-1円)の備忘価額を残す処理

 

*(ABS(ET6)-ABS($AZ6/12*($EW$3))>=0)
*(条件式)→求める月の簿価が0円以上の場合
                      償却を完了する最後の月を検出

 

0))
それ以外はゼロにする。(求める月の簿価がマイナスの場合=13ヶ月目以降)

 

 

<各月簿価と誤差の関係解説>
経理のコンピュータは切り捨てで計算しており、ダウンロードしたデータを通常四捨五入で処理しているExcelで処理する時は端数の誤差に注意が必要でした。その例です。

使用開始                                           償却終了の前月           償却終了月
2008/12                                             2009/10                      2009/11

                      次の年の期首簿価
取得価額          期末簿価                     簿価                           簿価
\322,934           \296,023                      \ 26,913                      \ 1

 
月当り償却費                                      償却費             償却費(端数調整を行う)
\ 26,911                                            \ 26,911                      \ 26,912
小数点以下切捨て

 
<求める月と次の月の簿価を試算して、償却最終月を見つける原理>
期首簿価-[取得価額/12]X月数 で月数を増やしていった時の関係
                      └→[ ]中は切り捨て処理を示す

 
取得価額が12                       11ヶ月目          12ヶ月目          13ヶ月目
割り切れる場合                        [取得/12        ゼロ                マイナス
割り切れない場合                     [取得/12        端数                マイナス
                                                       └次の月の簿価を試算すると、ゼロ以上
                                                                      └次の月の簿価を試算するとゼロ未満
                                                                          で、今の月はゼロ以上

3-⑧次年度以降 12月計算簿価
<式の全体>
=IF($AZ6>=1,1,-1)

 
<上の式を分解して解説>
=IF($AZ6>=1,1,-1)
前年取得分の12月簿価は全て1円(負の取得の場合は-1円)になる。
一番使用開始の遅い前年12月の物でも、今年11月で償却完了となり、12月は常に簿価1円(又は-1円)となる。

 
以上、最後まで読んで下さって有り難うございました。現有資産の償却費は特例とかが有って、会社によってもまちまちですが、これまで解説してきた原理を理解戴ければ、関数のみで高速に自分の会社用にアレンジできると思います。

<次回予告>
次回は、固定資産台帳の比較やExcelファイルの内容比較の方法について解説予定です。
例えば、
①先月の固定資産台帳と今月のを比較し、移管されて増えた固定資産や廃却で減ったを見つける
②複数の人に同時にExcelファイルをメールで送り更新して貰ったが、どこが直されたかを見つける
こんな事が関数でできます。お楽しみに・・・

2012年9月24日月曜日

2-④<税制改正後>2007年4月使用開始以後で型以外(2/2)

ご注意:このブログは連載になっていますので、前との関わりが有ります。

<今回解説する部分>式の行は6行目に変換しているので注意!
前年(固定資産台帳と同じ年)の12月計算簿価を利用して計算をする。
今回の式は、4列毎に右にコピーしていく事で、次の年、その次の年・・・と、指定した月の償却費と簿価が計算できる。償却が完了するまで計算が可能です。











 

2.<税制改正以後 金型2年償却以外

<ここで扱う資産の一生>・・・前回と同じ内容です
 
転換点(償却保証額>=その年度の償却費)まで定率償却を行う→転換点を迎えた年の期首簿価を改定取得価額として、この金額で定額償却を行う。転換点以降の償却率も改定償却率に切り換わる。
→定額償却が終了する年は年間償却金額から1円を引いて償却し、最後に1円の簿価を残す。

この意味が分からない方は、以下の国税庁HPに詳しい解説が有りますので、参照して下さい。
http://www.nta.go.jp/shiraberu/zeiho-kaishaku/joho-zeikaishaku/hojin/h19/genkaqa.pdf

 
 2-⑤改訂取得価額

=IF(EQ6<>"",EQ6,IF(ABS(ET6*$AN6)<ABS($AZ6*$AQ6),ET6,""))

前年の改定取得価額がブランクで無かったら(転換点を過ぎていたら)その値を持ってくる。
次に期首簿価(前年12月の償却済簿価)と償却率(定率)から計算する年度の年間償却額を計算し、これと償却保証額(取得価額X財務保証率)を比較する。償却保証額の方が大きくなった時は、転換点を迎えたと判断し、期首簿価を代入する。これによりその年以降は均等償却(定額)を行う。

 

2-⑥次年度以降 簿価計算

<式の全体>・・・注意)他の式と比較する為に、式の行は6行目に合わせてある

=IF(EU6="",(ET6-ET6*$AN6*EW$3/12),IF(((ABS(ET6)-ABS(EU6*$AS6*2))>=0),(ET6-EU6*$AS6*EW$3/12),IF(((ABS(ET6)-ABS(EU6*$AS6))<0),IF($AZ6>=1,1,-1), (ET6-(EU6*$AS6-IF($AZ6>=1,1,-1))*EW$3/12))))

 
<上の式を分解して解説> 
 
=IF(EU6="",
改訂取得価額がブランクなら(転換点に達していなければ)以下の計算を行う

 
(ET6-ET6*$AN6*EW$3/12),
期首簿価-期首簿価X財務償却率X求める月数/12

定率償却を行う。

 

改訂取得価額がブランクでなければ(転換点に達していれば)以下の計算を行う

 

IF(((ABS(ET6)-ABS(EU6*$AS6*2))>=0),(ET6-EU6*$AS6*EW$3/12),
もし、次の年がまだ定額償却続く時(定額償却で最後の年より前の場合)
期首簿価-改定取得価額X財務改訂償却率X求める月数/12

 
以下は償却が終了した後の処理で全て1円(負の取得では-1円)にする
IF(((ABS(ET6)-ABS(EU6*$AS6))<0),IF($AZ6>=1,1,-1),

 
残りは定額償却で償却が終了する最後の年になる
(ET6-(EU6*$AS6-IF($AZ6>=1,1,-1))*EW$3/12))))
期首簿価-(期首簿価X財務改訂償却率-1(負の取得では-1X月数/12
定額償却の最後の年は、12月のみ1円(負の取得では-1円)が残る


2-⑦次年度以降 償却計算

<式の全体>・・・注意)他の式と比較する為に、式の行は6行目に合わせてある
=IF(EU6="",(ET6*$AN6/12),(EU6*$AS6/12)*((ABS(ET6)-ABS(EU6*$AS6*2))>=0)+(ET6-IF($AZ6>=1,1,-1))/12*((ABS(ET6)-ABS(EU6*$AS6*2))<0))


<上の式を分解して解説>

=IF(EU6="",
改訂取得価額がブランクなら(転換点に達していなければ)以下の計算を行う

 
(ET6*$AN6/12),
期首簿価X財務償却率÷12=1ヶ月の償却費(定率法)
従来の定率法の計算

 
改訂取得価額がブランクでなければ(転換点に達していれば)以下の計算を行う
(EU6*$AS6/12)*((ABS(ET6)-ABS(EU6*$AS6*2))>=0)
改訂取得価額X財務償却率÷12 *以下は条件式で、

次の年度の簿価が0以上なら(転換点を過ぎて償却完了する年でなければ)
改訂取得価額X財務改訂償却率÷12=1ヶ月の償却費(定額法)

 
+(ET6-IF($AZ6>=1,1,-1))/12*((ABS(ET6)-ABS(EU6*$AS6*2))<0))
(財務期首簿価-1円(負の取得では-1円))÷12 *以下は条件式で
次の年度の簿価が0未満なら(転換点を過ぎて償却完了する年以降)

 

2-⑧次年度以降 12月簿価

<式の全体>・・・注意)他の式と比較する為に、式の行は6行目に合わせてある
=IF(EU6="",(ET6-ET6*$AN6),IF((ABS(ET6)-ABS(EU6*$AS6))<1,IF($AZ6>=1,1,-1),(ET6-EU6*$AS6)))


 <上の式を分解して解説>

=IF(EU6="",
改訂取得価額がブランクなら(転換点に達していなければ)以下の計算を行う


(ET6-ET6*$AN6),
期首簿価-期首簿価X財務償却率

  
改訂取得価額がブランクでなければ(転換点に達していれば)以下の計算を行う
IF((ABS(ET6)-ABS(EU6*$AS6))<1,IF($AZ6>=1,1,-1),
もし、期首簿価-改定取得価額X財務改訂償却率が1以下なら(計算してみた12月の簿価が1円以下なら)1円(負の取得なら-1円)にする。(転換点を過ぎて償却完了する年以降)
 

(ET6-EU6*$AS6)))
そうでなければ(転換点を過ぎて定額償却中)、期首簿価-改定取得価額X財務改訂償却率


以上です。関数だけで計算できる事がお分かり戴けましたでしょうか?
とりあえず式を一通り公開して、その後で各関数の解説をしていきたいと思います。

では次回は、税制改正後の2年償却の型で、償却費と簿価を求める関数です。