2010年6月6日日曜日

第148回目、連続した年度を簡単に入れられないか

○第148回目、連続した年度を簡単に入れられないか

 たまのことですが、連続した年度を見出しに入れたい時があります。例えば、平成20年度…とかです。
 たて見出しでは、桁数が多いためうるさくなってしまうのですが、横見出しの時は、そうでもないので、ニーズが出てきます。

 1.まず最初のセルに、平成20年度と入れます(B2とします)。
 2.次のセルには、計算で文字列をつくります(C2とします)。
   =left(B2,2) & (MID(B2,3,2) + 1 & RIGHT(B2,2)
 3.この計算を必要なだけコピーします。

 最初のセルに、平成01年度と入れると、一つ目(平成2年度という表示)はいいのですが、二つ目のところにエラーが出ます。
 これは年度が一桁の数値になっているからです。

 これを避けるために、年度の部分をTEXT関数で整形してあげます。
  =LEFT(W23,2) & TEXT(MID(W23,3,2) + 1,"00") & RIGHT(W23,2)

 これを基本として、マクロ化するとどうなるでしょうか。
 マクロ化するのは、表示スタイルをさまざまに選べるという機能をつければいいでしょう。
  平成20年度のスタイル
  H20のスタイル
  20年度のスタイル
  フリースタイル…基にする文字列の頭の文字列の桁数、後ろの文字列の桁数を指定して、真ん中の数値のみ更新していきます。
 これを利用すると、平成20年00月の月を更新したものを作ることができます。

0年目…とかいう経過年度のケースですが、これは、9から10にいくところをどうするか、という問題があります。
どうしたらいいのか考えていたら、アイデアが浮かびました。
すぐ左のセルを使うのではなく、最初のセルを使えばいいのでした。
この場合は、TEXT文で数値を編集する必要がなくなります。

ひるがえって、これまでのものも最初のセルをもとにして計算式を組み立てるという方式にすべきでしょう。

マクロ処理の流れ
1.最初の数値が入っているセルからこれから作り出したいセルまでを指定してからマクロを実行する
2.表示したいスタイルを選択する。
3.指定範囲の情報を取得する。
4.最初のセルに計算式を設定し、値貼付けをして計算式をなくす。
 最初の数字は、セルに書き込まれているものとなりますが、それを変数から定数化するために、値としてセルに貼付けします。
5.次以降のセルに、最初のセルをもとにして、計算式を入れる。

※このような年度をつける処理が、エクセルの基本機能にあるのかどうかは確かめていません。あればこのマクロはほぼ空振りとなります。

0 件のコメント: