[[20041015163047]] 『文字→数字への変更』(TM) ページの最後に飛ぶ

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

 

『文字→数字への変更』(TM)

 初歩的な質問ですみません・・・
 文字で「2004年1月1日」と入力されているものを、
 数字(数値?)に変更するにはどうしたらよいですか?
 過去ログ等も拝見したのですがよくわからなくて・・・
 教えていただけますでしょうか?


 数値とは、シリアル値のことですか? 
 それとも yyyymd といった表示にするだけ?

  (INA)


 INAさんありがとうございます。
 シリアル値のことです。
 言葉が思い当たらなくて説明不足ですみませんm(__)m
 (TM)


 セルの書式設定を 標準や数値 にすればよいのではないですか?

  (INA)


 文字列の形式で表された日付をシリアル値に変換
 DATEVALUE 関数では
 (辛太)


 辛太さん、せっかくお答えいただいたのに申し訳ありません!
 え〜と・・・
 本当にすみません、説明が悪くて・・・
 私の認識が間違ってました。シリアル値に変更したいのではなかったですm(__)m
 書式設定は標準です。
 数式バーに出るものは「2004年1月1日」なのです。
 そのままもろに文字で入力してあります。
 それを(数式バー上)「2004/1/1」に変えたいのです。
 標準の書式だと文字は左寄せ、数値は右寄せですよね?
 A列に文字と数値が混在して並んでいまして、
 その文字で入っている方の日付を一気に数値にできないかと思ったのです・・・
 言葉足らずですが、伝わりますでしょうか?
 (TM)


 マクロでならできるけど、数式や一般操作を駆使して出来るものなのかな・・?

 これは、一時的な作業か何かで、マクロでも
 とにかく変換処理できればいいのかな?

  (INA)


 空いている列にDATEVALUE関数を入れて、A列を指定すれば
 (辛太)


 >それを(数式バー上)「2004/1/1」に変えたいのです。
 それだとこの条件を満たせないように思えますが?
 (INA)


 <辛太さん
 DATEVALUE・・・よくわからないので調べます。

 <INAさん
 マクロ!?
 マクロなんですか?
 ・・・・
 一時的な処理ではあるんですが、そんな大層な処理になってしまうんですね(^^;
 マクロは全く使用したことがないのでちょっと困ってしまいました・・・

 もしよろしければさわりだけでも教えていただけますか?
 勉強します(><)
 (TM)


 こんなかんじです。A列の値を日付に変更してB列にコピーします。
                                        ~~~~~~  

 1.ALT+F11キーで、VBEを起動
 2.挿入−標準モジュール
 3.標準モジュールのコードウィンドウに以下のコードをコピペ
 4.EXCELに戻って、ツール>マクロ>マクロ>から sample を実行

 Sub sample()
 Dim r As Range

    For Each r In Range("A1", Range("A65536").End(xlUp))
        If r.Value <> "" Then
            r.Offset(0, 1).Value = DateValue(r.Text)
        End If
    Next r
 End Sub

  (INA)


 INAさん
 DATEVALUEを指定したセルを書式設定すればいいと思いますが
 なんか、私の勘違いかな…
 (辛太)


 セルの表示形式が文字列で「2004年1月1日」と入力されているのなら、
 空白セルを選択してコピー。
 A列の範囲を選択して形式を選択して貼り付けで「加算」にチェックしてOK
 選択範囲がシリアル値になるので、表示形式を日付に変更。
 ということではないのでしょうか?
  読み違いしてたらすみません
(追加) DATEVALUEでもいいような気がしますが・・・ (Hatch)


 to 辛太さん
 私が理解できていない可能性が大きいかも。
 なにせ一般操作には、無知なもので・・(^_^;)

 to Hatchさん
 もっとはやく来てほしかった・・(T T;)
 やっぱりできるのですね。先日社内で頼まれてマクロで処理してました。(^_^;)

 DATEVALUE の方法も教えてほしいです。  
  (INA)


 to INAさん
あの〜VBAにDATEVALUEが使ってあるのですが、
ワークシート関数となんか違うのでしょうか?
ちなみに、ワークシート関数ならB1=DATEVALUE(A1)でシリアル値に変換して、
表示形式を日付に変更することになるとおもいます。
(数値の場合はエラー処理をIF関数で加えるとか・・・)
VBAのコードと同じ処理のような気がしますが・・(^_^;)
  (Hatch)


 それだと セルの中身(数式バー上)は、数式であって
 以下の条件を満たさないと思いますけど・・・?

 >(数式バー上)「2004/1/1」に変えたいのです

  (INA)
  

 データ>区切り位置>「完了」
(みやほりん)


 なるほど。txtファイルの読み込みと同じことですね。(=´∇`=)
  (INA)


 >(数式バー上)「2004/1/1」に変えたいのです
 追加操作として、コピーして値をA列に貼り付けることになります。
 これでいいでしょうか?  
 あ〜っ 区切り位置がありましたね・・・(>_<)
 すぐ忘れてしまう(^_^;) (Hatch)


 Hatchさん。
 さっき試したときは、値のみ貼り付けがうまく行かなくて悩んでました。
 ありがとうございました。
   (INA)


 INAさん、辛太さん、Hatchさん、みやほりんさん、ありがとうございました!

 すべてやってみました結果・・・
 ・INAさんのマクロ、おもしろいほど早く変換してくれました!!感動です!!!
 中身については全くわからないので、これから勉強しようと思います。
 ・datevalueですが、VALUEエラーが出てしまいました・・・。
 私のやり方が悪いんでしょうね・・・この関数についてもう少し勉強してみます。
 ・区切り位置、何も起こりませんでした・・・
 ・「加算」貼り付けも何も起こらず・・・文字列ではなく標準だからでしょうか?

 大事なことを書き忘れていたことを今更ながらに白状いたします・・・m(__)m
 このデータはWEB上よりコピペしてきたものなので、
 ちょっと違うのかもしれないとやっと思い至りました・・・
 普通に入力すれば勝手に日付として認識されるんですね、年とか月とかついてても(^^;
 無知なのは恐ろしいです・・・
 皆様のように、きちんとした判断ができるように日々精進いたします!!
 お時間割いていただいてありがとうございました!!!!!(TM)

 申し訳ありません。
 会社から書き込みしていて、17:30で打ち切り、
 飲み会に参加しておりました。
 ものすごく、気になっていたのですが、
 今、自宅に戻りました。
 TMさんは解決されたのかな?
 私の言いたかったのは、Hatchが補足してくださっている最初の書き込みです。
 INAさんのように、即座にVBAが記述できる方がうらやましい限りです。
 当方、以前このサイトで大変お世話になり、少しでもお役に立てればと、
 暇になると(本来会社では、仕事に関係ないサイトの閲覧は禁止されております)
 訪問させていただいているレガシーシステムのおもり役です。
 (辛太)改め(オッチャン)かな
 ごめんなさいHatchさんです。(アルコールのせいご勘弁を)
 (オッチャン)

 上記、なぜかみやほりんさんのお名前抜けていましたので訂正しました!
 大変失礼致しましたm(__)m

 オッチャンさん、マクロでばっちり解決です!
 せっかく関数教えていただいたのに活用できず、申し訳ありません(><)
 しっかり勉強して無駄にはいたしませんので!!
 ご心配頂いて本当にありがとうございました!!!!!(TM)

 今回の場合、マクロより一般操作の方が簡単でした。

 A列お選択して、メニューの データ>区切り位置>「完了」 で出来ますよ。
 もしくは、B列に 
 =Datevalue(A1)
 =Datevalue(A2)
 =Datevalue(A3)
   :
 と数式を入れてコピーします。そしてそのB列をコピーして、
 別の列に、コピー&値にみ張り付け で出来ます。

  (INA)

コメント返信:

[ 一覧(最新更新順) ]


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