【先着1,000名様!】1,000円分をプレゼント!

年月日の分離
Excelで、2016/1/20 を年月日に分けて表示したく、
2016、1、20と表示させることできました。
しかし、データそのものは3つとも、2016/1/20のままです。
データを3つに分ける方法ありませんか。
値複写では、2016/1/20のままです。
left、mid、right関数は思いつきました。
しかし、これでは1桁、2桁ある月日の「場合分け」がありそうで面倒です。
確定申告の医療費の集計で、全件不可の通知があり、この問題と解釈しました。
なお、環境はWin10、Excel2013です。

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

A 回答 (3件)

year,month,day,それぞれに関数をつけてググれば


いっぱい出ます。
    • good
    • 0
この回答へのお礼

year,month,dayのそれぞれで検索し、検索結果の式から、分離できました。
ありがとうございました。

お礼日時:2017/03/05 23:58

>確定申告の医療費の集計


ご質問になっているのは、「医療費フォーム」の方の話ですよね。
[iryouhi_form.xls]

>2016、1、20と表示させることできました。
これを、コピーして、値貼り付けにしたら良いのではないかと思います。

>確定申告の医療費の集計で、全件不可の通知があり、この問題と解釈しました。
要するに、数式を埋め込んではならないのでは?

私ならこうします。
A列に日付を入れたとします。文字列でも、シリアル値でも、この場合は同じです。[2017/3/5]のスタイル(ゼロ・フィルでもOK)

B1~D1 を選択してドラッグコピーでA列のデータのある場所まで。

B1
=TEXT($A1*1,"YYYY")*1  
C1
=TEXT($A1*1,"M")*1
D1
=TEXT($A1*1,"D")*1

かならず、最後に、*1 を入れます。
書式は、数値または標準

範囲を、Ctrl + C コピーして、
貼り付ける場所で、右クリック、値貼り付けオプションで、数字だけを貼り付けます。文字列のままにしないことがコツです。
「年月日の分離」の回答画像3
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
値複写では、意図する表示にならず、尋ねました。
また、ご指摘の方法は複雑と考えました。

お礼日時:2017/03/06 00:11

こんばんは!



元データはシリアル値なのでは?
その場合仮にA列2行目以降に日付データがあり、B・C・D列にそれぞれ表示すると
B2セルに
=YEAR(A2)

C2セルに
=MONTH(A2)

D2セルに
=DAY(A2)

としてみてください。

※ 文字列の場合は質問文通りMID関数などで対応する必要があると思いますが、
B2セルに
=LEFT(A2,4)

C2セルに
=MID(A2,6,1)&IF(MID(A2,7,1)="/","",MID(A2,7,1))

D2セルに

=IF(ISNUMBER(RIGHT(A2,2)*1),RIGHT(A2,2),RIGHT(A2,1))

という数式を入れてみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

前半でご指摘の通り、B2にyear(A2)、c2にmonth(A2)、d2にday(A2)とすることで解決できました。コメントありがとうございました。

お礼日時:2017/03/06 00:11

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

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

Q再計算の負担度低い関数式

お世話になります。

例題から説明しますと、

J列に「数値、文字列」を入力し、
それがE列からG列の間にある数値、文字列に含まれているかどうかを検索するには、
COUNTIF関数を用いています。

=COUNTIF($E:$G,$J2)

しかし、再計算する上で負担の大きいCOUNTIF関数を用いず、他の関数を用いるとすれば
どんな関数(式)が考えらるでしょうか?

Aベストアンサー

返事ありがとうございます。

#6の補足:
msdnのリンク先
>私のような入門レベルの者にとって、とても難しく、理解するには一苦労ですが、

私もです。合計で5回ぐらい読んで、答えなくてはならなくて、やっと意味が通るようになりました。非常に、わかりにくいです。揮発性とか不揮発性という言葉すら、変な言葉ですからね。不揮発というのは、セルの関数の中に検索データが残るタイプの検索値です。それであれば、負担は大きくないし、COUNTIFも、こちらのタイプです。

別のカテゴリのリンク先の話も同様ですが、かなり難しい内容だと思います。

Q〖エクセル〗MOD関数で、小さな数字を大きな数字で割り算した場合が理解できません

GOOの皆様いつもありがとうございます。
例えば1を2で割り算した場合は、0.5ですが、
MODした場合、余りの数はなぜ1になるのですか?
簡単に説明して頂ける方はいらっしゃいますか・・・

