• ベストアンサー

excelで特定範囲の特定数値を指定する方法について

excelで特定範囲の特定数値を指定する方法について A列に曜日を入れて、B列、C列に数字を入れるとします。例えば、ここで日曜日のB列の数値を基準として、「日曜日以外の曜日の中で、B列の値が日曜日より高く、さらにその曜日のC列より高い」という条件を、何ヶ月分もまとめてD列に呼びだすことは可能でしょうか? どうぞ宜しくお願い致します。

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

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

こんにちは! 外していたらごめんなさい。 ↓の画像で説明させていただきます。 A列の曜日はシリアル値が入っていて、表示形式だけをユーザー定義から aaa としています。 作業用の列を1列設けています。 作業列D2セルに =IF(AND(B2>INDEX($B$2:B2,LARGE(IF(WEEKDAY($A$2:A2)=1,ROW($A$1:A1)),1)),B2>C2),B2,"") これは配列数式になってしまいますので、この画面からD2セルにコピー&ペーストしただけではエラーになると思います。 貼り付け後、F2キーを押す、又はD2セルをダブルクリック、又は数式バー内で一度クリックします。 編集可能になりますので、 Shift+Ctrlキーを押しながらEnterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 そしてフィルハンドルの(+)マークでダブルクリック、又はオートフィルでずぃ~~~!っと下へコピーします。 これで直前の日曜日の値より大きく、同じ行のC列よりも大きいものだけが表示されると思います。 これを結果のE列に空白を無視して上から表示させます。 E2セルの数式は =IF(COUNT($D$2:$D$1000)<ROW(A1),"",INDEX($D$2:$D$1000,SMALL(IF($D$2:$D$1000<>"",ROW($A$1:$A$999)),ROW(A1)))) これも配列数式になってしまいますので、Shift+Ctrlキーを押しながら、Enterキーで確定です。 このE2セルをオートフィルで下へコピーすると 画像のような感じになります。 尚、E列の数式は元データが1000行目まで対応できるようにしていますが データ量によって範囲指定の領域はアレンジしてみてください。 以上、長々と書きましたが 参考になれば幸いです。 的外れなら読み流してくださいね。m(__)m

hashi00009
質問者

お礼

ご回答いただきありがとうございます。丁寧でわかりやすいです。 参考にさせていただきます。貴重な時間を割いていただき本当に感謝です!

その他の回答 (2)

回答No.2

E1セル =IF(A2="日",B2,E1) F1セル =IF(AND(B2>E2,B2>C2),B2,"") 下へオートフィル H1:H2が抽出条件範囲 データ-フィルタ-フィルタオプションの設定 ●指定した範囲 リスト範囲:$F$1:$F$18 検索条件範囲:$H$1:$H$2 抽出範囲:$D$1

hashi00009
質問者

お礼

ご回答ありがとうございます!簡潔でわかりやすいです。 参考にさせていただきます。勉強になりました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 不明な点があるため、補足情報を頂けないでしょうか。 (1)基準となる日曜日とは、D列に表示するか否かを判定する対象となる日付の、直前の日曜日の事なのでしょうか、それとも直後の日曜日の事なのでしょうか、或いは全ての日曜日の中でB列の値が最も高い日曜日の事なのでしょうか。 (2) >さらにその曜日のC列より高い とは、 「その日付が入力されている行におけるB列のセルの値が、同じ行におけるC列のセルの値よりも高い」 という意味でしょうか、それとも、 「何ヶ月分もあるデータの中に、複数存在する曜日が同じのデータの中で、C列のセルの値の最高値と比較して、その日付が入力されている行におけるB列のセルの値がそれより高い」 という意味でしょうか。

hashi00009
質問者

補足

(1)D列に表示するか否かを判定する対象となる日付の、直前の日曜日の事です。 (2)「その日付が入力されている行におけるB列のセルの値が、同じ行におけるC列のセルの値    よりも高い」で合ってます。 説明不足ですいませんでした。初心者なもので・・・

関連するQ&A