数式を含んだ書類の例として、見積書を作る。
文字データと書式
文字データを入力する。


書式を設定する。
B2〜H2を選択 → 「セルを結合して中央揃え」ボタン → フォントサイズを18にする → 「太字」ボタン

B10〜B12を選択 → 「右揃え」ボタン → 左にはみ出ないようB列の列幅を拡大

B12〜C12を選択 → フォントサイズ14 → 「太字」ボタン

B14〜H14を選択 → 太字 → 「中央揃え」ボタン

日付の関数
TODAY関数でセルH1に今日の日付を表示する。
H列の列幅を11.00にする(年月日を表示するだけの幅を確保するため)→ H1に「=TODAY()」と半角で入力

H1に今日の日付が表示されたはずである。
次に、C10に「=H1+14」と入力する。入力中はセルH1が青くなる。入力すると14日後の日付が計算される。

EOMONTH関数で翌月末の日付を求める。
C11を選択 → 「関数の挿入」ボタン → 関数の分類「日付/時刻」 → EOMONTHを選択して「OK」 → 関数の引数を設定して「OK」
引数(ひきすう)とは、関数に与える情報のことである。EOMONTH関数の場合は数え始めの日付(ここではH1)と○ヶ月後という月数(ここでは翌月つまり1ヶ月後なので1)を入力する。



日付がシリアル値で表示されてしまった。
シリアル値とは、西暦1900年3月1日を61日目として、以降の日付を通し番号で数えた数値である。
なお、シリアル値1〜60は正しく認識されない。
シリアル値は、表示形式を変更すれば通常の日付の形式で表示することができる。
C列の幅を11.00にする(年月日を表示するだけの幅を確保するため) → C11を選択して右クリック → セルの書式設定

「表示形式タブ → 分類「日付」 → 「年/月/日」の形式を選ぶ → 「OK」

「年/月/日」の形式になった。

日付を和暦で表示することもできるので、セルH1・C10・C11の表示を和暦にしてみる。
H1とC10〜C11を選択して右クリック → セルの書式設定

「表示形式タブ → 分類「日付」 → 「年/月/日」の形式を選ぶ → 「OK」

「#########」になってしまった。
これは、列幅が不足している時の表示である。
そこで、C列とH列の列幅を拡げる。
C列とH列を選択 → 列番号CとDの境目(HとIの境目でもよい)をドラッグして列幅を15.00にする。

和暦で表示された。

商品リストの作成
見積書とは別のシートに商品リストを書いておく。
シート見出しの右隣の丸プラスボタンを押すと新しいシートが追加される。

追加されたシートに、次のような商品リストを書く。
この時、A1に「F-001」と入力した後で改めてA1を選択し、セルポインター(選択したセルを囲む緑色の枠)の右下の角にあるフィルハンドルをA5までドラッグすると、A2〜A5に連続データを手早く入力できる。

VLOOKUP関数
商品番号を入力すると、該当する商品名と単価が自動的に表示されるようにしたい。
VLOOKUP関数を使うとそれが実現できる。VLOOKUP関数は、表の中のデータを検索する関数である。
sheet1のセルC15を選択して関数ウィザードを開く

関数の分類「検索/行列」 → VLOOKUPを選択 → 「OK」

第1引数「$B15」、第2引数「Sheet2!$A$1:$C$5」、第3引数「2」を入力(第4引数には何も書かない) → 「OK」
(「$」の意味は下で説明する)

エラーメッセージ「#N/A」が表示されるが、セルB15に商品番号を入力するとに対応する商品名になる。


C15の数式をD15にコピーして、VLOOKUP関数の第3引数を「3」に変更すると、商品番号に対応する単価が表示される。
C13を右クリックして「コピー」 → E13を右クリックして「貼り付けのオプション」の「数式」 → VLOOKUP関数の第3引数を「3」に変更


セルE15に単価が表示された。

