ここから本文です

エクセルの関数について質問です。

dpe********さん

2020/5/722:40:54

エクセルの関数について質問です。

①英字、数字、漢字が混ざった日付を表す文字列の中の数字を2桁で表示する関数を教えてください。

例えば「R2年5月」は「R02年05月」
「H31年5月」は「H31年05月」
「R2年10月」は「R02年10月」
というようなかんじにしたいです。

予め書式の設定をユーザー定義にしてgee"年"mm月としておいて入力する方法以外でお願いします。

「R2年5月」は、顧客が入力したエクセルシートからコピペするので、標準、ユーザー定義、文字列など色々なパターンで入力されています。

② 「R2年5月」をR、2、年、5、月を全部バラバラにして他のセルに返す方法を教えてください。数字は年月を表してますので、どちらも1桁or2桁と可変です。MIDとIFを組み合わせたりしてみましたがわかりませんでした。


長文で読みづらくて申し訳ありませんが、ご回答よろしくお願いいたします。

閲覧数:
33
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

アバター

ID非公開さん

2020/5/723:43:26

A1に元の文字列があるとして
①は式が長いですが
B1に0を補正して表示する式は下記
=LEFT(A1,1)&IF(LEN(MID(A1,2,FIND("年",A1)-2))<2,LEFT("0"&MID(A1,2,FIND("年",A1)-2),2),MID(A1,2,FIND("年",A1)-2))&"年"&IF(LEN(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))<2,LEFT("0"&MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1),2),MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1))&"月"




②は
A1に元の文字列があるとして
B1に「R」か「H」だけ
=LEFT(A1,1)

C1に「年の数字」だけ
=MID(A1,2,FIND("年",A1)-2)

D1に「年」の文字だけ
=MID(A1,FIND("年",A1),1)

E1に「月の数字だけ」
=MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1)

F1に「月」の文字だけ
=RIGHT(A1,1)


式は面倒ですが、①の方は
「&」で区切れば、難しくないと思います。
要は、「年」、「月」の文字が何番目にあるか、また、その「何番目」を使って、数値の部分を取り出し、取り出した文字が2桁ならそのまま、1桁なら0を付加して表示させる方法をとってみました。

  • アバター

    ID非公開さん

    2020/5/723:45:27

    それぞれの、式が何をしているのかは、順に辿れば判ると思います。

    簡単な関数だけですると、面倒でしか有りません(^^ゞ

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2020/5/8 22:43:35

皆さま懇切丁寧な回答をいただきありがとうございました。大変勉強になりました。ベストアンサーは一番初めに回答いただきました方を選ばせていただきました。

「英字数字」の検索結果

検索結果をもっと見る

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

taihenda****さん

2020/5/811:12:53

>標準、ユーザー定義、文字列など色々なパターンで入力されています。
でも一回文字列に変換すれば大丈夫。

添付図A列右寄りは日付シリアル値、左よりは文字列です。

B2
=TEXT(SUBSTITUTE(SUBSTITUTE(TEXT(A2,"ge年m月"),"年","."),"月",".1"),"gee年mm月")

下にコピー


②C2
=IFERROR(TEXT(MID($B2,MID(12457,COLUMN(A1),1),MID(12121,COLUMN(A1),1)),"0"),"")

右と下にコピー

>標準、ユーザー定義、文字列など色々なパターンで入力されています。
でも一回文字列に変換すれば大丈夫。...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

aka********さん

2020/5/800:11:11

「R2年5月」は、顧客が入力したエクセルシートからコピペするので、標準、ユーザー定義、文字列など色々なパターンで入力されています。

これだと むずかしい
本来エクセルでは 日付は シリアル値です

5/2といれれば 表示形式で 「R2年5月」でも R02年05月でも 自由にできます。

しかし シリアル値が 入っていなくて 文字で R2年5月で 入っていれば それは できない

また 混合して 入っているとは 考えにくい
全部 文字列として 入っていませんか?

R2年5月 が 文字が 入っていると 限定するのであれば

=LEFT(A1,1)&TEXT(MID(A1,2,FIND("年",A1)-2),"00")&"年"&TEXT(MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1),"00")&"月"
で できます。

あるいは =SUBSTITUTE(SUBSTITUTE(A1,"年","."),"月",".01")*1 で 表示形式を gee"年"mm"月" としておけば できます

後者の場合 文字でがなく きちっとした2020/5/1の 日付になります。
こちらを お勧めします。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

別のキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる