第4回 - 2009/10/26

関数を利用した処理


数値処理

統計処理については、別のときに説明をします。以下に、代表的なものを紹介します。

文字列を処理する関数

日付を処理する関数

日付時刻データについて

日付を処理する関数

条件判断を行う関数

IF(条件式, TRUEのときの値, FALSEのときの値)

その他に条件式に使われる関数


本日の演習

練習問題4-1

以下のような結果を得られる計算式を作成する

練習問題4-2

日付を入力したセルを参照して、その翌月の月末の日を求める式を入力すること。ヒントはEOMONTH関数。年を越してもきちんと計算する事を確認すること。さらに、「翌月の初日」を求める式を入力すること。

練習問題4-3

名前から姓と名を取り出す関数を作成するが、以下の動作を付けること。

練習問題4-4

1つのセルに今日の日付を入力し、オートフィルで下に広げると、1日ずつの日付が自動的に入力される。20個以上のセルに広げておく。そして、その範囲に条件付き書式を設定して、日曜の場合のセルの背景を赤いものに、土曜の場合のセルの背景を青いものにすること。


解答

練習問題4-1〜4-4については以下の通りです。まず、正解はこれ1つではありません。ここの回答も状況に不正解になる可能性もあります。100%の解答が常にあるとは限りません。特に、21世紀から何日目かを求める解答については、「1秒追加」するのはやりすぎかもしれませんが、ここではROUNDUP関数をともかく使うということを優先してこうしました。なぜ、1秒追加するのかは、0時0分0秒で間違いが発生するからです。また、姓名から名前を取り出す場合、RIGHT関数でももちろんかまいませんが、MID関数を使えば「最初の空白より後の文字すべて」という取り出し方ができます。取り出す長さをLEN関数で求めている点にも注意を払いましょう。4-3はちょっと難しいですが、こういう場合は途中の結果を順次セルに分けると分かりやすいかもしれません。ポイントは、C19のセルのIF文でしょう。もちろん、OR関数を思いついたかもしれませんが、ここでは「スペースがない」「半角である」「全角である」の3通りにしかならないことを考え、それぞれの場合でどの値が欲しいのかを考えてみると、これが1つの解答になるでしょう。

練習問題4-4はいきなり「条件付き書式」をやってもらいました。ある意味、こうした機能は習うより慣れろ…なんではありますが、Excel 2007のこの機能はいきなり使えと言われても分かりにくいと思いますので、手順を示します。条件付き書式は、セルの書式を条件に応じて設定するという機能ですが、ここでは条件が「100以上」とかいったシンプルなものではなく、WEEKDAY関数の結果をもとに考えないといけないという点があります。そして、そのときに設定する式のセル参照の方法をどうすればいいのかということも問題になるでしょう。

まず、日付が入力されたセルを選択しておいて、「ホーム」タブの「スタイル」にある「条件付き書式」をクリックしてメニューを表示し、「ルールの管理」を選択します。

すると、ルールの管理のウインドウが開きます。ここで「新規ルール」ボタンをクリックします。

新たなルールを定義しますが、上部のリストからは「数式を使用して、書式設定するセルを決定」を選択します(明らかに日本語がおかしいですね。きっと正しくは「数式を使用して、セルの書式設定を決定」でしょう…)。

下半分のところには、式として「=WEEKDAY(A1)=1」と入力します。奇妙な式と思うかもしれません。最初の=は「式の始まり」を示し、後の=は条件判断のための演算子です。つまり、「A1の曜日が1かどうか」を判定しているのです。今、セル範囲はA1:A26ですが、設定する式は左上のセルのセル番地を相対参照で記述します。すると、A2のセルの書式は「WEEKDAY(A2)=1」の結果に従い、A10のセルの書式は「WEEKDAY(A10)=1」の結果に従い…という感じで、結果的には「それぞれのセル」に対しての式が計算されて指定された書式が設定されたりされなかったりということになります。

「書式」ボタンをクリックして、文字の色が赤になるように設定して、OKボタンをクリックします。

土曜なら青になるという設定も、同じ手順で追加します。もちろん,式は「=WEEKDAY(A1)=7」です。ちなみに、最初の=を忘れると、全体を文字列と見なして、正しく計算されません(もちろん、日曜日の判定も同様です)。「適用」をクリックすると、OKでダイアログボックスを消さなくても結果を見る事ができます。

この章の解答のワークシートはダウンロードできるようにしておきました。こちらからダウンロードしてください。