文書番号: 402835
最終更新日: 1998/03/06
この資料は以下の製品について記述したものです。
- Microsoft(R) Excel for Windows(R) Version 5.0 (以下 Excel 5.0)
この記事は、以前は次の ID で公開されていました: JP402835
概要
Excel で入力された日付は内部でシリアル値に変換され管理されます。日付に対応
するシリアル値は、日付を入力したときの日付システムによって異なりますが、
1900 年システムでは、シリアル値 1 は 1900 年 1 月 1 日に対応し、シリアル
値 2 は 1900 年 1 月 2 日に対応します。(Windows 版 Excel では標準で 1900 年
システムを使用しています。)この仕組みをよく理解しておかなければ、日付に
複雑な検索条件を設定して、リストデータから必要なレコードを抽出することが
できません。
本文書では、日付関数などを用いて日付に対して複雑な検索条件を設定してリスト
データを抽出する方法を解説します。
詳細
下の図のサンプルデータを元にして具体的な例を説明します。(紙面の都合で
リスト全体を表示できませんが、120 件のレコードを含むリストになっています。)
![[GRAPHIC: ]](JP402835A.gif)
抽出方法の例
-
過去 100 日間のレコードを抽出。
-
過去1年間のレコードのみを抽出。
-
6 月か 12 月のレコードを抽出。
-
先月のレコードを抽出。
-
毎月1日のレコードを抽出。
-
偶数(奇数)月のレコードを抽出。
-
4 月 8 月 9 月以外のレコードを抽出。
-
前年同月のレコードを抽出。
-
土曜日・日曜日のデータを抽出。
-
95年4 月から 95年5 月までのレコードを抽出。
-
ある基準日から 2 ヶ月先の月末までのレコードを抽出。
抽出条件の入力方法
ケース1 過去 100 日間のレコードを抽出
TODAY 関数は常にコンピュータのシステム時計から現在の日付に対応するシリ
アル値を返します。過去 100 日間ということは、現在のシリアル値よりも 100
小さい値の日付以上ということになります。
下の例は、リストに入力されているレコードには未来の日付はないものとして
条件設定されていますが、もしも未来のデータも入力されているとすれば、現
在のシリアル値-100 以上、現在のシリアル値以下という条件設定をしなけれ
ばなりません。
![[GRAPHIC: ]](JP402835B.gif)
ケース2 過去1年間のレコードを抽出
EDATE 関数は基準の日付から起算し、指定した月だけ前あるいは後の日付に
対応するシリアル値を計算します。過去1年間ということは現在のシリアル値
を基準の日付として 12 ヶ月前のシリアル値より大きいということになりま
す。下の例も、ケース1と同様に未来のデータも入力されているとすれば、
12 ヶ月前のシリアル値より大きく、現在のシリアル値以下という条件設定を
しなければなりません。
![[GRAPHIC: ]](JP402835C.gif)
ケース3 6月か12月のレコードを抽出
MONTH 関数はシリアル値に対応する月を表す数値を計算します。6月か12月と
いうことは、この MONTH 関数のリターン値が6、もしくは12ということになりま
す。
![[GRAPHIC: ]](JP402835D.gif)
ケース4 先月のレコードを抽出
EOMONTH 関数は基準の日から起算して、指定した月だけ前あるいは後の月の最終日
に対応するシリアル値を計算します。先月のデータということは、現在のシリアル
値を基準として、マイナス1ヶ月と同じ年度で、なおかつ現在のシリアル値を基
準として、マイナス1ヶ月と同じ月度ということになります。
![[GRAPHIC: ]](JP402835E.gif)
ケース5 各月一日のレコードを抽出
DAY 関数はシリアル値に対応する日を表す数値を計算します。各月の一日とい
うことは、DAY 関数のリターン値が1ということになります。
![[GRAPHIC: ]](JP402835F.gif)
ケース6 偶数 (奇数) 月のレコードを抽出
MOD 関数は数値を除数で割った時の余剰を計算します。月を2で割った時の余剰
が0であれば偶数月、余剰が1であれば奇数月ということになります。
![[GRAPHIC: ]](JP402835G.gif)
ケース7 4月・8月・9月以外のレコードを抽出
4月・8月・9月以外ということは、MONTH 関数のリターン値が、4ではなく、
なおかつ8でもなく、9でもないということになります。
![[GRAPHIC: ]](JP402835H.gif)
ケース8 前年同月のレコードを抽出
前年同月ということは、現在の日付に対応する年度より1年少なくて、なお
かつ現在の日付に対応する月度と同じということになります。
![[GRAPHIC: ]](JP402835I.gif)
ケース9 土曜日・日曜日のレコードを抽出
WEEKDAY 関数は、シリアル値から曜日を表す数値< 1 (日曜) ~ 7 (土曜) の
範囲の整数>を計算します。土曜日か日曜日ということは、WEEKDAY 関数の
リターン値が7か、もしくは1ということになります。
なお、日付の表示形式を yy/m/d から aaaa に変更すると曜日が表示され、
正しく抽出されているかが一目で確認できます。
![[GRAPHIC: ]](JP402835J.gif)
ケース10 95年4 月から 95年5 月までのレコードを抽出
95年4 月から 95年5 月までということは、95年4 月1日のシリアル値以上で
なおかつ 95年6 月 1 日のシリアル値未満ということになります。
![[GRAPHIC: ]](JP402835K.gif)
ケース11 ある基準日から2ヶ月先の月末までのレコードを抽出
F2 のセルに入力された基準日(下右図のサンプルでは、1994/3/18 が基準日)
のシリアル値以上で、なおかつ、EOMONTH 関数で求めることのできる2ヶ月
先の月の最終日に対応するシリアル値以下のということになります。この場
合の注意点は、基準日が入力されているセル (サンプルでは F2 のセル)
を絶対参照にしなくては正しい答を求めることはできません。
![[GRAPHIC: ]](JP402835L.gif)
備考
-
このサンプルでは、現在の日付が 95/7/28 の場合の抽出結果を表示しています。
-
これら検索条件のサンプルは一例を挙げたにすぎません。同じ抽出結果を得るた
めの条件は、他にも何通りも考えられます。
-
各関数についての詳細は、オンラインヘルプを参照ください。
ここでは計算検索条件を使った条件設定を行っています。計算検索条件に
ついての詳細は「ユーザーズガイド」 428 ページ「検索条件範囲に計算検
索条件を入力する」を参照してください。
Keywords: KBHOWTO KB402835
Technology: kbExcel500 kbExcelSearch kbExcelWinSearch