重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

CSVで日次時系列データをダウンロードしました。
私が利用したいのは月の最初と最後の日のデータのみなので、
その部分のみを抽出する方法を知りたいです。
よろしくお願いします。

「エクセルで日次時系列データから月初と月末」の質問画像

A 回答 (4件)

>月の最初と最後の日のデータのみ


とは、どういうことなのか。
添付図の 9/25 が最後の日だとすると、抽出したいのは
9/25の複数の(全)データなのか、最後の12:12の分1個のデータなのか。
いかが。
    • good
    • 0

作業列をいくつか用意して



int関数で日時データから年月日シリアルデータを取り出す。
day関数とif関数を用いて月初めを1、それ以外を0とする。
eomonth関数とif関数を用いて月終わりを1、それ以外を0とする。

これらと数値データをsumproduct関数で処理すれば月初めのみのデータは得られる(それ以外は0)月終わりも同様。
これらの論理和を取れば月初めと月終わりのデータになる。
もっとスマートな処理が有るに違いないかも知れないが泥臭くやればこうなる。
    • good
    • 0

こんにちは



「月の最初」と「月の最後」というのが、「ついたち」と「月末日」を意味しているのか、存在するデータ内で「月の最初」と「月の最後」を意味しているのか(=必ずしも「ついたち」「月末日」ではない)不明ですが、前者であるなら、先に「ついたち」と「月末日」のテーブルを用意しておいて、元のデータから検索すれば済むことと思いますので、以下は後者の場合の例です。

日付データがA1セルからあるものとし、必ず昇順(日付・時刻早いものから順)に並んでいるものと仮定しました。

抽出した結果を表示するセル範囲の1行目にはデータの1行目が来るので、
例えば、G1セルに、
 =A1
として右方にフィルコピーしておきます。
(存在するデータの中では、1行目は必ず「月の最初」に当たるので…)

2番目の、日付に相当するセル(G2セル)に、
=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$2:$A$1000)/((MONTH($A$2:$A$1000)>MONTH($A$1:$A$999))+(MONTH($A$2:$A$1000)<MONTH($A$3:$A$1001))),ROW(A1))),"")
の式を入れて、右方、下方にフィルコピー

では、いかがでしょうか?
    • good
    • 0

IF関数で「日時の列を参照して 月 が上の行と下の行で異なる」という列を作って、


そこが成立する行のみ残せば いいです
(覚えてもらうためにあえて実例は書きませんでした)
    • good
    • 0

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