全1024文字
PR

 表題の「表示形式の継承問題」とは、あまり聞き慣れない言葉かもしれない。これは行列などを挿入すると、その前にある行列の表示形式を継承することを指す。どういうことか下図を用いて具体的に説明したい。

「会員登録」と「名前」という2つの列をもつシンプルな名簿。この名簿に「登録年」という列を「会員登録」と「名前」の間に挿入する
「会員登録」と「名前」という2つの列をもつシンプルな名簿。この名簿に「登録年」という列を「会員登録」と「名前」の間に挿入する
[画像のクリックで拡大表示]

なぜこんな奇妙な表示になるのか

 上図は「会員登録」と「名前」という2つの列からなる、極めてシンプルな名簿だ。この「会員登録」と「名前」の間に新しい列を挿入して「登録年」とし、ここに会員登録した年を表示する。この場合、B列の列見出しを右クリックして、メニューから「挿入」を選ぶ。そしてB1に「登録年」と入力すればよい。

 B列の列見出しを右クリックして、メニューから「挿入」を選ぶ。「会員登録」と「名前」の間に新しい列を挿入できる
B列の列見出しを右クリックして、メニューから「挿入」を選ぶ。「会員登録」と「名前」の間に新しい列を挿入できる
[画像のクリックで拡大表示]
B1に「登録年」と入力した。前の列の書式を継承しているため、セルの塗りや、フォント、中央揃(ぞろ)えが統一されている
B1に「登録年」と入力した。前の列の書式を継承しているため、セルの塗りや、フォント、中央揃(ぞろ)えが統一されている
[画像のクリックで拡大表示]

 B1を見ると、セルの塗りやフォント、中央揃(ぞろ)えなど、A1のセルの表示形式を継承している。書式をいちいち再設定する必要がないので大変ありがたい。ところがこの表示形式の継承がありがた迷惑になることがある。B2以下の場合がそうだ。

 B2には会員登録した年のみを表示する。この場合、「会員登録」の年月日から年だけを取り出せばよいから、日付のシリアル値から年を取り出すYEAR関数が使える。

YEAR関数 日付/時刻関数

=YEAR(シリアル値)

指定したシリアル値を年に変換する。

①シリアル値 日付を指定する。

 ところが下図のようにYEAR関数を設定すると、「1905/7/13」などととんでもない表示になってしまった。これは一体どうしたことか。

B2を選び、「=YEAR(A2)」と入力する。この数式をB7までオートフィルする。「1905/7/13」などととんでもない表示になった
B2を選び、「=YEAR(A2)」と入力する。この数式をB7までオートフィルする。「1905/7/13」などととんでもない表示になった
[画像のクリックで拡大表示]