• ベストアンサー

emmdd表記をyymmdd表記の文字列にするには

ご覧いただきありがとうございます。 エクセルのデータに 20721 (令和2年7月21日の意) と数値のみ記入してあり、こちらを数式かマクロを用いて 200721 (yymmdd) に変換したいです。 どの様に表記すればできるのでしょうか?

質問者が選んだベストアンサー

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

すでに回答は出ていますが (1)表示形式の設定ができるのは(関数では無理)で、VBAで行う (2)VBAを用いて、セルの値を、一旦、日付シリアル値に変換し (3)そのセルの表示形式を適当なものに設定する。 (4)もし、セルの値を、文字列にしたい場合は、VBAのFormat関数で望みのものにする。 が常道ではないかと思います。この2段ステップを踏まないと、折角のエクセル の日付の表示システムの、有難味が使えないし、自己流では、色んなケースを考えたとき、誤るかもしれない。 ーーー データが、セルA2での例。 Sub test02() i = 2 s = Cells(i, "A") If Len(s) = 6 Then s = "R" & s If Len(s) = 5 Then s = "R" & "0" & s MsgBox s s = Mid(s, 1, 3) & "/" & Mid(s, 4, 2) & "/" & Mid(s, 6, 2) Cells(i, "B") = DateValue(s) Cells(i, "B").NumberFormatLocal = "yymmdd" End Sub == 他に Sub test03() i = 2 s = Cells(i, "A") If Len(s) = 6 Then s = "R" & s If Len(s) = 5 Then s = "R" & "0" & s MsgBox s s = Mid(s, 1, 3) & " " & Mid(s, 4, 2) & " " & Mid(s, 6, 2) Cells(i, "B") = DateValue(s) Cells(i, "B").NumberFormatLocal = "yymmdd" End Sub Sub test04() i = 2 s = Cells(i, "A") If Len(s) = 6 Then s = "令和" & s If Len(s) = 5 Then s = "令和" & s MsgBox s s = Mid(s, 1, 3) & "/" & Mid(s, 4, 2) & "/" & Mid(s, 6, 2) Cells(i, "B") = DateValue(s) Cells(i, "B").NumberFormatLocal = "yymmdd" End Sub でもOKのようだ。

konrar51
質問者

お礼

imogasi さま ご回答および留意すべき点をご教示頂きありがとうございます。 当方 yy/mm/dd かyymmdd の書式を多用しておりますので、 test03 と test04 を教えて頂き本当に助かりました。 令和10年以降にも対応できる点、日付シリアル値を生成できる点 からベストアンサーとさせて頂きます。 ありがとうございました。

その他の回答 (2)

  • Mathmi
  • ベストアンサー率46% (54/115)
回答No.2

まず、数式ではセルの書式を変更できません。 入力されているデータが5桁だと決まっているなら、次の数式で日付型に変換できます。 =DATEVALUE(CONCATENATE("令和",MID(A1,1,1),"年",MID(A1,2,2),"月",MID(A1,4,2),"日")) セルの書式は手動で変更して下さい。 令和と昭和が混在していたりするならば、ifで条件分けする必要があるでしょう。

konrar51
質問者

お礼

Mathmiさま 無事組み込みできました!! ありがとうございます♪

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.1

双方数字ならA1+180000

konrar51
質問者

お礼

maiko04 さま そんな方法があるとは...! 汎用性高いですね、ありがとうございます!

