dポイントプレゼントキャンペーン実施中!

Jun Jul Aug などのの月を示す3文字短縮形の文字列を06 07 08などmm形式に変換する関数はないでしょうか?

A 回答 (4件)

>小生のExcelSheetのAカラムに次のようなものが入っており


>-->に変換したいというものです。
>Oct 18 2011 ---> 201110
>Nov 8 2011 -----> 201111


 つまり、御質問文にある様な、

>Jun Jul Aug などのの月を示す3文字短縮形の文字列

が入っている訳ではないのですね?
 それでしたら、出力先のセルの書式設定を[ユーザー定義]の

yyyymm

とされた上で、次の関数を入力して下さい。(別Sheetは必要ありません)

=IF(ISNUMBER((MID($A1,5,2)&" "&LEFT($A1,3)&" "&RIGHT($A1,4))+0),(MID($A1,5,2)&" "&LEFT($A1,3)&" "&RIGHT($A1,4))+0,"")

 尚、元データをシリアル値に変換するのではなく、あくまでも"201110"の様な文字列に変換したいという事でしたら、次の様な関数として下さい。

=IF(ISNUMBER(("1 "&LEFT($A1,3)&" "&RIGHT($A1,4))+0),TEXT("1 "&LEFT($A1,3)&" "&RIGHT($A1,4),"yyyymm"),"")

 または、シリアル値や文字列ではなく201110の様な6桁の数値データに変換したいという事でしたら、次の様な関数として下さい。

=IF(ISNUMBER(("1 "&LEFT($A1,3)&" "&RIGHT($A1,4))+0),TEXT("1 "&LEFT($A1,3)&" "&RIGHT($A1,4),"yyyymm")+0,"")
    • good
    • 0
この回答へのお礼

これです! 末尾の関数をExcelのSheetにコピペして数行コピーしたところ、
A1フィールドにあるJul 05 2012 が B1フィールドで201207 となりました。yyyymmdd(今回の場合はyyyymm)を定義すればいいということですね。
関数の内容は後ほどじっくり読んで理解させていただきます(まだ良く読んで理解するところまでいっていないので。。)が、まずはうまく変換できたことをお知らせいたします。
"Jul 05 2012"とはもともと或海外システムデータをテキスト化したものの、支払日に相当するものです。これを年月に変換していろいろと分析するためのものでした。システムによって日付が区々なので、今回の場合は(グレゴリオというのかな)月の部分が三文字の英文になっているものでした。日本人感覚では yyyy/mm/ddやyyyymmddなど年月日(数値)で捕らえたいというのが一般的かと小生は思っておりますが。。。
ありがとうございました。

お礼日時:2012/08/04 17:46

回答No2です。


masterシートのA列に入力されているデータがJun01,Jul01などと入力されている場合にJunを01、Julを02などにするにはVLOOKUP関数を使って対応するのがよいでしょう。
masterシートの例えばC1セルにAprと入力してC12セルまでドラッグしてDecまでオートフィルします。
D1セルには1から下方に12までの数値を並べます。
A1セルにJun01と入力されているとしたら単に6を表示させるだけでしたら
=VLOOKUP(LEFT(A1,3),C:D,2,FALSE)
もしも2012/06/01のように日付として表示させるのでしたら
=("2012/"&VLOOKUP(LEFT(A2,3),C:D,2,FALSE)&"/"&RIGHT(A2,2))*1
を入力してセルの表示形式を yyyy/mm/dd のようにすればよいでしょう。
    • good
    • 0

masterシートにはA列にJan01,Feb02,Oct18,Nov08などの文字列が入力されており、B列にはそれに対応したデータが入力されているとします。


別のシートではA1セルから下方に
Oct 18 2011、Nov 8 2011などので日付のデータが並んでいるとします。
B列にmasterシートからのデータを表示させるとしたら次の式をB1セルに入力し下方にドラッグコピーすればよいでしょう。

=IF(COUNTIF(master!A:A,TEXT(A1,"mmmdd"))=0,"",VLOOKUP(TEXT(A1,"mmmdd"),master!A:B,2,FALSE))

ご質問ではmaterシートのA列のデータを変換したいとのことでしょうか?上記の対応でもよいと思いますが。
    • good
    • 0

 今仮に、Jun Jul Aug などのの月を示す3文字短縮形の文字列が、例えばA1セルに入力されているものとしますと、次の様な関数は如何でしょうか?



=IF(ISNUMBER(TEXT(A1&"-1","mm")+0),TEXT(A1&"-1","mm"),"")
    • good
    • 0
この回答へのお礼

ありがとうございます。
そのものずばりの関数はないようですね。
小生のExcelSheetのAカラムに次のようなものが入っており
-->に変換したいというものです。
Oct 18 2011 ---> 201110
Nov 8 2011 -----> 201111
現状ではさらに別Sheetにmasterを作成し、Vlookupをつかってます。
Mater sheet (01 02は文字列にしてます)
Jan01
Feb02
Mar03
Apr04

=RIGHT(A106,4) & VLOOKUP(LEFT(A106,3),master!$A$1:$B$11,2,FALSE)

このmaster方式に該当するようなたとえばgregorio関数なんかがないかなというつもりなのですが、どうもないようですね。

お礼日時:2012/08/04 08:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!