現在日付を130101と入力している物を2001/1/1にしたいのですが、いい方法を教えて下さい。
元はTXTデータをエクセルに取り込んでいます。130101のセルを日付タイプに変更すると年数が変になります。
最終的にはTXTをCSVで出力したいです。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

「A1」に入力した日付が入っているとして、以下の計算式を別のセルに設定すれば、日付型として「2001/01/01」が表示されます。


=DATE(INT(A1/10000)+1988,MOD(INT(A1/100),100),MOD(A1,100))

これを上手く使ってください。

以上。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
上記の内容で上手くできました。
ありがとうございました。

お礼日時:2001/03/22 11:28

質問者のセルの状況が良く分からないので自信なしですが・・・



編集>置換で検索する文字列「130101」、置換後の文字列「2001/1/1」で
全置換をすると、勝手に日付タイプになりました。(EXCEL2000)

130101以外に文字が付与されているなら、例えば「130101商品A」のように
なっているなら、TEXTデータをExcelに取り込むときに、セルを分けて
取り込む。A1「130101」B1「商品A」となるようにです。

ちなみに、EXCELがインストールされていると、CSVはEXCELに関連付け
されますが、TXTファイルなので、メモ帳でも編集できます。

>130101と入力している物を2001/1/1にしたいのですが・・・
単純にしたいなら置換、何か別の意図があるなら下で解答されてるように
するといいですよ。
また、意図を詳しく教えていただけると、もう少し的を射た回答が
できるかもしれません・・・・(^^;
    • good
    • 0
この回答へのお礼

内容が不十分で申し訳ございませんでした。
データが複数あるので、置換では無理でした。
大変ありがとうございました。

お礼日時:2001/03/22 11:27

出来ます。

ちょっと手間がかかります。

A1 データ 130101
B1 数式  ="H"&LEFT(A1,2)  表示は 「H13」
C1 数式  =MID(A1,3,2)        「01」
D1 数式  =MID(A1,5,2)        「01」
E1 数式  =B1&"."&C1&"."&D1     「H13.01.01」
F1 数式  =DATEVALUE(E1)       「36892」
 以上で準備完了
G1に F1をコピーし「形式を選択して貼り付け」「値」  「36892」
G1を選択し、「セルの書式設定」「表示形式」「日付」で形を指定
 以上の操作で、「2001/1/1」に変換されます。
 操作後B~F列を削除すればすっきりします。
 お試し下さい。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
細かく説明して頂いてありがとうございました。

お礼日時:2001/03/22 11:30

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

Excel2007でIFERROR関数などを使っていました
しかし、以前のExcelバージョンだと使えないようです。
そこで、どの関数がどのExcelバージョンから使用可能か?
というリストのようなものを掲載しているサイトはありますか?

Aベストアンサー

下記ページで2007で追加された関数が解ります。

Excel(エクセル)基本講座:Excel(エクセル)関数一覧表
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html

QEXCEL: 日付のセルに1/2/3と入れると、2001/2/3と解釈されるが、2003/1/2と解釈させるには?

タイトルのとおりです。アメリカでは、1/2/3と書くと普通は2003年1月2日と解釈されます。
EXCELにて、 日付のセルに1/2/3と入れると、2001/2/3と解釈されますが、表示形式は2/3/01と指定できるにもかかわらず、入力形式は年/月/日と固定されていますよね。これは何とかならないでしょうか?
入力→解釈→表示が全て「月/日/年」と一貫していると、いちいち翻訳せずに済むのですが・・・。

Aベストアンサー

コントロールパネルの「地域と言語のオプション」で設定できます。

【手順(WinXPの場合)】
1.[スタートメニュー]-[設定]-[コントロールパネル]を選択
2.コントロールパネルの「地域と言語のオプション」を開く
3.「地域オプション」タブの「標準と形式」で「英語(米国)」を選択
4.[適用]ボタンを押す
5.[OK]ボタンで画面を閉じる
⇒Excelで「1/2/3」と入力すると「2003/1/2」と認識される

※Windows全体が手順3で選択した表示形式に変わります。

QExcel関数のようなものはありますか?

こんにちは。まだプログラミングをほとんどしたことがないのでわからないことがあります。

現在Excelを使っていますがExcel関数は非常に使いやすいく重宝しています。
Excel関数は300種類ほどあるそうですが、C++やVB、C#、JAVAなどのプログラムにもExcel関数のようなものが
あらかじめ用意されているのでしょうか?
もしExcel関数の中で使いたいものがあり、そういう関数がソフト側で用意されてない場合は自作するしかないのでしょうか?

Aベストアンサー

office2003以降かつ.Netで作成という話しなら、事実上「ある」に等しいかもしれませんね。

.Netの場合、ライブラリとして読み込む側の言語についてあまり意識する必要はありません。(JAVAで本体のプログラムという訳にはいかないが)
とはいえ、プログラム経験が浅いのでしたら、VB.NETでやるというのが吉であると思います。(関数のみならず、マクロも利用できますのでね/office2003以降)

# 開発環境を安くならC#となります(Borland C#Builderなら無料)

参考URL:https://mypage.borland.co.jp/mypage/index.html?ret_to_semi_list=1&page_act=LI_REG

QEXCEL csv形式 1-2-3のデータが勝手に2001/2/3になる

csv形式で保存しているデータをエクセルで読み込むと、
1-2-3→2001/2/3
になってしまいます。

WEB処理でダウンロードさせて、WINDOWSの関連つけで自動的に開かせているのです。
全角「1-2-3」と入力しても同じでした。
ダブルコーテーションでくくってもだめ。

あきらめるしかありませんか?
マクロを使うつもりはありません。
データに余計なものを付加するのもだめです。
EXCELの機能を調整するのはありです。

よろしくお願いします。

Aベストアンサー

メモ帳で
12,'1-2-3
25,1-2-3
をつくり
エクセルに読み込ましたら
12'1-2-3
252001/2/3
になりました。
エクセルの数字の中のーが日付に合うとき日付化する機能は最優先的に強いので、アポストロフィで文字列をアピールするよりほか無いのでは。
ーー
関連付けで・・と書いてあるので、下記が出来るかどうかわからないが
エクセルのメニューの、データー外部データの取り込みーファイル指定ーカンマでフィールドを分割後
'1-2-3
1-2-3
の列をクリックして(列が黒くなる)、上部に「文字列」の目玉をON(すなわち文字列書式を指定)にしてOKで読み込ませると
12'1-2-3
251-2-3
になりましたよ。これは使えないですか。
ーーー
>マクロを使うつもりはありません。
データに余計なものを付加するのもだめです。
回答者は試験を受けているのではないので、勝手なことを書かれると
・・・。

QExcel関数について

Excel関数についての質問です。


Excel関数で、実際の仕事上でよく使う関数、ベスト5を教えてください。

また、覚えやすいコツなどがありましたら、教えて頂きたいです。

よろしくお願いします。

Aベストアンサー

うーん…仕事でどういったものを使いたいかによりますが…基本として、

SUM (サム)
指定範囲の合計を出します。
合計はサム!みたいにして覚えました。

--------------------------
IF
if文は結構使いました。
if(A1="","○","×")  ⇒ もし、A1が空なら,○を入力、違うなら×を入力
if(A1="","○",IF(A1="?","△","×")) ⇒ もし、A1が空だったら、○を入力、
                         それ以外で、?が入っていたら△を入力、それ以外は×を入力

とか、色々使えます^^
他の関数とも組み合わせて、とても便利です。

-------------------------
COUNTIF(カウントイフ)
条件にあったものの個数を数えます。

COUNTIF(A1:A5,"正解") 正解と書かれている個数を数えます

--------------------
TODAY
今日の日付が表示されます。
---------------------


他にも、平均を出すものや
便利なものはたくさんあります。
その都度、やりたいことを検索して
使っていくのがベストかな?と思います。
Excelの、挿入⇒関数のところで、
検索もできたはずです。


参考リンク
http://pc.nikkeibp.co.jp/pc21/tech/excel36/
http://matome.naver.jp/odai/2135607317537215601
http://www.enjoy-web-jp.com/jp/excel/excel00.html


また、セルの書式設定のユーザー定義はとても便利です。
書き方を勉強しておくと役立つかもしれません。

以上、参考まで

うーん…仕事でどういったものを使いたいかによりますが…基本として、

SUM (サム)
指定範囲の合計を出します。
合計はサム!みたいにして覚えました。

--------------------------
IF
if文は結構使いました。
if(A1="","○","×")  ⇒ もし、A1が空なら,○を入力、違うなら×を入力
if(A1="","○",IF(A1="?","△","×")) ⇒ もし、A1が空だったら、○を入力、
                         それ以外で、?が入っていたら△を入力、それ以外は×を入力

とか、色々使えます^^
他の関数とも組...続きを読む

QCSVに取り込むと「18/6/2」が「2018/6/2」に!

「18/6/2」となっているデータをCSVに取り込むと「2018/6/2」と表示されてしまいます。
いったん取り込んで書式の設定で変えるのではなく、最初から「18/6/2」と表示できるようにしたいです。
エクセルの初期設定のようなところを変更できれば解決できると思うのですが方法が分かりません。
どなたか分かる方がいましたら教えてください!

Aベストアンサー

◆csvファイルを txt形式にて保存します。 
例 ファイル名.csv を ファイル名.txt
これはメモ帳やWORDでも可能
次にEXCELで ファイル名.txt を開くと、ウィザードが
起動して設定を聞いてきますので 18/6/2 の列を文字列に指定
すると 18/6/2 になります。
◆別の方法として csvファイルで 置換 18/ → H18/ で
全置換をして保存します。 Excelで開くと H18.6.2 になります。

QEXCEL ゴールシークの関数?

EXCEL ゴールシークの関数?
ゴールシークを画面操作をしなくて ゴールシーク機能を持つ 関数はありませんか?
無ければ 複合関数は? VBを使わないでEXCEL関数だけで 求める方法を探しています。

Aベストアンサー

こんにちは。

例えば、財務関数のNPVなどがありますが、ゴールシークの代わりに、関数だけで、オプションの循環参照計算があります。そうでなければ、基本的な話ですが、微分を使うか、もしくは、ミスが出やすいのですが、オートフィルで、目的の値を探すか、いずれかの方法があると思います。

ただ、VBというか、マクロのことだと思いますが、そういう区分けはあまり意味のないことだと思います。それは、アドインもピボットも、コマンドの3分の1程度は、動的なプログラムを使っているからです。また、分析ツールは完全にExcelの古いマクロです。

私は、マクロを中心とする回答者のひとりです。何かを使わないという条件付き質問は、学校のテストやクイズやお遊びとしてはありえるとしても、ゴールシークというものは、論理的な計算ではなく、反復する時系列な計算です。それは、基本的にマクロにほかなりません。ただし、私たちが考えるよりも、遥かに速い処理です。それを論理的な計算をするというなら、その求める具体的な質問がなければ、話は進みません。解答を求めたいなら、方法論は何でもアリではないかと思います。そうでないなら、純粋に数式で計算させるMathematica のようなもののほうが良いと思います。

こんにちは。

例えば、財務関数のNPVなどがありますが、ゴールシークの代わりに、関数だけで、オプションの循環参照計算があります。そうでなければ、基本的な話ですが、微分を使うか、もしくは、ミスが出やすいのですが、オートフィルで、目的の値を探すか、いずれかの方法があると思います。

ただ、VBというか、マクロのことだと思いますが、そういう区分けはあまり意味のないことだと思います。それは、アドインもピボットも、コマンドの3分の1程度は、動的なプログラムを使っているからです。また、分...続きを読む

QCSVファイルの「20090423」を日付型の「2009/4/23」へ変換したい

CSVファイルには書式設定が標準で「20090423」と入力されていますが
これを日付型の「2009/4/23」へ変換したいのですがどうすればいいでしょうか?
現在は

With Columns(1)
.Replace what:="200809", Replacement:="2008/09/", LookAt:=xlPart
.Replace what:="200810", Replacement:="2008/10/", LookAt:=xlPart
.Replace what:="200811", Replacement:="2008/11/", LookAt:=xlPart
.Replace what:="200812", Replacement:="2008/12/", LookAt:=xlPart
.Replace what:="200901", Replacement:="2009/01/", LookAt:=xlPart
.Replace what:="200902", Replacement:="2009/02/", LookAt:=xlPart
End With

とやっていますが量が多くて追いつけません。
ご教授よろしくお願いします。

CSVファイルには書式設定が標準で「20090423」と入力されていますが
これを日付型の「2009/4/23」へ変換したいのですがどうすればいいでしょうか?
現在は

With Columns(1)
.Replace what:="200809", Replacement:="2008/09/", LookAt:=xlPart
.Replace what:="200810", Replacement:="2008/10/", LookAt:=xlPart
.Replace what:="200811", Replacement:="2008/11/", LookAt:=xlPart
.Replace what:="200812", Replacement:="2008/12/", LookAt:=xlPart
.Replace what:="200901", Replacement:="2009/0...続きを読む

Aベストアンサー

こんばんは。

区切り位置の回答が出ていますので、こちらもマクロの処理を出します。A列を対象とした場合です。

Sub Test1()
For Each c In Range("A1", Range("A65536").End(xlUp))
 If IsNumeric(c.Value) And Len(c.Value) > 5 Then
    c.Value = Format(c.Value, "00""/""00""/""00")
 End If
Next c
End Sub

Sub Test2()
  Range("A1", Range("A65536").End(xlUp)).TextToColumns _
    DataType:=xlDelimited, _
    FieldInfo:=Array(1, 5)
End Sub

書式は任意で処理してください。マクロで入れる場合は、その都度変更するのではなく、一括で書式を入れてください。メモリの負担が少ないです。

Test1 は、処理のコードを
 Application.ScreenUpdating = False
 
 Application.ScreenUpdating = True
で、はさんだほうが良いかもしれません。

こんばんは。

区切り位置の回答が出ていますので、こちらもマクロの処理を出します。A列を対象とした場合です。

Sub Test1()
For Each c In Range("A1", Range("A65536").End(xlUp))
 If IsNumeric(c.Value) And Len(c.Value) > 5 Then
    c.Value = Format(c.Value, "00""/""00""/""00")
 End If
Next c
End Sub

Sub Test2()
  Range("A1", Range("A65536").End(xlUp)).TextToColumns _
    DataType:=xlDelimited, _
    FieldInfo:=Array(1, 5)
End Sub

書式は任意で処...続きを読む

Qexcelのピボット関数

excelのピボット関数はどんな関数ですか?

Aベストアンサー

私自身は「ピボット関数」なる言葉を聞いたことがないけど、貴方はそれを何処で知ったのですか?
ひょっとして、[データベース関数]の中の =GETPIVOTDATA()関数のことでしょうか?
Excel のヘルプ文をお読みになったら如何でしょ。
>ピボットテーブル レポートに格納されているデータを返します。
>GETPIVOTDATA 関数を使用すると、ピボットテーブル レポートに
>表示されている集計データを取得することができます。
で始まる説明があります。
それを読んでから不明なところを質問されることをお奨めします。
何?隅から隅まで、チンプンカンプン?

QExcelマクロにてCSV出力したデータをTXTとして読み直し、内容の編集を行いたい

第3者にExcel記入頂いた「データレコード(固定列数・変動行数)」を用いて、
・ヘッダレコード(1行:固定値) → 1列目(図のX)
・データレコード(記入された列数=r列とする) → 2~r列目(図のY)
・トレーラレコード(1行:固定値) → r+1列目(図のZ)
とサンドイッチ式に結合し、CSVファイルにて出力する作業をExcelマクロにて自動化しようと思っています。

3種類のレコードはどれも固定の列数ですが、それぞれデータ数が違います。
そのためそもそも「ExcelファイルをCSVファイルとして保存」した際の機能制限上、
もっとも列数の多い行に合わせ、列数の少ないレコードの後ろに勝手にカンマが複数個足されてしまいます。
(※ここの認識合ってますでしょうか。念のため確認です。)


そのため一旦ExcelデータをCSVファイルとして保存したのち、
それをTXTファイルとして開き直し内部データの置換(カンマ個数の調整)をしたいと思っています。

'「Workbooks.Add」で新規生成し、内容編集したファイルを「作業日付」でCSV保存する
'特にパスは指定していないため「カレントフォルダ」に保存
ActiveWorkbook.SaveAs Filename:=Format(Now, "yyyymmddHHMMSS"), FileFormat:=xlCSV

この後の作業について、どういった手順で進めれば良いかご存知の方はいらっしゃいますでしょうか。

※指定パスにあるTXTファイルの読み込み→内容編集・置換
といった作業であれば以下のURLのような事例が参照可能ですが、「生成したばかりのCSVファイルをTXTとして読み返す」ことはそもそも可能なのか解らず。。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13100352723


どうぞ宜しくお願いします。

第3者にExcel記入頂いた「データレコード(固定列数・変動行数)」を用いて、
・ヘッダレコード(1行:固定値) → 1列目(図のX)
・データレコード(記入された列数=r列とする) → 2~r列目(図のY)
・トレーラレコード(1行:固定値) → r+1列目(図のZ)
とサンドイッチ式に結合し、CSVファイルにて出力する作業をExcelマクロにて自動化しようと思っています。

3種類のレコードはどれも固定の列数ですが、それぞれデータ数が違います。
そのためそもそも「ExcelファイルをCSVファイルとして保存」し...続きを読む

Aベストアンサー

>もっとも列数の多い行に合わせ、列数の少ないレコードの後ろに勝手にカンマが複数個足されてしまいます。
そういう解釈もあるのでしょうが、四角形に範囲を取っているからだと思います。

>CSVファイルにて出力する作業をExcelマクロ

Excel VBAでするなら、
>それをTXTファイルとして開き直し内部データの置換(カンマ個数の調整)をしたいと思っています。
これは不要でしょう。最初から、そう出力すれば済む話ですから。

それとも、既存のCSVを直す方法もありますが、それは、また補足にでも加えてください。

マウスで範囲を選択します。だから、画像には出てきませんが、空行を選択範囲に入れると、それも入ってしまいます。

なお、このマクロは、Excel 97~2000 によく見かけられた、懐かしい古典的なものです。

'//
'Option Explicit

Sub CSVExportMacro()
Dim Rng As Range
Dim Fname As String
Dim i As Long, j As Long
Dim buf As String
Dim FNo As Integer
Dim mPath As String
mPath = ThisWorkbook.Path & "\"
If TypeName(Selection) <> "Range" Then
 Exit Sub
End If
Set Rng = Selection
If WorksheetFunction.CountA(Rng) < 2 Then
  MsgBox "データが不足しています。", vbExclamation
  Exit Sub
End If
Fname = Format$(Now(), "yyyymmddHHMMSS")
Fname = mPath & Fname & ".csv"
FNo = FreeFile
Open Fname For Output As #FNo
With Rng
For i = 1 To .Rows.Count
 For j = 1 To .Columns.Count
  If Trim(.Cells(i, j).Value) <> "" Then
   buf = buf & "," & Trim(.Cells(i, j).Value)
  End If
 Next j
 Print #FNo, Mid$(buf, 2)
 buf = ""
Next i
Close #FNo
Beep
End With
End Sub
'///

>もっとも列数の多い行に合わせ、列数の少ないレコードの後ろに勝手にカンマが複数個足されてしまいます。
そういう解釈もあるのでしょうが、四角形に範囲を取っているからだと思います。

>CSVファイルにて出力する作業をExcelマクロ

Excel VBAでするなら、
>それをTXTファイルとして開き直し内部データの置換(カンマ個数の調整)をしたいと思っています。
これは不要でしょう。最初から、そう出力すれば済む話ですから。

それとも、既存のCSVを直す方法もありますが、それは、また補足にでも加えてください。...続きを読む


人気Q&Aランキング

おすすめ情報