相対参照と絶対参照
数式の中にセル番地を書くと、そのセルの値が参照される。これをセル参照と言う。
セル番地を含む数式を他のセルにコピーすると、セル番地はそのままコピーされるのではなく、コピー元との距離に応じて変化する。
例えば、右隣にコピーすると列番号が1つ進み、下隣にコピーすると行番号が1つ増える。
このようにコピー先で変化するセル参照を相対参照と言う。
しかし、セル番地の列番号あるいは行番号の左に「$」を付けておくと、その番号はコピー時に変化しなくなる。
コピーしても変化しないセル参照を絶対参照と言う。
上の例では、VLOOKUP関数の引数に含まれるセル参照は「$B15」「$A$1」「$C$5」であり、列番号は全て「$」の付いた絶対参照になっている。
そのため、右にコピーしても列番号は変化していない。
一方、行番号については、「$B15」の行番号は相対参照であり、「$A$1」「$C$5」の行番号は絶対参照である。
そのため、もしこの数式を下にコピーすれば、「$B15」の行番号だけが増え、「$A$1」「$C$5」の行番号は増えないことになる。
IF関数
VLOOKUP関数だけだと、商品番号が入力されていない時には「#N/A」になってしまう。
VLOOKUP関数とIF関数を併用することで、これを避けることができる。
C15を選択 → 「=」と「VLOOKUP」の間に「IF($B15="","",」と書き加え、さらに最後の「)」の後ろにもう1つ「)」を書き加える → Enter
セルB15の商品番号を消去してもエラーメッセージが出なくなる。
一方、IF関数を追加していないセルE15は「#N/A」となる。

E15も同様にすればよいのだが、C15の数式をコピーしてから第3引数を「3」に書き換える方が簡単である。

残りの行にも数式をコピーする。
C15〜E15を選択 → フィルハンドルを第36行までドラッグ


セルB15〜B36に商品番号を入力すると対応する商品名・単価が表示されるようになった。

残りのセルにも入力していく。
適当な数量を入力 → セルF15に金額を求める掛け算の式「=D15*E15」を入力する。

金額が表示された。
次に、セルG15に消費税を求める式を入力するが、ROUNDDOWN関数を用いて小数点以下を切り捨てることにする。
G15を選択 → 「関数の挿入」ボタン

関数の分類「数学/三角」 → ROUNDDOWNを選択 → 「OK」

第1引数「F15*0.1」、第2引数「0」 → 「OK」
ここで、第2引数の「0」は小数点以下を0桁残す(小数点以下を残さない)という意味である。

消費税額が表示された。
次に、H15に税込金額を求める足し算の式「=F15+G15」を入力する。

これで商品番号から税込金額までの7列すべてが表示された。
しかし、このままだと商品番号が入力されていない時にはセルF15〜H15にエラーメッセージ「#VALUE!」が表示されてしまう。

そこで、F15〜H15にも先程と同様にIF関数を追加する。
すると、商品番号が空欄の時もエラーメッセージが出なくなる。

先程と同じ方法でセルF15〜H15を36行目までコピー


商品番号を入力した行だけ金額が表示されるようになった。
ただし、数量に何も入力していないと「0」と見なして計算される。
試しに、セルB16とD17をクリアしてみよう。

合計金額
セルB37〜E37を結合する。
B37〜E37を選択 → 「ホーム」タブの「結合して中央揃え」ボタンを押す

セルF37にSUM関数を入力する。
F37を選択 → Σボタン(オートSUMボタン) → 引数(F15:F36)を入力 → Enter

F37の数式をG37とH37にコピー

合計が計算されるようになった。


仕上げ
セルC12にも合計金額を表示する。
C12に「=H37」と入力

セルH37で計算した合計金額がそのまま表示された。

次に、数量・金額等の数値を桁区切り(3桁ごとのコンマ)付の表示にしてみる。
C12を選択 → 「ホーム」タブの「桁区切りスタイル」ボタン
桁区切りの付いた形式で表示されるようになった。

数値が表示される他のセル(D15〜H36とF37〜H37)も同様にする。

C12には円マーク「\」も表示する。
C12を選択 → 「通貨表示形式」ボタン

B14〜H37に罫線(格子)を引き、さらに外枠と項目名の下には太線を、合計の上には二重線を引く。


印刷プレビューを見ると、1枚の紙に入り切れず、2枚になってしまっている。

何とか1枚に収まるよう工夫する。
「狭い余白」を選択

1枚に収まったが、全体が右に寄ってしまっている。A列の分が余白になっているからである。
左上の「戻る」ボタン(左矢印のボタン)を押してシートに戻ると、印刷範囲を表す点線が表示されている。
これはExcelを再起動すれば消えるが、今は気にせず作業を進めることにする。
A列の列幅を4.00にすると、ほぼ真ん中に印刷されるようになる。

もう一度、印刷プレビューで確認した上で、PDFファイルに出力して、完成。
