http://okwave.jp/qa3857919.html
にて似たような質問をしました。
今回は数値ではなく日付の場合です。
Sheet1のB列に「xxxx/yy/zz」というように年月日が入力されています。
常にこの年月日の最新年月日の一ヶ月前の年月日をSheet2の指定セルに分割して表示させることは出来ないでしょうか?
例えば以下の場合、
Sheet1のB2に2008/1/31、B3に2008/2/29、B3に2008/3/31と入力されていた場合にSheet2のA18に「0」、B18に「8」、D18に「0」、E18に「2」、G18に「2」、H18に「9」と表示させたいのです。
Sheet1のB列には毎月年月日が追加されていきます。
Sheet1のB4に2008/4/30と追加されれば、Sheet2のA18に「0」、B18に「8」、D18に「0」、E18に「3」、G18に「3」、H18に「1」と表示されるようになります。
解りづらいかもしれませんが、よろしく御教示お願い致します。
No.6
- 回答日時:
#2です。
もし、前月末日が得たいなら、
=MID(TEXT(EOMONTH(MAX(Sheet1!B:B),-1),"yymmdd"),1,1)
などと、EOMONTH関数が使えます。
ただし、この関数もEDATE関数と同様「分析ツール」アドインに
入っている関数です。
No.5
- 回答日時:
質問者の質問の仕方によって回答が決まります。
「望んだ回答でなかったから」といって 売り言葉に買い言葉では困りま
す。回答者には色んな人がいますし 色んなアプローチの仕方があります。
知らない人に道を尋ねるのに 相手の返事があなたに対して批判的だった
からといって あなたが相手を批判する理由にはなりません。
ましてや 質問の仕方が悪いという指摘をもらって嫌がる理由などありま
しょうか。ありがたく意見を頂戴しておけばいいではありませんか。
他の方法は既に出ていますから 例で出ている場合にのみ対応する方法を
提示します。みている限り月末を表示したいだけのようですから
=MID(TEXT(MAX(Sheet1!$B:$B)-DAY(MAX(Sheet1!$B:$B)),"yymmdd"),COLUMN(A18),1)
***
下の方が回答されている EDATE関数は アドイン関数です。
使う時は [ツール]→[アドイン]→[分析ツール]にチェックして[OK]
をしておく必要があります。
No.4
- 回答日時:
#2です。
> あと、質問では年と月と日の間に一列づつ間が開いているようなので、
> #2さんが言われるように、COLUMN関数で横コピーはしんどいかも..
じつは「#2さん」は「#1さん」のつもりだったんですが、
「COLUMN関数で横コピー」してもコピー後にいらないセルのデータは
上書きしてしまえば済むことですね。
むしろ横コピーの方が制作効率は上がりますね。
#1さん、失礼なことを言ってしまいました。ゴメンナサイ。
No.3
- 回答日時:
#2です。
私が示したのは、Sheet1に次々と追加されていく日付が、
常に新しい日付である場合です。
古い日付が追加されていくような場合はMAX関数は使えません。
> 「1セルに1文字」って何か意味があるのですか?
┌─┬─┬─┬─┬─┬─┬─┬─┬─┐
┃0 ┃8 ┃年 ┃0 ┃2 ┃月 ┃2 ┃9 ┃日 ┃
└─┴─┴─┴─┴─┴─┴─┴─┴─┘
といったようなことをやりたい方が結構おられるようで。
エクセルをワープロとして使っていると、こういう要求がでますね。
あと、質問では年と月と日の間に一列づつ間が開いているようなので、
#2さんが言われるように、COLUMN関数で横コピーはしんどいかも...
No.2ベストアンサー
- 回答日時:
最新の日付は
=MAX(Sheet1!B:B)
で算出できますので、その1ヶ月前なら
=EDATE(MAX(Sheet1!B:B),-1)
です。
これを「yymmdd」の形で表すようにするには、
=TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd")
です。
そこで、
Sheet2のA18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),1,1)
Sheet2のB18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),2,1)
Sheet2のD8に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),3,1)
Sheet2のE18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),4,1)
Sheet2のAG18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),5,1)
Sheet2のH18に
=MID(TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd"),6,1)
で可能ですが、
「TEXT(EDATE(MAX(Sheet1!B:B),-1),"yymmdd")」の部分は、
別のセルに記述しておき、(仮にSheet2のセルA1と仮定すると)
Sheet2のA18に
=MID(Sheet2!$A$1,1,1)
などと書くことができるようにした方がよいでしょう。
ありがとうございます。
最初、この数式を使ってもその通りにならなかったので、補足質問させていただこう、と思っていた矢先に#5様が、
>使う時は [ツール]→[アドイン]→[分析ツール]にチェックして[OK]
>をしておく必要があります。
という回答があったので、これで一気に解決できました。
本当に助かります。
No.1
- 回答日時:
この質問は3つの内容をまとめて聞いています。
とても欲張りですね。それぞれが1つの質問でもよいくらいの内容です。1)B列の最後の値(日付)を取得する
2)取得した日付の1カ月前の日付を求める
3)その日付をA18セルから順次表示する
1)COUNTA関数を用います。
=COUNTA(B:B)
でB列の「何か入力されたセルの数」を求められます。B1セルにも何か(空白でもよい)を入力してあれば、この値は最終行を返します。
すると
=OFFSET($B$1,COUNTA(B:B)-1,0)
が最下行の日付を取得する式になります
2)実はこれが一番難しいです。
2008/3/31の1カ月前→2008/2/29
2008/3/30の1カ月前→2008/2/29
2008/3/29の1カ月前→2008/2/29
2008/2/28の1カ月前→2008/2/28
でよいですか?
これは
=DATE(YEAR(OFFSET($B$1,COUNTA(B:B)-1,0)),MONTH(OFFSET($B$1,COUNTA(B:B)-1,0))-1,IF(DAY(OFFSET($B$1,COUNTA(B:B)-1,0))>DAY(DATE(YEAR(OFFSET($B$1,COUNTA(B:B)-1,0)),MONTH(OFFSET($B$1,COUNTA(B:B)-1,0)),0)),DAY(DATE(YEAR(OFFSET($B$1,COUNTA(B:B)-1,0)
で求められます。
3)やっと最後の部分です。どこかのセルに
=TEXT(DATE(YEAR(OFFSET($B$1,COUNTA(B:B)-1,0)),MONTH(OFFSET($B$1,COUNTA(B:B)-1,0))-1,IF(DAY(OFFSET($B$1,COUNTA(B:B)-1,0))>DAY(DATE(YEAR(OFFSET($B$1,COUNTA(B:B)-1,0)),MONTH(OFFSET($B$1,COUNTA(B:B)-1,0)),0)),DAY(DATE(YEAR(OFFSET($B$1,COUNTA(B:B)-1,0)),MONTH(OFFSET($B$1,COUNTA(B:B)-1,0)),0)),DAY(OFFSET($B$1,COUNTA(B:B)-1,0)))),"yymmdd")
と入力してください
仮にこのセルをSheet1のZ1とします
Sheet2のA18には
=MID(Sheet1!$Z$1,COLUMN(A1),1)
を入力して右方向にコピーしてください
並の質問の3倍疲れました(^^; これが「急がない」質問ですからやってられません。きっと回答に対するレスポンスも悪いんでしょうね。
最後に個人的な感想ですが「1セルに1文字」って何か意味があるのですか? エクセル的にはあまり意味のないことだと思うのですが…
かなりお手数をおかけしたようで恐縮ですが、文頭・文末に批判というか愚痴というか・・、これは要らないんじゃないですか?
それだったら初めからご回答いただかなくてもよいと思います。
私も不愉快ですし、また第三者の方々も見て気分のよいものではないと思いますよ。
>この質問は3つの内容をまとめて聞いています。
Excelに精通している方にはそういう解釈になるのでしょうが、私のように精通していないものにとっては内容がいくつになるかなんて知ったことではありません。
>これが「急がない」質問ですからやってられません。
やってられなければやらないでください。
>きっと回答に対するレスポンスも悪いんでしょうね。
過去の私のExcel関連の質問見ましたか?
http://okwave.jp/qa3857919.html
これも「急がない」質問ですが、回答に対するレスポンス、遅いですか?
>最後に個人的な感想ですが「1セルに1文字」って何か意味があるのですか?
ここは質問に対して回答するコミュニティです。感想は要りません。
私もここでこんなことを言っているくらいですから、人のことを言えた立場ではありませんが・・・。
Excelをどのように活用しようと人の勝手ではないですか?
こう言う使い方はしてはいけない、って規則があるなら別ですが、そんな話、聞いたことがありません。
それとも私がExcelに精通していないから、知らないだけでこう言う使い方は規則に反するのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Excel(エクセル) Excelの関数 5 2023/07/07 05:26
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報