• ベストアンサー

文字関数についておしえてください

エクセル初心者につき、簡単な質問で、こんなことを思わず 教えてください。 社内のデータを出力すると 2012.12.11 と日付に”.”が入ります。 ”.”のみを除くには、=SUBSTITUTE()を利用すればできたのですが、 =SUBSTITUTEを利用して、かつ、(プラスするという表現でいいのでしょうか?)、 ”1211”といったように、右から4文字だけを 表示させるにはどうしたらよいのでしょうか? 関数に詳しい方、何卒、ご教示お願いいたします。 ウインドウス7 エクセル2007を利用しています。

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

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

回答No2です。 A1セルに2012.12.1とあった場合に回答2の式では2121が表示されますが、これを1201と表示したい場合には次の式にしてください。 =TEXT(SUBSTITUTE(A1,".","/"),"mmdd") 2012.12.1とセルに入力している場合には文字列となっておりますので日付のデータとはパソコンは判断していません。パソコンが日付のデータと判断できるようにするためにはA1セルには2012/12/1のように入力することが必要です。その場合にはパソコンは日付と判断して文字列ではなく数値(シリアル値)として処理しています。 上の式ではA1セルのデータを単なる文字列から日付として判断できるように"."を"/"に変えています。その上で日付の内の月の部分(m)と日にちの部分(d)を表示するようにしています。 mmやddとしているのはどちらの数値も2桁で表示させるためです。

shironekochann
質問者

お礼

KURUMITO様 丁寧なご回答ありがとうございます。 ”.”を除いて、右から4文字を表示したいという2個の条件が あったのでIFを使った、複雑な関数になるのかと思っていました。 TEXT関数も”mmdd"も書式設定で利用したことがあり、関数の 苦手意識なく利用させていただけました。 また、日付と判断できるように”/”を利用するなど、本当に勉強に なりました。ありがとうございました。

その他の回答 (2)

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

A1セルに2012.12.11と入力されているとしたら次の式で良いでしょう。 =RIGHT(SUBSTITUTE(A1,".",""),4) RIGHT関数に引数4を入力することで右から4文字が抽出されます。

shironekochann
質問者

お礼

No.3の回答とあわせ、勉強になりました。 ありがとうございました。m(_ _)m

  • ryo_ky
  • ベストアンサー率47% (112/237)
回答No.1

質問者様に少し確認をしたいのですが、セルに入力している情報は 例えば2012年12月11日であれば2012/12/11となっていますか? 日付などの入力による表示はセルの書式設定の表示形式で指定されているのだと思います。 (セルの書式設定の見方はセルを選んだ状態で、Ctrl+1) おそらく最初の状態では表示形式がユーザーの定義で yyyy"."mm"."dd の様な状態になっているのだと思います。 (年、月、日の間に.という文字を入れる。yは年、mは月、dは日で数=桁数) (yy"年"mm"月"dd"日" なら12年12月11日という表示になります) 質問者様がしたい「1211」という表示は月と日ですよね? その場合はユーザーの定義で mmdd とすれば、関数とかを使わなくても表示できますよ。

shironekochann
質問者

補足

ryo_ky 様 お世話になります。 お忙しいところ、丁寧な回答ありがとうございます。 また、説明不足申し訳ございません。 ユーザー定義は試してみましたが、できませんでした。 表示形式は、標準となっています。 書式設定で、2012/12/11を指定、ユーザー定義でmmddといった 設定ができないので、=SUBSTITUTEを利用してみたところ、”.”を除く ことまではできた状態です。 何卒、ご教示お願いいたします。

