マクロ

 Excel の計算式や関数は、セル内の = から始まります。表計算ソフトとしては Lotus 1-2-3 の方が人気のあった頃、このロータスはいきなり計算式から始まり、= が必要なかったことが人気上位の要因だった。
 =NOW() 関数の =NOW は分かるけど後の ( ) は何? と、最初の疑問が起こるかもしれない。これは単なる規則です。この関数のようにこのままで答えを計算してくれるものもあります。また、=NOW(C15) という風にセルを参照して使うことが一般的です。
覚えておくと便利な関数
=TODAY()
 現在の日付のシリアル値。
(結果・例)
 42363
(書式適用・例)
 2015/12/25
 [yyyy/m/d]
 初期設定で自動適用されます
=NOW()
 現在の日付・時刻のシリアル値を求める。書式適用で日付と時刻を表示します。
(結果・例)
 42140.9431951389
(書式適用・例)
 2015/5/16 22:38
 [yyyy/m/d h:mm]
 初期設定で自動適用されます
=REPT("!-",12)
 指定文字列を指定回数繰返す。
(結果)
 !-!-!-!-!-!-!-!-!-!-!-!-
 文字列に替わりセル参照可能
=RANK(数値,参照,順序)
=AVERAGE(範囲)
=MAX(範囲)
=MIN(範囲)
=DSUM()
=COUNTIF()







(書きかけ中!)
0 (ゼロ)を表示しない
書式・表示形式・ユーザー設定 #,##0;[赤]-#,##0;#
あるいは、 #,##0;[赤]-#,##0; (どちらでも同じ)

 ホーム→書式→セルの書式設定→表示形式→ユーザー設定と辿り、右枠の中の #,##0;[赤]-#,##0 をクリックして下さい。すると、種類(T)の下(初期表示文字は G/標準 )に今、選んだ書式が表示されます。その欄の中の文字は編集できますので、続けて ;# (セミコロンとイゲタ・マーク)を加えて、結果的に #,##0;[赤]-#,##0;# という文字にしてから [OK] で終わって下さい。勿論、ユーザー設定選択後に G/標準 と書かれている場所に、直接自分でこの #,##0;[赤]-#,##0;# と書いても構いません。赤の左右は半角英数の [ ] になります。
 この書式が設定されたセルでは、0(ゼロ)が表示されません。0(ゼロ)が入力されていたり、計算結果の 0(ゼロ)を表示させたくない時に使用します。

(↓クリックで別 Window 拡大します)
ゼロを表示しない

 セル $A$1に 0(ゼロ)が入っていることは、数式バーで確認できます。これらのことは、マイクロソフト社エクセル班が決めた規則を覚えるということに他なりません。

 ソフトウェアやプログラミングの分野で、一定のルールに基づいてデータの一部分を不要と判断し、省略・削除する処理や機能などをサプレスということがある。例えば、数を表すデータの先頭に不要な「0」が連続して現れる場合に、これを削除して本来の数値の部分だけを取り出す(例「0083」→「83」)処理を「ゼロサプレス」という。

