• 締切済み

エクセルでの検索

教えてください 検索で 日付 2011年3月1日から2011年3月14日までを 1を表示し 2011年3月15日から2011年3月20日までを 2を表示 2011年3月1日から2011年3月30日までを 3と表示する 関数ありますか? 教えてください

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

ご質問の内容は多少間違っていると思われますのでこちらで勝手に解釈して式にすれば次のようになるでしょう。 A1セルから下方に日付があるとしたら」A1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AND(A1>="2011/3/1"*1,A1<="2011/3/14"*1),1,IF(AND(A1>="2011/3/15"*1,A1<="2011/3/20"*1),2,IF(AND(A1>="2011/3/21"*1,A1<="2011/3/31"*1),3,""))) 日付の範囲を決めるにはAND関数を使いますし、日付を"2011/3/1"のように入力する場合にはそれをシリアル値に変換するために*1を使っています。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

ご質問に忠実に: =IF(OR(A1-"2011/3/1"<0,0<A1-"2011/3/30"),"",MATCH(DAY(A1),{1,15,21},1)) などで。 #31日が範囲外なのは,イミがあるのか単なる勘違い誤記なのか??

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

区間3つぐらいはまでなら、IF関数と、AND関数でやる手もある。 しかし区分が多くなるとVLOOKUP関数、TRUE型の問題。 下記例データは質問と違う勝手な範囲にしているから、自分で修正して。 例データ A列  B列(=コード)下記では右端の1桁 A2以下データ 2010/2/3 1 2010/2/5 1 2010/2/7 1 2010/2/9 1 2010/2/11 1 2010/2/13 1 2010/2/15 2 2010/2/17 2 2010/2/19 2 2010/2/21 2 2010/2/23 2 2010/2/25 3 2010/2/27 3 2010/3/1 4 2010/3/3 4 2010/3/5 4 2010/3/7 4 2010/3/9 4 2010/3/11 5 2010/3/13 5 2010/3/15 5 2010/3/17 5 検索表を何処でも良いがD1:E5に 2010/2/1 1 2010/2/15 2 2010/2/25 3 2010/3/1 4 2010/3/10 5 作っておく。 ーーー 区間の見方 x(含む)からyの前までなら、Aをセット X---> A ↑ Y  B2セルに =VLOOKUP(A2,$D$1:$E$5,2,TRUE) ーーー これが出来るのは、日付はエクセルシートでは、日付シリアル値という正整数なのだから、正整数で区切る範囲にコードを振るのと同じなのだ。 (1から5までは1、6から10目では2、11-15までは3・・と同じ) 文字列で日付を入れていると、このようにはできない。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! No.1さんが仰っているように条件3が条件1・条件2と重複する日付がありますが、 たぶん3月21日~3月30日までだとして・・・ (31日は無視でよいのでしょうか?) 一例です。日付はすべてシリアル値で入っているものとします。 ↓の画像のように区切りたい日付を表にしておきます。 実際は薄い緑色の列だけで良いのですが、判りやすくするために未満の列も作っています。 B2セルに =IF(A2="","",VLOOKUP(A2,$D$2:$F$4,3,1)) という数式を入れオートフィルで下へコピーすると画像のような感じになります。 的外れならごめんなさいね。m(__)m

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

ご例示の条件では難しい(3を表示する条件が他の条件と重複している)、入力条件等が不明ですがVLOOKUP関数でご検討下さい。

関連するQ&A