Aベストアンサー

>補足
そのとおりですね。
その例で言えば、10を3で割った余りは1です。
では、余った1を3で割るとどうなりますか?
3で割れないから1余ったのですよね?
なら、余りは1のままです。
割られる数が割る数より小さい正の値であれば、商は0、余りは割られる数そのままです。

Qエクセル関数の不思議?

エクセル関数でお聞きします。
別表のようにc5に 258と数値があります。
これを 6行目に Left関数、Mid関数、Light関数で それぞれ 2,5,8と分解します。
次にこの 2,5,8を Sum関数で =sum(c6:e6)で計算すると 0と表示されます。
次に =c6+d6+e6 で個々に足し算すると 正解の15が表示されます。
これはなぜでしょうか。
また、今状態で SAM関数で正解を導くことはできますか?

Aベストアンサー

LEFT等で抽出したものは文字列となるからでしょうね。
SUMに反映させたければ、6行目の式の最後に*1とか+0を追加してみましょう。

Qエクセルの関数について

エクセルで計算式をセルに設定したいのですが、どんな関数にすれば良いのか、お教えください。
計算式は単純ですが、解を小数点第2位までとしたいのです。第3位からは切り捨てにしたいです。

(例)
セルに次の計算式を設定します。
A x 1.23% =
Aを変数、1.23%を定数とします。解を小数点第2位まで求めて、第3位からは切り捨てたいのです。

しかし、現状ではどうしても第3位が四捨五入されて第2位までの解となってしまいます。

ご存知の方、どうかよろしくお願いします。

Aベストアンサー

=ROUNDDOWN(A1*1.23%,2)

QExcelで2つ1組の数値の内、1つの数値を別の数値とセットにする方法

①のシートのA列に型番、B列にシリアルが入っており、②のシートのA列に型番のみが入っています。
①と②の型番は完全一致しているものもあれば、型番の末尾が途切れてしまい完全一致しないものもありますし、数文字しか一致しないものもあります。
②の型番の隣に①のシリアルを入れたいのですが、何かうまく関数を使えば簡単にできるでしょうか?

型番をそれぞれ昇順にして貼り付けようとしたのですが、①と②の型番が完全一致ではないため、同じ並びにならず、そのまま貼り付けることができません。
何かいい方法があれば教えて下さい。
宜しくお願い致します。

例】
①シート
A列 B列
ABC 1234
PQR 2345
STU 5678
XYZ 1209
②シート
A列 B列
TU
XYS
PQR
BC

分かりづらかったらすみません。。。
宜しくお願い致します。

Aベストアンサー

部分的に重複しているような型番もあるのでしょうか?
ABCとABDという型番があり、②に欠けたABという型番があった場合、ABCかABDか判断する方法が無いと思います。
また、②のXYSというのはXYZが間違えて?入力されているような場合を想定していると思われますが、それもどの程度の一致で判断するのでしょう?
②にXYSとあって、①にXYZとEYSが存在した場合、どちらと判定すればよいか分からないと思います。

何らかの判断基準を決めたとして、
まずVLOOKUPで完全一致を探し、一致したもののシリアルを取得します。
フィルタを使い、エラー表示のものだけ表示し、式の内容を変更します。

判断基準の優先度が高いものから順に試します。
場合によっては①のA列とB列の間に列を挿入し、判定用の補助セルとして使います。
例えば、前から5文字一致したら同一とみなす。とした場合、
VLOOKUPとLEFTにより、左から5文字抽出したものが一致した場合にシリアルを取得します。
先ほど同様にフィルタでエラーのものだけ表示させ、また別の条件の式を入力します。

例えば今度は右から5文字一致したら、とかでしょうか。
あるいは②の文字が欠けているとして、②の全てを含むセル。という条件もあるでしょう。
この場合SUMPRODUCTやFIND、INDIRECT、ROW等を使い、一致するものがある列の行番号を取得する必要があると思われます。

データの数にもよりますが、残り少なくなれば判定式を考えるより目で見た方が早いかもしれません。

自分が思いついたのはこの程度です。
人間が条件を指定してあげないと機械も判別できないですよ。
もっと上手いやり方もあるかもしれないので、他の回答者に期待。