ゼロサプレス・振替伝票1

 セルに入っている値の数字に 0(ゼロ)があった場合、そこに施された書式 # に反応して 0(ゼロ)が消えるという規則になっているわけです。また、3桁の左に ,(カンマ)を書式に入れておけば、表示結果は自動的にその後も3桁ごとに ,(カンマ)が挿入されるというのも規則です。

 この書式の特徴は、2つの ;(セミコロン)で区分けされた書式があることです。一番左はセルに入っている数字が+(プラス)の場合に適用され、真ん中は値が−(マイナス)の時に適用されます。このマイナスの場合は、色を赤にしなさいという [赤] があるので表示色は赤になります。また、−(マイナス)表示も追加されています。一番右は、値が 0(ゼロ)の場合適用される書式になります。本題の「0(ゼロ)を表示しない」は、この書式が適用されるからです。これがエクセル書式の決められた書式になります。

 例えば、書式が #,### ひとつだった場合はどうなるでしょうか。さいわい 0(ゼロ)は表示されませんが、+の場合も−の場合も黒色で表示され、−記号は表示されません。こうやって、施されている書式によって値の表示を意図的に変えることが出来るのがエクセルの特徴でもあります。
 #,##0;-#,##0;0 とか、#,##0;[赤]#,##0;[青]0 とかの書式も可能です。こちらは 0(ゼロ)を 0(ゼロ)として表示します。マイナスの場合の [赤]#,## には−(マイナス)表示はつきませんが、値そのものはマイナスであることに変わりはありません。計算表なんかの場合は、出来るだけ同じ書式で統一した方が綺麗な表が出来るでしょう。書式だけのコピーは「箒アイコン」を使って簡単に出来ますから、その使い方も熟練するとすごく便利です。

 00000;[赤]00000;00000 この書式・ユーザー設定は 0(ゼロ)で頭を埋めて桁を揃えて表示したい時に使います。例えば、00523、00069、01274、00008、00000、59437、こんな表示結果が得られます。





もっとおもしろい表示形式

振替伝票2
振替伝票3

 | 借方が1円多い | と表示されたセル(G10)には借方合計(セル F10)から貸方合計(セル H10)を引くという計算式が入っています。計算結果は、 | 貸方が90円多い | や | OK | と表示が三変化します。
 =F10−H10 ここで求められた答に例の区分けされた書式を適用しているわけです。
 値が+の時 ; 値が−の時 ; 値が 0(ゼロ)の時



振替伝票4
[赤] "借方が" #,##0"円多い" ; [紫] "貸方が"#,##0"円多い" ; [青] "OK"

 この書式が三変化の書式になります。色をつける時は、[黒]、[青]、[水]、[緑]、[紫]、[赤]、[白]、[黄] が使えます。表示する文字列は、" " で囲んで下さい。
 入力されている値と表示されているものは、必ずしも常に一致しているわけではない、ということが理解できます。





第4番目の区分け書式

 これまでの +、−、0、の区分け書式に加えて、第4番目の書式を追加できます。 #,##0;[赤]-#,##0;#;@ 最後の2文字 ;@ (3つ目のセミコロンにアットマーク)です。これは文字列の場合の書式を指定しています。どのような使い方をするかというと、上記書式のセルでは文字列の値はそのまま表示されますが、例えば #,##0;[赤]-#,##0;#;"東京都" 、が設定されたセルに入力された文字列はすべて 東京都 と表示されます。入力された値が 大阪府 でも アメリカ でも バカ でも、入力された値が文字列であれば 東京都 と表示されるわけです。
 3番目のセミコロンの後に何も書かなければ、入力された文字列は何も表示されません。軽率に間違えると、ちょっと考えてしまいますね。
 ここで衝撃的な事実が。最初に 0(ゼロ)を表示しない方法の書式として紹介した #,##0;[赤]-#,##0;# でしたが、この第4番目の区分け書式で分かったように、2つ目のセミコロンの後の書式を省略することでも 0(ゼロ)を表示しないことが可能であることが分かるでしょうか。 #,##0;[赤]-#,##0; ←ここに何も書かない。
 どちらを使っても同じですから、個人の好みでどうぞ。





条件付き書式

振替伝票5

 これまでの +、−、0、の区分け書式とは別に、条件をつけて書式を設定できます。条件は2つまで、それ以外ということで3つまでの書式を書けます。
 左の表には1、2、3、の数字が入力されています。これを入力規則に従って、書式を適用したのが真ん中の表になります。
 [青][=1]"出 席";[赤][=2]"欠 席";"保留" これが、2つの条件とそれ以外を組み合わせた3つの条件書式になります。[=1]は値が 1 の時は出席、[=2]は値が 2 の時は欠席、それ以外の時は保留を表示します。1、2、以外の時は 3 でも 4 でも結果は留保になります。
 右の表はそれぞれの合計人数を計算した表の参考になります。=COUNTIF という関数を使っています。真ん中の太黒枠に名前を付けておくと便利です。その黒枠の中に計算式の左セルと同じ文字が何個あるかという関数になります。他にもいくつかやり方はありますので、研究してみて下さい。書式は、#,##0"人" 。





