[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『yyyy/m/dと0531の日付がある時yyyy/m/dと統一させる』(蜜)
いつもお世話になっております。
yyyy/m/dと0531の日付がある時yyyy/m/dと統一させるには
どうすればいいでしょうか?
=IF(LEFT(!A6785,2)=42,!A6785,"")
A6785=2017/6/30
恐れ入りますが
ご指導をお願いいたします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
yyyy/m/dと0531の日付がある時
A6785=2017/6/30
意味が解らないので、2度手間になりますね。
もう少しというか、誰だ見ても理解できるように質問したほうがいいと思います。
ひょっとして、データ区切り位置ですんじゃう??
コメント欄から
xxxxxxxxxxx って書くと、> が消えちゃうんじゃん。
やっぱつかえねぇ。
あ、編集でも同じみたいでした。
すみません。使い方すっかり忘れてました。
[[20170706130813]] のねむねむさんの回答見て思い出しました。
>左に半角スペースを入れるのを忘れてた。 BJ 7/6 13:42 13:59
A6785がセルアドレスとして、!は何? (コナミ) 2017/07/06(木) 15:40
(コナミ)様
いつも説明不足で本当に申し訳ありません。
A1=0531
A2=2017/06/17
A1をA2と同じyyyy/mm/ddを表示させたいです。
おそらくA1は、TEXTを関数をかますのかな?と色々試してみたけど答えがでてこず。。
=IF(LEFT(!A6785,2)=42,!A6785,"") は、無理でした(泣)
よろしくお願い致します。
(蜜) 2017/07/08(土) 12:15
横から失礼します。
>0531を区切り位置で区切りたくても何を元に区切ればいいでしょうか?
区切り文字は不要です。
ウィザードの2/3では何もせずに「次へ」で飛ばし、 ウィザードの3/3で列のデータ形式を「日付」にし、「完了」をクリック (カリーニン) 2017/07/08(土) 12:38
セルの書式設定 ユーザー設定
0!/00!/00 でいいのでは
(たんたん) 2017/07/08(土) 12:44
微妙ですね。
0531 ← 文字列だよね? を日付に変換したいのか、データはそのままで単に yyyy/mm/dd 形式で表示 させたいのか・・・。 (別のセルなのかデータの入ったセルなのかわからんけど。)
データとして活用するなら、私は日付に変換するけどね。
(BJ) 2017/07/08(土) 13:05
たんたん様
0!/00!/00をユーザー定義でしましたが0531のままでした。
ユーザー定義ではないでしょうか?
BJ様
0531は、文字列です。
データをそのままでyyyy/mm/ddとしたかったです。
データとして活用します。日付関数のがいいですか?
こんなに何通りもあるのですね(涙)
(蜜) 2017/07/08(土) 13:53
では、解決ということで良いんですよね?
追加 14:24
>データをそのままでyyyy/mm/ddとしたかったです。
う〜ん。 区切り位置だと、変換場所を指定しないと上書きするけど? (0531という情報は残らない。)
(BJ) 2017/07/08(土) 14:15
衝突しましたがそのままアップします。
「0531」はセルの書式設定が文字列ということですか? 「'0531」と入力されてるということですか?
いずれにせよ、文字列をセルの書式設定で日付に見せかけても 日付データになるわけではありません。
元のデータを日付データに変換するか、別セルで関数で日付データ に変換するしかありません。 (カリーニン) 2017/07/08(土) 14:20
仰るとおり
「'0531」、文字列の「0531」
文字列なので別セルに関数で日付データに変換しないといけないですね。
区切り位置をする場合は、変換場所を指定してから、ユーザ定義でyyyy/mm/ddとすれば出来ました。
なので「'0531」、文字列の「0531」を
別セルに =TEXT(A1,"0-00")*1設定してからユーザ定義でyyyy/mm/ddとすると出来ました。
どっちが早いのかっていうとやはり関数の方なのですね。
(蜜) 2017/07/08(土) 15:03
>こんなに何通りもあるのですね(涙)
まともに解決できる案は何通りもありません。
A2の「yyyy」と合わせると言う仕様(?)はどこに行っちゃったのでしょうかねぇ? ※質問文自体が間違っているかも知れないので、そんなことを心配する必要はないかも知れないですが。。
にしても、来年の初めのころになった時、 このシートの結果は、大丈夫なんですかねぇ・・・
(半平太) 2017/07/08(土) 15:12
>にしても、来年の初めのころになった時、 >このシートの結果は、大丈夫なんですかねぇ・・・
後先考えないで、数式や手間、プログラムの短さだけに走る人が多いんで 知ったこっちゃねぇで、良いんじゃないですか。 言っても聞かないし。 くどく説明するのも面倒だし。 (BJ) 2017/07/08(土) 15:41
BJさん
アドバイス、有難うございます。
実のところ、私も少なからずそのモードで回答しております。
(半平太) 2017/07/08(土) 16:14
BJ 様 言っても聞くのにとても時間が掛かるので確かに面倒ですよね。
ありがとうございます。
(櫁) 2017/07/08(土) 17:48
>A1=0531 >A2=2017/06/17 >A1をA2と同じyyyy/mm/ddを表示させたいです。
A1は何年の5月31日になればいいんですかね?
A2の年に合わせるんだったら
=TEXT(A1,YEAR(A2)&"-00-00")*1 とか =DATE(YEAR(A2),LEFT(A1,2),RIGHT(A1,2)) ←の式はA1が文字列だということが条件
>=TEXT(A1,"0-00")*1
↑ の式だと今は「2017/05/31」になります。 ただし、年が替わって2018年になり、何かのタイミングでその式が再計算したら、 「2018/05/31」になってしまいますけど、それでもいいんですか?
ちょっと気になったので。 (笑) 2017/07/08(土) 18:18
現在のファイルであれば2017年でいいのですが
来年このファイルを開いたときに2018年に変わったら困ります。
今回のデータは、文字列と日付が同じ列にあるので
>A1=0531 >A2=2017/06/17 >A1をA2と同じyyyy/mm/ddを表示させたいです。 >=TEXT(A1,YEAR(A2)&"-00-00")*1を元に
=IF(OR(LEFT(A1,1)="0",LEFT(A1,1)="1"),TEXT(A1,YEAR(A2)&"-00-00")*1,A1)
にすると理想になりました。(嬉)
ありがとうございます。
ちなみに、自分で乗せた=TEXT(A1,"0-00")*1も調べて出来た物で、意味「-」について今更しらべていたら、2006年の投稿より
/は割り算の演算子でもありますので
!を前につけてただの記号だと宣言する必要があります。
=TEXT(A1,"0000!/00!/00")
または
=TEXT(A1,"0000""/""00""/""00")
とすれば 2006/01/21 となり数値化すればシリアス値に変換されます。
これを試してみると#VALUE!と表示されました。
これは、エクセル2013ではないからでしょうか?
=TEXT(A1,"0-00")*1 の中の「-」についての意味がまだわからないです。
横道それていたら申し訳ありません。。
(蜜) 2017/07/08(土) 19:17
>これを試してみると#VALUE!と表示されました。
=TEXT(A1,"0000!/00!/00")*1
この式が機能するのは、A1が「20170708」のように年・月・日がそろった8桁の数値(文字列でも)の場合。 A1に「20170708」のような8桁の値を入力すればエラーにはなりません。
A1が「0531」だったら =TEXT(A1,"0000!/00!/00") は「0000/05/31」になります。 「0000/05/31」なんて日付は存在しないので「*1」して数値化(日付データに変換)しようとしてもエラーになるということ。
>=TEXT(A1,"0-00")*1 の中の「-」についての意味がまだわからないです。
Excelに日付を入力する場合、普通は「2020/7/7」のようにスラッシュ「/」を入力すると思いますが、 「2020-7-7」とハイフン「-」で区切ってもExcelはこれを日付と認識します。 それが存在する日付であれば、ですが。
参考まで。 (笑) 2017/07/08(土) 21:12
ついでに ↓ の式についてですが、 =TEXT(A1,"0-00")*1
A1が「201707」のような年4桁+月2桁の場合、 「2017/7/1」という月初の日付に変換されます。
この場合は、来年になっても2018年の日付になったりはしません。
参考まで。 (笑) 2017/07/08(土) 21:51
(蜜) 2017/07/08(土) 22:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.