関連するQ&A

  • エクセルの""の入った文字列を抜く関数をどうか、お教え下さい。

    エクセルの""の入った文字列を抜く関数をどうか、お教え下さい。 エクセルの初心者です。 どうか皆様お知恵をお貸しください。 下記の様な場合どうやったら、 <img src="http://★/●●.gif"> を <img src="http://★/●●1.gif"> に 置換をしたいのですが、SUBSTITUTEの関数では、 上手くいきません。 本当に、初歩的なことなのですが、 どなたかこのような場合、どうしたらいいのかを お教え願えませんでしょうか? また、エクセルでは、解決できない場合、 どうやったら解決出来ますでしょうか? わがままを、申し上げてすみませんが、 サルでもわかりますような回答を頂けたら、恐縮です。 何卒、宜しくお願いします。

  • エクセル関数について・・教えて頂けますか?

    エクセル関数について質問なのですが、 0O507654のような数字とアルファベットが入っている文字列を 005-0765-4という風に変更したいのですが、 REPLACEやSUBSTITUTE関数を使ってもうまく出来ません。 超初心者で分からない事が多くて申し訳ないのですが、 どの関数を使用し、どのように入力すれば良いのか教えて頂けませんでしょうか? よろしくお願い致します。

  • MSエクセルのif関数にて

    MSエクセルのif関数にて 業務で、エクセルのifを使った関数を利用し処理しようと思っています。 K列にαまたはβが入力されており、 L列に日付が"2008-06-07"という形で入力されているデータ群があります。 そこで、処理したい内容は以下です。 ・もし、K=αなら、L列の日付に1年プラスしてM列に入力 例)2008-06-07 → 2009-06-07 ・K=βなら、L列の日付に2年プラスしてM列に入力 例)2008-06-07 → 2010-06-07 このようにif関数を作るには、M列にどのような値を入力したら良いでしょうか。 ご存知の方、ご教示下さい。宜しくお願い致します。

  • Excelの関数で「○文字目を拾う」というのはありますか?

    Excel 2000の関数で「○文字目を拾って表示する」というのはありますでしょうか。例えば、「12345678」で右から4文字目であれば「4」を表示させるようにです。教えてください。お願いします。

  • EXCELに出力した文字列データの変換

    あるシステムから固定長のデータをEXCELに出力しました。 しかし、すべて文字列の型になって、集計できません。 数字の場合はVALUE関数で文字を数字にするというのはできるのですが、 日付 例えば 070730 を 2007/7/30の日付型にしたい場合は、 どうすればよいのでしょうか?  よろしくお願いします。

  • EXCEL 関数を文字として

    EXCELで関数で計算や現れた文字を、実際の文字として扱うには どうしたらいいのでしょうか? 具体的にいいますと、PHONETICという関数でフリガナを表示したのですが、 それをフリガナとして他のEXCELのファイルにコピーして使いたいのです。 ただコピペすると、関数のため、出てきません…。 EXCEL初心者です。どうか教えてください。 宜しくお願いします。

  • エクセルでの文字の書き換えについて

    現在時間データの管理をしておりますが、機械から引っ張ってきたデータをエクセルに貼り付ける際、元データが1時間以内の場合「:22:33」のように貼り付けられる為、手作業で「0:22:33」と書き換えております。これが少なければいいのですが結構量がある為毎日大変です。これを関数を使って自動的に書き換える方法をご存知の方、教えて頂けませんでしょうか? IF関数とSUBSTITUTE関数で1文字目が「:」であれば「0:」に書き換えるとすれば良いように思いますが、【1文字目が「:」であれば】という式の入力方法がわかりません。

  • エクセル 関数のあわせ技 

    お世話になります。 最終目的は年齢表示です。 生年月日の元データは他システムからCSVカンマ形式で出力されたものをエクセルで表示しているため、問題箇所があります。 ・年月日のいずれかが一桁の場合、「空白」+「半角数字」+「年月日」となっています。   例えば、昭和20年5月1日   の場合は         昭和20年 5月 1日 となっています。(数字は半角です) ・元データのほとんどはテキスト形式なのですが、一部日付データ形式があります。   セル表示は「元号+年月日形式」ですが、数式バーは西暦表示です   例えば、昭和24年12月11日 とセル上は表示されますが、         1949/12/11   と数式バーでは表示されます。 まず、生年月日データに混じっている空白を消すため、SUBSTITUTE関数を使って別の列に書き出しました。 =IF($J3="","空白行",SUBSTITUTE(AM3," ","")) これで、昭和20年 5月 1日は昭和20年5月1日になりました。 その後、DATEDIF関数で年齢を表示させました。 =IF(ISERROR(DATEDIF(AJ3,today(),"Y"))=TRUE,"",DATEDIF(AJ3,today(),"Y")) ただし、日付データの 1949/12/11 のセルは、18243 になってしまいました。 これでも年齢計算はできるのですが、生年月日確認用に使いますし、後で印刷時に利用するデータですので、「テキスト形式」として、昭和24年12月11日 と表示させたいのです。 上記の関数式に別の関数を組み合わせればいいのだろうと思いましたが、うまくいきません。 どうか、よろしくご教示ください。  

  • Excel関数 文字分割

    A列               関数の結果求めたい値 AAAA BBBB(半角スペース区切)     AAAA AAAA BBBB(全角スペース区切)    AAAA AAAA/BBBB(半角/区切)        AAAA AAAA/BBBB (全角/区切)       AAAA =LEFT(A1,FIND(" ",SUBSTITUTE(A1," "," "))-1) =LEFT(A1,FIND("/",SUBSTITUTE(A1,"/","/"))-1) Excelの関数で一回の関数で上記二つの関数を使用して 区切文字複数を考慮して文字分割したいのですが、 どのように実施すればよいかご教授ねがえますでしょうか? IF文を使うのかもしれないとは思いいろいろと試したのですが うまく出来ない為質問させて頂いたおります。

  • VALUE関数で「#VALUE!」のエラーがでます。

    VALUE関数で「#VALUE!」のエラーがでます。 社内のDBからExcel転送したデータの「'12345678」を数値に変換したいのですが、作業列にVALUE関数を入れ引数に「'12345678」を入れると「#VALUE!」となってしまいます。 「'12345678」は文字列だと思っているのですがなにが間違いなのでしょうか。 お詳しい方、ご教示ください。