表示形式・書式をまとめる
(↓クリックで別 Window 拡大します)
振替伝票7

 3256400 -9876543 0 赤坂 という値が、書式適用でこのような表示になります。最後の2行について、これから書きます。

[ 桁区切り書式 ]

 #,##0,;[]#,##0,; 0(ゼロ)の右に ,(カンマ)があります。これがミソです。会社関係の表によくある 単位(千円) と断りのあるあれです。セルの中に入っている数字をいじることなくこの桁区切り千単位の数字に表示を変えてしまいます。しかも、百の位を無条件に四捨五入します。見本の 3256400 は見事に 3,256 と表示されます。あくまでも表示する数字を千単位にするのであって、実際の数字はなんにも変わっていないことを覚えておいて下さい。見本の -9876543 が -9,877 になって四捨五入されていることを確認できます。
 このまま他の数字と共に加減乗除すると結果が予想しないことになってしまいます。表示だけならこれで問題ありませんが、実際に数字そのものを千単位で百の位以下を 0(ゼロ)にするか、100で割って数字そのものを千以上の数字にしてしまうかの2通りがあります。小数点以下の端数処理も大切な実務です。

[ ROUND, ROUNDUP, ROUNDDOWN ]

 ROUND は四捨五入、ROUNDUP は切り上げ、ROUNDDOWN は切り捨てです。( ,2)カッコ内カンマの後の数字は例えばこの ,2 なら、小数点第3位を処理(四捨五入、切り上げ、切り捨て)して、小数点第2位までの値を求めるという意味になります。
振替伝票10  セルA1に 45.6251 という値が入っているとします。結果は書式のように表示だけではなく、実数としてこの値になります。現在の表示書式は、#,##0.0000 ですが、これを #,##0.00 にすれば下2桁の 0(ゼロ)は表示されなくなります。
振替伝票9  小数点第1位を四捨五入、切り上げ、切り捨てして整数にします。( ,0)が整数にするやり方だと覚えておいて下さい。
振替伝票11  整数部分を 0(ゼロ)にする時には、このように -3(マイナス3)というような書き方をします。ご覧の通り -3 適用で、整数部分下3桁が 0(ゼロ)になります。前述の千桁区切りを実数と合わせるためには、この下三桁処理をしてから、100で割った数を値として求めれば、その後の加減乗除での余計な心配がなくなります。

 これらの端数処理は、請求書を作るような場面で必要不可欠な処理になります。小数点以下の数字が全くなければ問題ありませんが、小数点以下の数字がある場合は「絶対」と言っても過言ではありません。消費税があるこの時代は、どうしてもやらなければならないことかもしれません。Excelの請求書で足し算をしたら合計が違っていたなんていうことは、よくある話ですから。

[ 美しい表を作る ]

 #,##0_);[赤]-#,##0_);0_) 表示形式・書式をまとめるの最終行の書式です。0(ゼロ)の右に _) (アンダーバーとカッコ)があります。これは、値である数字の下1桁の右側に半角英数のスペース相当の空白を表示することです。この書式を使うと、数字の右側の罫線と少し離れるため美しい表を作ることが出来ます。

振替伝票12

 この表の数字部分はすべてこの書式を適用しています。支店名部分は枠の中の左右に、もうひとつずつセルがありそのセルには罫線が設定てされていません。支店名のセル・文字の配置・横位置は「均等割り付け(インデント)」設定しています。そんな風に 0(ゼロ)の右側にもうひとつセルを作って美しい表を作ることも可能です。まあ、どちらを選ぶかは好き好きというところでしょうか。