- ベストアンサー
エクセルの値の表示方法がかわりません。
外部ファイルを開き、日付(2/25/2013 09:30:00)を自分の作り直したファイルにコピーして表示方法を(25 9:30)と表示したいのですがセルの書式設定で表示方法を変えても切り替わってくれません。 年と秒を消すと切り替わりますが、大量のデータをコピーするので一つ一つやっていると時間がもったいないので困っています。 オフィス2010です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 大量のデータをコピーするので一つ一つやっていると時間がもったいない お分かりとは思いますが、回答を待つ時間ももったいないですよね。 「すぐに回答欲しいです」にも拘らず、 質問が投稿されてから6時間半超、最初の回答からも4時間ほど。 云々ありますが、まぁ気を取り直して。 さてさて。 > 年と秒を消すと切り替わりますが、 「秒」いじくる必要はありません。 「年」部分を(便宜上)消すだけで「切り替わり」ます。 ですので、結論。 「日付」が入っている列を選択した状態で 置換(ホームタブ→検索と置換→置換、またはCtrl+H)を使って、 検索する文字列:「/2013」 置換後の文字列:「(空白のまま)」 ですべて置換します。 これでおそらく「切り替わり」ますから、列選択を解除せず、 セルの書式設定で数値の表示形式をユーザー設定にして 種類:「d h:mm」(前後を括弧で括りたいなら「"("d h:mm")"」) としてやると、お望みの表示形式になるでしょう。 ただし置換すると「処理現在の西暦年」と見做されます。 本来ならそこの考慮はしてやらないといけませんが、 > (25 9:30)と表示したい という事ですから、そこまで深くこだわる必要も無いでしょう。
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! VBAになってしまいますが、一例です。 データはA1セルからあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, myArray Application.ScreenUpdating = False Columns(1).NumberFormatLocal = "G/標準" Columns(2).Insert For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row If InStr(Cells(i, 1), " ") > 0 Then myArray = Split(Cells(i, 1), " ") With Cells(i, 1) .Value = myArray(0) .Offset(, 1) = myArray(1) End With With Cells(i, 1) .Value = Cells(i, 1) + Cells(i, 2) .NumberFormatLocal = "d h:mm" End With End If Next i Columns(2).Delete Application.ScreenUpdating = True End Sub 'この行まで ※ 日付と時刻の間は半角スペースという前提です。 ※ おそらく表示はお望み通りになると思いますが、 実データは秒まで含んだシリアル値になります。m(_ _)m
お礼
回答ありがとうございます。 やってみましたが、できませんでした。
- KURUMITO
- ベストアンサー率42% (1835/4283)
一旦例えばA列に外部からのデータを取り込みますがそれは文字列であって表示形式などでお望みの表示にすることはできません。例えばB1セルに次の式を入力して日付のデータとなるようにシリアル値に変換します。 =IF(A1="","",IF(ISNUMBER(MID(A1,FIND("/",A1)+1,2)*1),DATE(MID(A1,FIND("/",A1)+4,4),LEFT(A1,FIND("/",A1)-1),MID(A1,FIND("/",A1)+1,2))+MID(A1,FIND("/",A1)+9,8)*1,DATE(MID(A1,FIND("/",A1)+3,4),LEFT(A1,FIND("/",A1)-1),MID(A1,FIND("/",A1)+1,1))+MID(A1,FIND("/",A1)+8,8)*1)) もしも日付で日の部分が01や25のように常に二桁となっているのでしたら次の式でもよいですね。 =IF(A1="","",DATE(MID(A1,FIND("/",A1)+4,4),LEFT(A1,FIND("/",A1)-1),MID(A1,FIND("/",A1)+1,2))+MID(A1,FIND("/",A1)+9,8)*1) その後にB列を選択して右クリックし、「セルの書式設定」の「表示形式」のタブから「ユーザー定義」を選択し種類の窓には d h:mm と入力してOKします。
お礼
回答ありがとうございます。 やってみましたが、できませんでした。
- chonami
- ベストアンサー率43% (448/1036)
外部から取り込んだデータですので文字列になってるんでしょうね。 列方向にデータが入っているのでしたら、 列選択→データ→区切り位置→次へ→区切り文字のスペースにチェック→「2/25/2013」の列が反転している状態で列のデータ形式の日付の中から「MDY」を選択→完了 これで日付と時間のデータに分かれます。 別のセルで日付と時間のセルを足せば、時間を含めたシリアル値のデータになりますので、それから表示形式を設定して下さい。 関数がよろしければ他の方が回答して下さると思います。
お礼
回答ありがとうございます。 やってみましたが、できませんでした。
お礼
できました。 FX取引中は編集していられなかったのですが、これで取引しながら最新の取引履歴が見られます。 ありがとうございました。