
私は Excel プロジェクトに取り組んでおり、20 年間の毎日の利回り率データを含む Excel シートがあります。各月の最初のエントリの利回りのみを取得したいのですが、Excel を使用してこれをどのように実現できますか?
私は Excel を使い始めたばかりなので、詳しいアドバイスをいただければ本当にありがたいです。
tl:dr 何らかの方法で日次データを月次データに変換する(各月の最初の発生)
答え1
各月の最初のエントリを生成するには、以下の方法に従ってください。
使い方:
セル O58 の配列 (CSE) 数式:
{=MIN(IF(TEXT($K$58:$K$73,"MMMM")=$N58,$K$58:$K$73))}
セル P58 の数式:
=IFERROR(INDEX($L$58:$L$73,MATCH($O58,$K$58:$K$73,0)),"")
注意
列 O のヘルパー データをスキップする場合は、次の配列 (CSE) 式を使用できます。
{=IFERROR(INDEX($L$58:$L$73,MATCH(MIN(IF(TEXT($K$58:$K$73,"MMMM")=$N58,$K$58:$K$73)),$K$58:$K$73,0)),"")}
配列数式を終了するにはCtrl+Shift+Enter。
必要に応じて、数式内のセル参照を調整できます。
答え2
日付が列 A にあり、収量データが列 B にあると仮定します。列 C を「初日ですか?」と呼び、次の数式を C2 に入力します。
=DAY(A2)=1
または週末をスキップする(つまり、月の最初の平日)
=DAY(A2)=DAY(WORKDAY(EOMONTH(A2,-1),1))
または、より確実なオプション(日数/データポイントが欠落している場合)
=MONTH(A3)<>MONTH(A2) ...start from C3 (make C2 = TRUE)
これは文字通り、(上の行と比較して)月が変更された最初のデータ ポイントを取得します。
セル C2 の右下隅をダブルクリックします (クリックする前にマウス カーソルがプラス記号に変わります)。これにより、すべてのデータとともに数式が自動入力されます (数式列とデータの間に空白の列がない限り)。
次に、ヘッダー行全体を選択し、[ホーム] > [並べ替えとフィルター] > [フィルター] をクリックします。各列ヘッダーの横に小さな矢印が表示されます。[初日ですか?] の横にある矢印をクリックし、[FALSE] のチェックを外します。これで、その月の初日以外の日付はすべて非表示になります。必要に応じて、このデータをコピーして新しいシートに貼り付けることができます。すべてのデータを再度表示するには、[ホーム] > [並べ替えとフィルター] > [クリア] をクリックします。