関連するQ&A

  • 文字列のセルを数値変換できますか?

    エクセル初心者です。 別のHP等から拾った数値をエクセルに貼っつけて、簡単なデータ計算をしています。 その際拾ったままだと「123円」と「円」がついて文字列になってしまいます。 そのままだと計算できないのです。 「円」だけとって数値変換か、 もしくは、そのまま数値変換してなんとか計算できるような 数式、方法を教えていただけませんでしょうか? どなたか教えてください。

  • 文字列変換

    添付図をご覧ください。 範囲 A1:B6 に英語の人名が入力されています、。 セル A7 に式 =SUBSTITUTE(A1," ","") を入力して、此れを右および下方にオートフィルしたものを範囲 A7:B12 に示しています。 此処で質問ですが、最初に下表に示すスペースなしの文字列データがあった場合、此れを上表に示すデータに変換する数式を教えてください。 マクロ音痴の私のために、どうか数式でお願いします。 数式が短くなるなら、配列数式でも構いませんが、補助列(行)等を使用しないことを希望いたします。

  • 【Excelマクロ】 文字列から日付型へ変換したい

    AccessデータをExcelへ貼り付ける際、Access側の書式設定がyyyy/mm/ddでしたらExcelでも日付型として認識してくれますが、yyyy/mm/dd(aaa)と曜日を表記したデータはセルの書式を日付型にしても文字列として貼り付けられてしまいます。 ExcelのDATEVALUE関数を使用すれば日付型へ変換できるのは存じていますが、列/行を挿入することができません。 日付型へ変換できるマクロはありませんか? 変換したいセル番地は都度変動しますので、変換したいセル(複数列/行)を選択した状態からマクロを実行したいです。

  • Accessで2019年5月9日の自動表記をしたい

    アクセスで工程を管理しています。 デザインビューで、 フィールド名:施工日、データ型:日付/時刻型にすると、 施工日に、5/9と入力すると、平成31年5月9日(木)と表記されます。 ここの「平成」を「令和」に変えたいのですが、難しそうなので、 5/9と入力して、2019年5月9日(木)と表記させたいのですが、どうすればよいでしょうか?ご協力お願いします。

  • 文字列の計算について。。。

    Excelでなのですが、外部データの取り込みをしました。 その時に、文字列で取り込んだ数値を計算したいのですが、 うまく出来ません。 セルの書式設定で数値にしたのですが、計算出来ません。 関数を使って数値に変換すると出来たのですが、 50枚シートがあるものが10ブックあります。 計算したい列もそれぞれのシートでばらばらなので困ってます。 簡単に出来る方法はないでしょうか?

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • ACCESSのデータをEXCELに貼り付けると文字列になってしまう

    仕事でアクセス2000を使ってデータを抽出し、エクセルに貼り付けて 数字を集計する作業があります。 アクセスからエクセルに貼り付けた数値をΣを使って集計しようとしたのですが、数字が文字列として認識されているため、 その都度数値に変換しなければなりません。 アクセスのデータをエクセルに貼り付けた時に、数値として認識させる設定はどのようにしたら良いのでしょうか? OFFICE2003, WINDOWS XPで作業しています。 よろしくお願いします。

  • エクセルで、文字列から文字を取り出す自動マクロを教えてください。

    住所の入った、エクセルのファイルを頂くのですが、C2せるから、C50程度のセルまでに 「〒123-4567兵庫県○○市○○3-4-5」と 一つのセルに入っています。 これをマクロで、C列の前に、一列挿入して、自動的に、〒番号の部分を切り取って、貼り付けるという 操作を、マクロでくみたいのです。 データは毎週貰うのですが、件数は5件~50件程度までと幅はあります。データは2行目から連続して並んでいます。「列を挿入して」「LEFT関数で取り出すという関数をC2に入力」「数式をデータが終わるところまでコピー」「元のデータから〒番号を消去」というマクロを組みたいのです。お手数ですが、初心者にでも分かるようにマクロを教えて頂けませんでしょうか?

  • 【Exc】ピポットテーブル上で年号や月日を表記する

    ピポットテーブルの表を作成するために、フィールドでは「行」に「年」「月」「日」を入れます。 元データとなるテーブルでは、ユーザー定義で「年」を「####"年"」、「月」を「00"月"」、「日」を「00"日"」と設定しましたが、いざピポットテーブルを作成すると、「月」「日」だけが文字列の語尾に入りません(たとえば「10月」としたいのに「10」とだけ表示)。 また「年」はほぼ、語尾についてますがたまについてないものもあります。 なぜこうなるのかわかりませんが、ピポットテーブル上で年号や月日を表記する方法を教えてください。 Excel2019利用です。 「数値」設定にしてピポットテーブルで

  • 文字列として入力した日付を日付データに変換したい

    OS=Windowds7 エクセルバージョン MicroOffice Home and Buisiness 2010 の中のエクセル です A列に下記のように文字列としての日付が入力されています。 例) 2014年1月5日(日) (セルの属性も”文字列”です) ここから、日付データを取り出したいです。 なお、年は4ケタ固定 プラス 漢字の”年”ですが、 月、日は十の位はゼロ表示していないので、一桁表示、二桁表示、とばらつきがあります。 また曜日表示は全角のカッコの間に漢字一文字で曜日表記してあります。 ま、文字列の日付表示から日付データさえ取り出せれば、あとは曜日のデータ取出しは簡単にできますからこれは後回しにします。 とりあえず無い知恵を絞ってこんなことをやってみました。 =LEFT(A14,LEN(A14)-3) 結果はこうなります。 計算結果 2014年1月5日 これで文字列表記の日付データが何月何日であっても(つまり、月、日が一桁表示でも二桁表示でも、どっちでも)「YYYY年M月D日」の形式での年月日表示にすることはできました。 しかし、この状態ではまだ計算結果として表示している「2014年1月5日」は依然、文字列データのままです。これでは加工ができません。 私は 2014年1月5日(日) という文字列データを日付データに変換して、例えば H26.1.5 平成26年01月05日 1/5 (それを基にして別ののセルに)sunday、日曜日、日曜、日 などなどなどの多彩に曜日表記する など「日付データとしての表記の加工」を自由に行いたいのです。 どなたか、やり方を教えてください。 なお、データ加工の為の作業用セル、作業用列を作るのは構いませんがなるべく少ない領域で お願いします。 また私が無い知恵を絞って作成した計算式 =LEFT(A14,LEN(A14)-3) が無意味ならば(多分、無意味でしょう)、全く無視していただいて構いません。 よろしくお願いします

専門家に質問してみよう