前回ダイレクト納付の話を書いたので、ダイレクトつながりでエクセルのindirect関数の話など。
将来数年分の減価償却費の見込額を計算させるため、エクセルで作業シートを作っていたのですが、償却費の計算のためには耐用年数に対応する償却率や改訂償却率、保証率の数字が必要となります。
対応一覧表があればvlookup関数で耐用年数に対応するものを引っ張ってくることができますが、やっかいなのは減価償却の方法には「定額法」と「定率法」の2つがあることです。
定額法と定率法で耐用年数に対応する率などは違うため2つの対応表が必要となりますが、vlookup関数だけでは、一つの計算式で条件分岐させてそれぞれの表を参照させることはできません。
そんな場合に便利なのがindirect関数になります。
indirect関数は、他の関数などの参照セルを、文字列で指定することができる関数です。
文字で説明すると訳が分かりませんが、たとえば、次の2つの償却率表がある場合・・・。
次の表の償却率のH10欄に、G10の耐用年数に対応する償却率を引っ張ってこようとすると、vlookup関数だけだと定率法、定額法、どちらかの表しか参照させられません。
しかし、定率法の表を範囲指定し「定率法」、定額法には「定額法」と名前をつけた上で、下記のような数字をI10欄に入れると・・・。
VLOOKUP(G10,INDIRECT(H10),2,FALSE))
H10セルが「定率法」の場合は、定率法と名前をつけた範囲を参照し、「定額法」の場合は定額法と名前をつけた範囲を参照しに行くので、一つの数式で条件分岐させてvlookup関数を利用することができます。
indirect関数はとっつきにくい関数ですが、使いこなせるようになると、他の関数と組み合わせていろいろな作業ができるようになります。
使ったことのない方がいらっしゃれば、ぜひ一度試してみてください!
※遅ればせながら今日、経営革新等支援機関の申請書を提出しました。
不備がなければいいのですが・・・。