部分的に重複しているような型番もあるのでしょうか?
ABCとABDという型番があり、②に欠けたABという型番があった場合、ABCかABDか判断する方法が無いと思います。
また、②のXYSというのはXYZが間違えて?入力されているような場合を想定していると思われますが、それもどの程度の一致で判断するのでしょう?
②にXYSとあって、①にXYZとEYSが存在した場合、どちらと判定すればよいか分からないと思います。

何らかの判断基準を決めたとして、
まずVLOOKUPで完全一致を探し、一致したもののシリアルを取得します。
...続きを読む

QエクセルIF関数について教えてください

A列に年齢、B列に性別が入っています。年齢が50以上で男性だったら”E男”、49以下の男性だったら”他男”、50以上の女性だったら”E女”、49以下の女性だったら”他女”とするにはどうしたらいいですか?

Aベストアンサー

C1セルに以下を入れる

=IF(B1="男",IF(A1>=50,"E男","他男"),IF(A1>=50,"E女","他女"))

Q日付入力時"/"の省略化は?

Excel2002ですが、日付セル(yyyy/mm/dd書式)に日付を入力する際”/”を省略したい。
「170328」と入力すると「2017/03/28」と表示させることができませんか?。

Aベストアンサー

>「170328」と入力すると「2017/03/28」と表示させることができませんか?。

PCのヘビーユーザーではありませんが、出来ないと思います。
”/”なしで数値を入力すると、PCはシリアル値として処理する筈です。
実際に「170328」を日付として入力すると「2366年5月4日」になります。
此れは1900年1月1日から数えて「170328日目」が「2366年5月4日」と云う事です。

逆に「2017年3月28日」を表示させるには、
1900年1月1日からの経過日を入力すれば、可能でしょうが。
(実際には「42822」になると思います。)

QExcel 計算式の中で使っているシート名を変更しても使えるような式が知りたい

商品別売上表のようなもので、『累計表2から累計表1を引いて、当月を出す』 時に
毎月sheet名を変更しなくても済むようにできるでしょうか?

sheet1が(sheet名:10月)10月までの累計
sheet2が(sheet名:11月)11月までの累計 が入っています。
sheet3に11月単月分を表示させたいので、sheet2(11月)-sheet1(10月)の式が入っていますが

翌月に同じ作業をするとき、sheet1(10月)を削除して新たに12月累計シートを持ってきて
”12月ー11月”と、また式を入れなおしています。
シートを削除しても、常にシート2からシート1を引いた結果がシート3に出るようにしたいのですが
どうしたら良いでしょうか?

Aベストアンサー

1.シート名自体を変えない
つまり、シート3(単月計算用)にある数式は、常に、=Sheet2!A1-Sheet1!A1

2.数式を一気に置換する
#2さんの関連リンク

