• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの関数について )

エクセルの関数で該当月の最初と最後の値を返す方法

このQ&Aのポイント
  • エクセルの関数を使って、該当月の3行目の値が1になっている最初のセルの1行目と最後のセルの1行目の値を返す方法を知りたいです。作業用の列/行は作成できず、3行目が1になっている何番目ではなく、最初と最後を指定したいです。
  • 条件として、C40-N51の範囲にそれぞれの月のデータを作成し、月によっては6が1日だけある日(31日)があります。その場合は関数で導き出される最初と最後の値を○/31としたいです。
  • HLOOKUPやMATCHを組み合わせて試してみましたが、うまくいきませんでした。エクセルの関数を使って該当月の最初と最後の値を取得する方法を教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 外していたらごめんなさい。 ↓の画像で列方向に31日(AG列)までデータがあり、行方向は12月までのデータで各月は3行ごとでB列はセルの結合をしているとします。 C40セルに =INDEX($C$2:$AG$2,,SMALL(IF(OFFSET($C$1:$AG$1,MATCH($B40,$B$2:$B$37,0)+2,,1)=C$38,COLUMN($A:$AE)),1)) D40セルに =INDEX($C$2:$AG$2,,LARGE(IF(OFFSET($C$1:$AG$1,MATCH($B40,$B$2:$B$37,0)+2,,1)=D$38,COLUMN($A:$AE)),1)) どちらも配列数式になってしまいますので、 この画面から各セル内に数式をコピーした後に、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 最後にC40・D40セルを範囲指定し、D40セルのフィルハンドルでオートフィルで列方向と行方向にコピーすると 画像のような感じになります。 これで、1~6の数値の最小の日付・最大の日付が表示されると思います。 ただ・・・ >・3行目が1になっている何番目などではなく、最初と最後を指定したい。(月によっては6が1日だけある日(31日)があり、その場合は本関数で導き出される最初と最後を○/31としたい。) という部分に関しては理解できていませんので、 対処できているかどうかは判りません。 尚、エラー処理はしていません。 こんなんで良かったのですかね? 以上、参考になれば幸いですが、 最初に書いたように的外れなら 読み流してくださいね。m(__)m

rihitomo
質問者

お礼

ありがとうございます! 完璧にできました。 配列関数を使用するということですね。 「6が1日だけある」というのも解決しました。 該当数字の最初と最後の日を導き出すので、該当数字が1つしかない場合エラーになったりしないか心配しておりましたが、杞憂だったようです。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No3です。 最後の日付は次の式に訂正してください。 =INDEX(A2:AG4,1,MAX(IF($C$4:$AG$4=1,COLUMN($C$4:$AG$4),""))) 式はCtrl+Shift+Enterで確定します。

rihitomo
質問者

お礼

ありがとうございます。 こちらの関数でもできたのですが、オートフィルで12月までを解決できたNo.4の方をベストアンサーに選ばせていただきました。 でも助かりました! ありがとうございます!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

回答No3です。 セルでの表示形式は日付にしてください。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

最初の日付を表示する式は次のようにすればよいでしょう =INDEX(C2:AG4,1,MATCH(1,C4:AG4,0)) 最後の日付けを表示する式は次の式を入力した後に、確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。 =INDEX(A2:H4,1,MAX(IF($C$4:$H$4=1,COLUMN($C$4:$H$4),"")))

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

質問内容がいま一つわかりません。 >条件は下記です。 ・C40-N51にそれぞれの月のデータを作成する。 質問内容は、2行目から4行目のデータを参照して下の40行目のセルに開始日と終了日を入力するということではないのですか? ・3行目が1になっている何番目などではなく、最初と最後を指定したい。  (月によっては6が1日だけある日(31日)があり、その場合は本関数で導き出される最初と最後を○/31としたい。) これも、最初と最後のセルが何番目か分かれば、それが日付と同じ数字なので、問題ないように思うのですが・・・・ どのような結果を、どの場所に表示したいのか具体的に提示してください。

noname#204879
noname#204879
回答No.1

「3行目の値が1になっている」ものだけを参照すれば良さそうなものを、「月によっては6が1日だけある日」がなぜ関係するのですか? 「あ、間違ってました」なんてことがないことを祈っていますよ。

rihitomo
質問者

補足

すみません。添付画像の解像度の規制上、三行目が1になっている列全てと2になっている列を1列だけ表示していますが、月末までデータを見ていくと、3行目には1-6の数値が入っているのです。 3行目の値が1になっているものの関数を教えていただいて、2-6は自分で加工してやろうと思っていました。