[[20081003122735]] 『年を算出』(TAD) ページの最後に飛ぶ

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

 

『年を算出』(TAD)

 いつも勉強させて頂いています。

     A     B      C 
1  1003   12
2  1003    0
3  0908   13

 2008年10月3日に在庫確認し所、C列に年のみを表示させたいのですが、
 どんな関数を使用すれば分かりません。
 A列が在庫の日付で、B列が経過月を表示しています。
 C1に 12ヶ月前なので2007と表示
 C2に 0ヶ月なので2008と表示
 C3に 13ヶ月なので2007と表示させたいです。
 YEAR? MONTH?・・・どんな式で表示させる事が出来ますでしょうか?
 どなたかご指導下さい
 WIN_XP   Excel2003  

 A列は文字列ですか?それともシリアル値になってますか?
 文字列なら =YEAR(EDATE(LEFT(A1,2)&"/"&RIGHT(A1,2),-B1))
 シリアル値なら =YEAR(EDATE(A1,-B1))
 (A/H)


 すみません〜問題が生じました。
 A1〜A3行の数値は文字列で固定、A/H様の回答を頂きました式を使用しているのですが、
 A1に0101 B1に9を入れるとC1は2007になってしまいます。
 9ヶ月前ですので本来で有れば2008と表示させたい(今は10月と認識)のですが、
 試行錯誤やってみましたが分かりません。
 どなたか助けて頂けませんでしょうか・・・お願いします。


 >A1に0101
 って(2008年)1月1日でしょ?
 なら9ヶ月前は2007年であってんじゃないの?
 最初の質問と次の質問では意味が違ってるような・・・
 (基準となる日付が不透明)
 (とおりすがり)

 すみません・・説明不足でした。 
 もう一度教えて下さい。
 作成した日付を基にしています。A1に0101と入力された場合、B1には9(ヶ月前)と表示されます。
 作成した日付が10月ですので、9ヶ月前と表示されています。
 C1に9(ヶ月前)ですので2008と表示させたいです。
 作成した日付が3月で、A1に0101と入力されていますとB1には2(ヶ月前)と表示され、
 C1には2008と表示したいのです。

 ???

 >作成した日付を基にしています
 A列が作成日付? 

 >0101と入力された
 文字列とのことですが、この「0101」がどうやったら
 2008年と認識できるんでしょうか?

     A     B      C 
1  1003   12
2  1003    0
3  0908   13   ← の「0908」は2007年9月8日?

 >B1には9(ヶ月前)と表示されます。
                         ^^^^^^^^
 ここまで出来てるならできそうな気が・・・
 (とおりすがり)

 作成日付とA列を比較して、B列を求めている、てことでしょうか?
 ということであるなら、A列には年のデータが入力されている???
 それなら、=YEAR(A1) って、まさかねぇ。。。

 (名前はまだない)

 すみません。説明ベタで・・もう一度ご指導願います。
    A      B      C      D

 1 1003   12           2008
 2 1003    0
 3 0908   13
 4 0101   09

 A列が売上作成した日付、B列が現在からの経過月、C列に関数式を入れたいです。
 D1に今現在の年の2008を入力した場合、C1〜C4に答えが出るにはどうすれば良いのでしょうか??
 若しくは、D1に2008と入力しなくても出来るので有れば一番良いのですが・・・。
 A列・B列とも文字列です。
 C1に 2007
 C2に 2008
 C3に 2007
 C4に 2008と表示させていのですが・・・助けて下さい〜


 こんばんは〜♪

 こんな表の場合です。。。

 ┌─┬────┬───────┬──────┬────────────┐
 │  │   A    │      B       │     C      │           D            │
 ├─┼────┼───────┼──────┼────────────┤
 │ 1│売上日  │経過月        │  2008/10/15│←基準となる日          │
 ├─┼────┼───────┼──────┼────────────┤
 │ 2│    1003│            12│        2007│                        │
 ├─┼────┼───────┼──────┼────────────┤
 │ 3│    1003│             0│        2008│                        │
 ├─┼────┼───────┼──────┼────────────┤
 │ 4│    0908│            13│        2007│                        │
 ├─┼────┼───────┼──────┼────────────┤
 │ 5│    0101│             9│        2008│                        │
 └─┴────┴───────┴──────┴────────────┘
          ↑
       文字列

 >B列が現在からの経過月、

 ですから。。。
 たとえば、C1セルへ基準とする日付を入力します。

 C2セルへ
 =EDATE($C$1,-B2)
 下へコピー。。。
 表示形式 → yyyy

 表示形式を使わない場合は
 C2セルへ
 =YEAR(EDATE($C$1,-B2))
 下へコピー。。。

 常に更新されたい場合は、式の中の$C$1 を TODAY()
 にすればいいですネ!!。。。

 ★TADさんの質問で、1番問題と思うのは。。
 A列の日付を入力の手間を惜しんでか、どうかわかりませんが
 文字列入力されていることです。。。

 これで後で式が難しくなって、苦労します。
 日付や時間の入力は、シリアル値入力が基本です。。

 A列もシリアル値入力なら。。。
 C1の式も =YEAR(A1)  で済みます。

 たぶん、B列の経過月も文字列の日付を
 シリアル値に変換した式を入れているのではと思います。
 この式も本来、A列がシリアル値なら簡単になります。

 いろいろ書きましたけれど。。。
 私の回答が、カン違いだったり
 気にさわりましたら。。ゴメンナサイ!!。。。

 ご参考にどうぞ。。。

 。。。Ms.Rin〜♪♪


 それぞれを 文字列で入力する意図は
 何ですかね?
 (毎年その日に調べたことになっている
  ・・・とか?)

 B列に数式が入っているなら
 その数式を載せてみるのが良いと思いますが。

 (HANA)

 HANAさん有難う御座いました。
 出来ました!!
 そもそもA列に文字列で私は入力はしたくないのですが、会社で使用しているデーターをエクセルに
 コピペしたら自動的に文字列でなってしまうからです。
 かといってシリアル値で入力すると後のデーターがおかしく??なってしまうので文字列を
 仕方なく使うことになってしまいます。
 説明ベタで申し訳有りません、ご指導頂きました方々有難う御座いました。


 えっと・・・回答なさったのは
 Ms.Rin〜♪♪さんですよ。

 解決なさったようでよかったです。

 (HANA)

 すみません・・Ms.Rin様有難う御座いました。
 有効に使用させて頂きます。


コメント返信:

[ 一覧(最新更新順) ]


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