[[20140721153147]] 『4月から6月なら「第一期」と表示させるには?』(かあさん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『4月から6月なら「第一期」と表示させるには?』(かあさん)

会社で、4月から6月は第1期、7月から9月は第2期、10月から12月は第3期、1月から3月は第4期と決められています。
そこで、

A1に「2014.4、2014.5、2014.6」ならA2に「第1期」というように表示させたいのです。

IF関数を使うのだと思うのですが、年月で入れてみてもうまくいきませんでした。

どなたかご享受願います。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 A1の値は文字列ですか?それとも日付データですか?
(カリーニン) 2014/07/21(月) 15:50

 これかな?

[[20060808114627]] 『日付の表示』(やくりん)
(カリーニン) 2014/07/21(月) 15:52


カリーニンさんありがとうございます。

正式には「14.04、14.05・・・」と文字列で入力します。

日付データではありません。

よろしくお願いいたします。

(かあさん) 2014/07/21(月) 15:57


 確認なのですが、A1は↓のどちらですか?

 2014.04
 2014.4
 14.4
 14.04
(カリーニン) 2014/07/21(月) 16:03

カリーニンさん

14.04

です。
(かあさん) 2014/07/21(月) 16:09


 先ほどのリンク先のROUGEさんの式をお借りしてこんなかんじでいかがでしょう?

 =IF(A1="","","第"&MID("444111222333",MONTH(DATEVALUE(SUBSTITUTE(A1,".","/")&"/1")),1)&"期")
(カリーニン) 2014/07/21(月) 16:13

 これでもいけますね。

 =IF(A1="","","第"&MID("444111222333",RIGHT(A1,LEN(A1)-FIND(".",A1,1)),1)&"期")
(カリーニン) 2014/07/21(月) 16:17

カリーニンさん、ありがとうございます。
じつは、友人から頼まれて投稿していたのですが、
詳細に違うところがあったので、改めて質問です。

A1に14.04とあったら、64?T(64期の第1期)という表示方法をするそうなのです。
また、15.04ならば、65?T(65期の第1期)という具合です。
これもIF関数で可能でしょうか?

VLOOKUPでできるかやってみたのですがうまくいきませんでした。
何度も申し訳ありません。

(かあさん) 2014/07/21(月) 17:33


 >=IF(A1="","","第"&MID("444111222333",RIGHT(A1,LEN(A1)-FIND(".",A1,1)),1)&"期")

 この式の中にある

 FIND
 の意味をヘルプで調べてみてください。
 この式の意味がわかると、元のデータ「14.04」から「14」と「04」に分けられると思います。
 あとは「14」の方に必要なだけ数値を足したもの(期)と「第○期」をつなげるだけです。

 ※暦年と年度が違う部分(1〜3月)についてはご自分でお考えください。そんなに難しくないです。
(カリーニン) 2014/07/21(月) 17:48

 いろいろなやり方があると思いますが、

 >VLOOKUPでできるかやってみたのですがうまくいきませんでした。
 は何がダメだったのでしょうか。

 下記の表があれば(C列は数字か文字か、入力と形式を合せてください)、
 =VLOOKUP(A1,C1:D12,2,FALSE)
 というのも有りだと思います(丸文字は文字化けするので(数字)にしました)。

  C      D
 14.01  64(4)
 14.02  64(4)
 14.03  64(4)
 14.04  65(1)
 14.05  65(1)
 14.06  65(1)
 14.07  65(2)
 14.08  65(2)
 14.09  65(2)
 14.10  65(3)
 14.11  65(3)
 14.12  65(3)
(Mook) 2014/07/21(月) 18:18

 10月は「14.10」ていう文字列なんだよね?

 =INT(A1)+50-(RIGHT(A1,2)<"04")&-MID("444111222333",RIGHT(A1,2),1)

 どんな表示にしたいのかわからないので、とりあえず「64-1」のようにしてみた。
(笑) 2014/07/21(月) 18:35

 VLOOKUPでやるんだったら、対応表は 1月、4月、7月、10月だけで
 検索の型をTRUEにすればいいかも。
(笑) 2014/07/21(月) 18:51

 こんな感じかな
 =LOOKUP(RIGHT(A1,2)*1,{1,4,7,10},{4,1,2,3})

(By) 2014/07/21(月) 21:07


 > こんな感じかな
 > =LOOKUP(RIGHT(A1,2)*1,{1,4,7,10},{4,1,2,3})
 >(By) 2014/07/21(月) 21:07

 これで質問の回答したつもりなのかな?
(笑) 2014/07/21(月) 22:25

 =INT((A1*100-4)/100)+50&MID("4123",(MOD(A1*100,100)-1)/3+1,1)

 ※MID関数にある「4123」は実際は丸囲み数値で。
 
(GobGob) 2014/07/23(水) 07:53

 丸囲みでなくていいなら

 =INT((A1*100-4)/100)+50&-INT(MOD(MOD(A1*100,100)-4,12)/3)-1
 
(GobGob) 2014/07/23(水) 08:11

 前回の回答と同じことですが こんな感じかな 
 =INT(A1-0.04+50)&"-"&LOOKUP(RIGHT(A1,2)*1,{1,4,7,10},{4,1,2,3})
 {4,1,2,3} は実際の記号にして下さい

 記号ではなく普通の数字で良ければ
 =INT(A1-0.04+50)&-INT(MOD((RIGHT(A1,2)-4)/3,4))-1

(By) 2014/07/23(水) 09:23


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.