エクセルでは書式設定は重要な役割を占めています。エクセルの設定で書式設定以外にも、関数を使ったりVBAを使う方法があります。
書式設定とは?
エクセルでは実際にセルに入っているデータと、セル上に表示されるデータが異なります。
例えば実際のデータが「10」であっても、書式設定によって「$10」だったり「1900/1/10 0:00:00」だったり「1000.00%」などに変更できます。
しかし書式をいくら変えようとも、セルにある元のデータ自体「10」自体は変更されません。
実際に試してみましょう。セルに数値で10.を入れます。
セルを右クリックし「セルの書式設定」を実行。
「日付」にしてみます。
中のデータの数値は変えてないのに、セルには「明治33年1月10日」と表示されるようになりました。
%で表示する
よく使うのは%での表示でしょう。
0.1とは言っているセルを、書式設定でパーセンテージにしておけば表示は10%となります。
小数点以下の桁数も設定できます。
例えば「0.12345」という数値を、パーセンテージ表示で小数点以下2桁として設定すれば「12.35%」として表示されます。
関数を使って設定する
TEXT関数
関数を使って書式を変更するならTEXT関数を使います。
機能:書式を変更
書き方:TEXT(セル,表示形式)
使用例:A1セルに「40000」と入っている場合、
- 「=TEXT(A1,"yyyy/mm/dd")」とすると「2009/07/06」
- 「=TEXT(A1,"¥#,###")」とすると「¥40,000」
- 「=TEXT(A1,"####.00")」とすると「40000.00」
...となります。
VBAを使って設定する
VBAを使いこなすと、かなりいろんな書式設定ができるようになります。
一度に多くのセルを変換しすることもできます。
今までなら、セルを選んで、「xx」メニューを出して「yy」ボタンを押して、「zz」を選んで...というのを毎回実行していました。
それをワンボタンでやれるようになると、時間的にもずいぶん楽です。
ここではセルの書式変更をしてみましょう。
まずサンプルとしてA1に適当な数値を入れます。
「開発」メニューから「VisualBasic」を選びビジュアルベーシックエディターを起動します。
Sheet1をダブルクリックして、シート用のスクリプトウィンドウを開きます。
次のように入れます。
Sub test()
Range("A1").NumberFormatLocal = "0%"
End Sub
これはセル(A1)の書式設定を「パーセント表示」にしろという命令です。
F5キーを押して実行後、エクセルの画面に戻ると、セルがちゃんとパーセント表示になっています。
パーセントでは1が100ですから、155は15500になっているわけです。
書式を数値にする
0_ と指定すると書式が文字列になります。
Sub test()
Range("A1").NumberFormatLocal = "0_ "
End Sub
書式を日付にする
yyyy/m/dと指定すると書式が文字列になります。
Sub test()
Range("A1").NumberFormatLocal = "yyyy/m/d"
End Sub
書式を文字にする
アットマークを指定すると書式が文字列になります。
Sub test()
Range("A1").NumberFormatLocal = "@"
End Sub
不具合
数値によって書式を変えたい?
数値が大きい場合と小さい場合の書式を変えたい場合、書式設定だけでは大変です。
例えばIF関数で分岐させて、それぞれにTEXT関数を置くようにしましょう。
例えば「=IF(A1>10, TEXT(A1,"yyyy/mm/dd"), TEXT(A1,"000"))」とすると、A1の値が10より大きいと日付書式に、そうでないばあいは数値で表現させることができます。