3.INDIRECT関数の活用
たとえば、A1セルに「10月」、B1セルに「11月」と書いてあるとして、
他のセルに、
=INDIRECT(B1&"!A1)-INDIRECT(A1&"!A1")
とすれば、11月のA1セル-10月のA1セル の数値となります。
http://www.relief.jp/itnote/archives/001697.php

それ以降はシート名のセルを書き換えれば全部変わりますのでラクです。
#2さんの後半部分もこれを指していると思います。

Q【Excelの不思議な日付処理の初期値の疑問】日付データの基準日が1900/01/00 0:00なの

【Excelの不思議な日付処理の初期値の疑問】日付データの基準日が1900/01/00 0:00なのは何故ですか?

1900/01/01 0:00が基準日だと思っていましたが、

=now()-now()

にすると1900年1月0日0秒という存在日付の0日が基準日になっていることが分かりました。

日付データの基準日が存在しない日にちなのに計算は正しく表示されます。

どういう仕組みで整合性が取れるのか教えてください。

Aベストアンサー

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13171705193
こっちに有効な回答が最初の最初に入っているのに何故マルチポストをするのやら……

QExcel 重複する日付が特定条件の何回目か計算する

とある1室を使用する有料の集まりがあります。同一日には内容A,B,Cのいずれか
1つが1回だけ開催され、Aに参加すると100円、Bなら200円、Cでは300円を、翌月
最初に参加したとき清算します。清算時点で、紙の出席簿に基づいて以下のような
シートが作られます。

名前 清算 参加 金額 内容-回目
山田 5/10 4/11 100 A-1
山田 5/10 4/16 200 B-1
山田 5/10 4/21 200 B-4
山田 5/10 4/27 100 A-4
鈴木 5/10 4/10 300 C-1
鈴木 5/10 4/13 300 C-2
鈴木 5/10 4/21 200 B-4
鈴木 5/10 4/25 300 C-3
鈴木 5/10 4/27 100 A-4
佐藤 5/11 4/11 100 A-1
佐藤 5/11 4/13 300 C-2
佐藤 5/11 4/18 200 B-3
佐藤 5/11 4/21 200 B-4
佐藤 5/11 4/26 100 A-3
佐藤 5/11 4/27 100 A-4
田中 5/12 4/15 100 A-2

この表の末尾の田中さんの行で100と入れ終わった段階で、「内容-回目」の列に「A-2」を
表示させ、同時に山田さんの4行目が「A-3」から「A-4」に(鈴木さんの4行目や佐藤さんの
5行目も同様に)変わるようにするには、「内容-回目」の列にどのような関数を入れれば良い
でしょうか。

とある1室を使用する有料の集まりがあります。同一日には内容A,B,Cのいずれか
1つが1回だけ開催され、Aに参加すると100円、Bなら200円、Cでは300円を、翌月
最初に参加したとき清算します。清算時点で、紙の出席簿に基づいて以下のような
シートが作られます。

名前 清算 参加 金額 内容-回目
山田 5/10 4/11 100 A-1
山田 5/10 4/16 200 B-1
山田 5/10 4/21 200 B-4
山田 5/10 4/27 100 A-4
鈴木 5/10 4/10 300 C-1
鈴木 5/10 4/13 300 C-2
鈴木 5/10 4/21 200 B-4
鈴木 5/10 4/25 300 C-3...続きを読む

Aベストアンサー

メインの表をA~G列、別表をH~M列で作成しましょうか。
(※画像の青字は自動で表示されます)

1.E2セルには、=IF(D2="","",IF(D2=100,"A",IF(D2=200,"B","C"))) と入力し、オートフィル(下へ連続コピー)。
2.F2セルには、=IF(E2<>"","-","") と入力し、オートフィル(下へ連続コピー)。
3.G2セルには、=IF(D2="","",IF($E2="A",VLOOKUP($C2,$H:$I,2,FALSE),IF($E2="B",VLOOKUP($C2,$J:$K,2,FALSE),IF($E2="C",VLOOKUP($C2,$L:$M,2,FALSE))))) と入力し、オートフィル(下へ連続コピー)。
4.H2セルには、=IF($E2="A",IF(COUNTIF(H$1:H1,$C2)>0,"",$C2),"") と入力し、オートフィル(下へ連続コピー)。
5.I2セルには、=IF(H2="","",RANK(H2,H:H,1)) と入力し、オートフィル(下へ連続コピー)。
6.J2セルには、=IF($E2="B",IF(COUNTIF(J$1:J1,$C2)>0,"",$C2),"") と入力し、オートフィル(下へ連続コピー)。
7.K2セルには、=IF(J2="","",RANK(J2,J:J,1)) と入力し、オートフィル(下へ連続コピー)。
8.L2セルには、=IF($E2="C",IF(COUNTIF(L$1:L1,$C2)>0,"",$C2),"") と入力し、オートフィル(下へ連続コピー)。
9.M2セルには、=IF(L2="","",RANK(L2,L:L,1)) と入力し、オートフィル(下へ連続コピー)。
4.D列に「金額」を入力すれば、「内容-回目」は自動で表示されます。
5.[ファイル][印刷範囲][印刷範囲の設定]で、A~D列を設定すれば、メインの表のみ印刷されます。

メインの表をA~G列、別表をH~M列で作成しましょうか。
(※画像の青字は自動で表示されます)

1.E2セルには、=IF(D2="","",IF(D2=100,"A",IF(D2=200,"B","C"))) と入力し、オートフィル(下へ連続コピー)。
2.F2セルには、=IF(E2<>"","-","") と入力し、オートフィル(下へ連続コピー)。
3.G2セルには、=IF(D2="","",IF($E2="A",VLOOKUP($C2,$H:$I,2,FALSE),IF($E2="B",VLOOKUP($C2,$J:$K,2,FALSE),IF($E2="C",VLOOKUP($C2,$L:$M,2,FALSE))))) と入力し、オートフィル(下へ連続コピー)。
4.H2セルには、...続きを読む


人気Q&Aランキング