RIGHT:[[授業のページへ戻る>Lecture/InfoPrac2003]] *日付・時間の処理 [#iea70a63] *情報処理演習 第10回 [#y9e6e3d3] -今回のテーマ「文字列関数」 --文字列関数を探して、計算式をつくれるようになる まず、いくつかの日付/時刻関数を紹介して、誕生日に関する計算をします。 **前回までの課題の提出(準備中) [#zb947844] [[こちらの連絡事項>../Info]]を見て、前回課題の提出状況を確認してください。 -第8回と第9回(前回)の課題は、一緒にチェックします。 -まだ提出していない人は、課題を作成して提出してください。 -再提出するように指示があった人は、[マイドキュメント]にあるファイルの修正をして、提出用フォルダに再提出してください。 ダウンロードしたファイルを開くと、 「誕生日」というシートが表示されます。 **前回の復習 [#r0086a58] 前回は日付/時刻関数をいくつか使って、カレンダーを作りました。 その他の日付/時刻関数を紹介して、誕生日に関する計算をします。 #ref(ex00.png,nolink,誕生日のシート) Excelを起動して、 ワークシートに「誕生日」という名前をつけてください。 下の図を参考にして、次のように入力してください。 -B1 : 日付/時刻 -C1 : シリアル値 -A2 : 現在の日付 -A3 : 現在の時間 -A6 : 次の誕生日 -A7 : 日数(TODAY) -A8 : 日数(NOW) -A9 : 日数 -A10 : 時間 -A11 : 分 -A12 : 秒 #ref(excel02.png,nolink) ***現在の日付・時刻 [#scb6ab32] **Excelでの日付/時刻の表現 [#x79e45cf] Excelでは、日付のデータ(2003年11月26日など)を、 ''「1900年1月1日からの日数」''として管理しています。 たとえば、2004年12月22日は「1900年1月1日から38343日後」となります。 現在の日付と時刻つきの日付を求めます。ここでは''TODAY''関数と''NOW''関数を使います。 「38343」のような日付のデータのことを「''日付のシリアル値''」といいます。 ほかに、時刻のシリアル値もあります。 **現在の日付・時刻 [#scb6ab32] 現在の日付と時刻つきの日付を求めます。 ここでは''TODAY''関数と''NOW''関数を使います。 これらの関数には、引数は必要ないので、「=TODAY()」のような使い方をします。 -''TODAY''(現在の日付をあらわすのシリアル値を返す) :TODAY(現在の日付をあらわすのシリアル値を返す)| --書式 : TODAY() -''NOW''(現在の日付と時刻をあらわすのシリアル値を返す) --例: 現在の日付を求める =TODAY() :NOW(現在の日付と時刻をあらわすのシリアル値を返す)| --書式 : NOW() --例: 現在の日時と時刻を求める =NOW() B2とC2セルにTODAY関数を使って日付を、B3とC3セルにNOW関数を使って日付と時刻を求めてください。 B2とC2セルにTODAY関数を使って現在の日付を、 B3とC3セルにNOW関数を使って現在の日付と時刻を求めてください。 「関数の挿入」ボタンを使っても、直接入力してもかまいません。 関数の分類は「日付/時刻」になります。 ***日付・時刻の表示形式 [#vad043c4] B2セルの日付の表示形式を変更してください。 B2セルを右クリックし、「セルの書式設定」を選んでください。「表示形式」タブをクリックして、「分類」から「日付」を選んでください。 B2セルの日付の表示形式を、次のようにして、変更してください。 -B2セルを右クリックし、「セルの書式設定」を選択 -「表示形式」タブをクリック -「分類」から「日付」を選択 -「種類」から表示形式を選択 -「OK」ボタンをクリック #ref(ex01.png,nolink,日付/時刻の表示形式) コンピュータでの日付や時刻の入力・出力(表示)のしかたには、いろんな種類があります。 和暦か西暦など、次のようなさまざまな入出力のしかたがあります。 -2003/12/3, 2003/12/03 -2003-12-3, 2003-12-03 -12/3/03, 12/03/03 -2004/12/3, 2004/12/03 -2004-12-3, 2004-12-03 -12/3/04, 12/03/04 B2セルの表示形式を「2003/12/3」以外の表示形式にして下さい。 B2セルの表示形式を「2004/12/22」以外の表示形式にして下さい。 B3セルも表示形式を変更してください。「分類」に「時刻」を選び、午前(AM)午後(PM)がわかる表示形式にしてください。 ***シリアル値 [#i6b1d625] C2とC3セルの表示形式を変更して、シリアル値がわかるようにしてください。 [[前回>../9th]]と同じように、表示形式を「標準」か「数値」にします。 シリアル値を表示するには、次のようにします。 -セルを右クリックし、「セルの書式設定」を選択 -「表示形式」タブをクリック -「分類」から「標準」か「数値」を選択 -「OK」ボタンをクリック シリアル値とは、''「1900年1月1日12:00:00からの日数や時間」''のことで、「285.5736881」のような数字であらわします。数字にはそれぞれ意味があります。 -整数部分(小数点から左)は、''日数''をあらわします。 -小数部分(小数点から右)は、''時間(秒)''をあらわします。 24時間を1としますので、1時間は1/24(約0.042)、1分は1/24/60(約0.00069)となります。 さきほどの「285.5736881」は、「285日と13時間46分7秒」となるわけです。 ***誕生日までの日数と時間の計算 [#w96ccb27] シリアル値の意味を理解して、 **誕生日までの日数と時間の計算 [#w96ccb27] シリアル値の意味を理解したら、 現在の時刻から、次の自分の誕生日までの時間を計算しましょう。 B6セルに自分の誕生日の日付と(もしわかれば)時刻を次のように入力してください。 2004/7/12 00:00:00 表示形式は、「2004/7/12 12:00 AM」という形式にしてください。 B5セルに、来年の自分の誕生日の日付と(もしわかれば)時刻を次のように入力してください。 2005/7/12 00:00:00 表示形式は、「2005/7/12 12:00 AM」という形式にしてください。 **誕生日までの日数と時間のシリアル値 [#xe33c90e] まず誕生日までの日数と時間のシリアル値を求めます [[前回>../9th]]と同じように、誕生日の日付から現在の日付を引けば、日数や時間が求められます。 B7セルにはB2セル(TODAY関数でもとめた現在の日付)との差を、 B8セルにはB3セル(NOW関数でもとめた現在の日付)との差を計算して、表示形式を「標準」か「数値」にして、シリアル値を求めてください。 誕生日の日付から現在の日付を引けば、日数や時間が求められます。 次のように、計算式を入力してください。 -B6セル: B2セル(TODAY関数でもとめた現在の日付)との差は、 <pre> =COLOR(red):来年の誕生日の日付COLOR(black):-COLOR(blue):現在の日付(TODAY関数で求めた日付) </pre> と考えられるので、計算式は次のようになる <pre> =COLOR(red):B5COLOR(black):-COLOR(blue):B2 </pre> -B7セル: B3セル(NOW関数でもとめた現在の日付)との差は、 <pre> =COLOR(red):来年の誕生日の日付COLOR(black):-COLOR(blue):現在の日付(NOW関数で求めた日付) </pre> と考えられるので、計算式を入力する(自分で考えてみましょう) -B6とB7セルの表示形式を「標準」か「数値」にして、シリアル値を表示 B8セルの計算結果から、具体的な日数や時間を求めていきます。 まず、B8セルから整数部分を取り出します。 [[第7回>../7th]]に''ROUND''関数を使って小数点以下を四捨五入しましたが、今度は小数点以下は切り捨てるので、''INT''関数を使います。 -''INT''(指定した数値を0に近い整数に丸めた値を返す) --書式 : DATE(数値) **誕生日までの時間の表示 [#b6d73477] B7セルの計算結果から、具体的な日数や時間を求めていきます。 まず、B7セルから日数(整数部分)を取り出します。 [[第9回>Lecture/InfoPrac2004/9th/kojin_seiseki#g6924465]]に ''ROUND''関数を使って小数点以下を四捨五入しましたが、 今度は小数点以下は切り捨てるので、''INT''関数を使います。 :INT(指定した数値を0に近い整数に丸めた値を返す)| --書式 : INT(数値) --引数 : 数値 : 実数 --例: A5セルの数値の整数部分を取り出す <pre> =INT(A5) </pre> +B9セルをクリックしてアクティブにします。 +「関数の挿入」ボタンをクリックします。 +利用する関数を選びます。~ 利用したい関数の分類を選んだあと、関数名を選びます。「関数の分類」から「''数学/三角''」か「すべて表示」を選び、「関数名」から「''INT''」を選びます。「OK」ボタンをクリックします。 +次に、関数に与える引数を設定します。 ++「数値」の入力欄をクリックします。 ++B8のセルをクリックします。「数値」に「B8」と設定されます。 ++「OK」ボタンをクリックします。 次のように、操作してください。 +B8セルをクリック +「関数の挿入」ボタンをクリック +関数の選択 --「関数の分類」から「''数学/三角''」か「すべて表示」を選択 --「関数名」から「''INT''」を選択 --「OK」ボタンをクリック +引数の設定 --「数値」の入力欄をクリック --B7のセルをクリック(「数値」に「B7」と設定される) --「OK」ボタンをクリック もし、整数でなく日付で表示される場合は、表示形式を「標準」か「数値」に変更してください。 もし、整数でなく日付で表示される場合は、 表示形式を「標準」か「数値」に変更してください。 次に、B8セルから時間と分と秒を取り出します。 次に、B7セルから時間と分と秒を取り出します。 それぞれ、''HOUR関数''、''MINUTE関数''、''SECOND関数''を使います。 -''HOUR''(時刻の時を0(午前0時)〜23(午後11時)の範囲の整数で返す) :HOUR(時刻の時を0(午前0時)〜23(午後11時)の範囲の整数で返す)| --書式 : HOUR(シリアル値) --引数 : シリアル値 : 検索する時刻のシリアル値 -''MINUTE''(時刻の分を0(分)〜59(分)の範囲の整数で返す) :MINUTE(時刻の分を0(分)〜59(分)の範囲の整数で返す)| --書式 : MINUTE(シリアル値) --引数 : シリアル値 : 検索する時刻のシリアル値 -''SECOND''(時刻の秒を0(秒)〜59(秒)の範囲の整数で返す) :SECOND(時刻の秒を0(秒)〜59(秒)の範囲の整数で返す)| --書式 : SECOND(シリアル値) --引数 : シリアル値 : 検索する時刻のシリアル値 +B10セルをクリックしてアクティブにします。 +「関数の挿入」ボタンをクリックします。 +利用する関数を選びます。~ 利用したい関数の分類を選んだあと、関数名を選びます。「関数の分類」から「''日付/時刻''」か「すべて表示」を選び、「関数名」から「''HOUR''」を選びます。「OK」ボタンをクリックします。 +次に、関数に与える引数を設定します。 ++「数値」の入力欄をクリックします。 ++B8のセルをクリックします。「数値」に「B8」と設定されます。 ++「OK」ボタンをクリックします。 +B9セルをクリック +「関数の挿入」ボタンをクリック +関数の選択 --「関数の分類」から「''日付/時刻''」を選択 --「関数名」から「''HOUR''」を選択 --「OK」ボタンをクリック +引数の設定 --「数値」の入力欄をクリック --B7のセルをクリック(「数値」に「B7」と設定される) --「OK」ボタンをクリック 同じようにして、B11セルに分を、B12セルに秒を計算してください。 もし、整数でなく日付で表示される場合は、表示形式を「標準」か「数値」に変更してください。 同じようにして、B10セルに分を、B11セルに秒を計算してください。 もし、整数でなく日付で表示される場合は、 表示形式を「標準」か「数値」に変更してください。 **文字列の操作 [#ibbf6f4a] ***&を使った文字列の結合 [#c1fd901b] A14,B14,C14の3つのセルを結合してしてください。[[第3回>../3rd]]でやったように、「セルを結合して中央揃え」ボタンを使います。 できたら、A15,B15,C15の3つのセルも結合しましょう。 次に、誕生日までの残り時間を表示してみましょう。 そこで、 結合されているA14〜C14セルに、 「あと○日と○時間○分○秒」と表示されるようにしましょう。 結合したそれぞれのセルに「誕生日まで、あと○日」や「誕生日まで、あと○日と○時間○分○秒」と表示されるようにしましょう。 文字列やセルの値をつなげて、新しい文字列にするには記号の「&」を使います。 文字列やセルの値をつなげて、 ひとつの文字列にするには''「&」記号''を使います。 たとえば、次のような計算式の結果は「AAABBBCCC」となります。 文字列は「"」(ダブルクォーテーション)で囲っていることに注意してください。 = "AAA" & "BBB" & "CCC" また、A1セルの内容が「木曜日」の場合、次の計算式の結果は「明日は、木曜日です」となります。 = "明日は、" & A1 & "です" では、結合したA14〜C14セルに文字列を設定してみましょう。次のように設定します。 +A14セルをクリックして、アクティブにする。 +次の計算式を入力する = "誕生日まで、あと" & B7 & "日" +Enterキーを押すと、結果が表示されます。 では、結合したA14〜C14セルに文字列を設定してみましょう。 次のように設定します。 +A14セルをクリック +次の計算式を入力 ="あと"&B8&"日と"&B9&"時間"&B10&"分"&B11&"秒" +Enterキーを押すと、結果が表示 ***関数を使った文字列の結合 [#x1e19b55] 次に、A15〜C15セルに「誕生日まで、あと○日と○時間○分○秒」と表示されるように、計算式を入力します。「&」記号を使った場合は、 ="誕生日まで、あと"&B9&"日と"&B10&"時間"&B11&"分"&B12&"秒" となりますが、入力がかなりややこしくなります。 計算結果は、[F9]キーを押すと、最新の結果に更新されます。 [F9]キーを押しっぱなしにすると、秒や分の数字が変わるのが確認できます。 そこで、文字列やセルを結合する、''CONCATENATE''関数を使うことにします。 -''CONCATENATE''(複数の文字列を結合して、ひとつの文字列にまとめる) --書式 : CONCATENATE(文字列1, 文字列2, ...) --引数 : 文字列1, 文字列2 : まとめたい文字列やセルの値(30個まで) #ref(ex02.png,nolink,計算の例) +A15セルをクリックしてアクティブにします。 +「関数の挿入」ボタンをクリックします。 +利用する関数を選びます。~ 利用したい関数の分類を選んだあと、関数名を選びます。「関数の分類」から「''文字列操作''」か「すべて表示」を選び、「関数名」から「''CONCATENATE''」を選びます。「OK」ボタンをクリックします。 +次に、関数に与える引数を設定します。 ++「文字列1」に「誕生日まで、あと」と入力します。 ++「文字列2」の入力欄をクリックした後、B9セルをクリックします。 ++「文字列3」に「日と」と入力します。 ++「文字列4」の入力欄をクリックした後、B10セルをクリックします。 ++「文字列5」に「時間」と入力します。 ++「文字列6」の入力欄をクリックした後、B11セルをクリックします。 ++「文字列7」に「分」と入力します。 ++「文字列8」の入力欄をクリックした後、B12セルをクリックします。 ++「文字列9」に「秒」と入力します。 ++「OK」ボタンをクリックします。 途中からスクロールしないと文字列が入力できなくなるので注意してください。 #ref(excel01.png,nolink) 計算結果は、[F9]キーを押すと、最新の結果に更新されます。 [F9]キーを押しっぱなしにすると、秒や分の数字が変わるのが確認できます。 #ref(excel00.png,nolink) 最後に、罫線や塗りつぶし、フォントなどを設定して、見映えをよくしてください。 &br; &navi2(Lecture/InfoPrac2004/10th,next);進んでください。 ---- #navi2(Lecture/InfoPrac2004/10th,prev,toc,next) ここまでできたら、[[課題の説明>../10thExercise]]にすすんでください。 |