質問: excel関数2 以前の質問内容追記 kagakusukiさんに教えていただき 複数条件で抽出し最小値と最大値、平均を出すことが出来ました。 (添付の画像ファイルをご覧下さい) 追加で教えていただきたく、質問をさせていただきます。 sheet1のd列に日付、e列に担当者が入っている場合 sheet2の最小値と最大値に対して日付、担当者も入れる事は出来ますか? マクロは組めないので関数で教えて下さい。 よろしくお願いします。
回答: こんばんは! 前回の質問は判らないのですが、 今回の質問に関して・・・ ↓の画像で上側がsheet1で下側のsheet2に表示するとします。 尚、sheet2のa列コードは入力済みだとします。 sheet1に作業用の列を1列設けます。 作業列f2セルに =if(a2="","",a2&"_"&c2) という数式を入れオートフィルでしっかり下へコピーしておきます。 次にsheet2のb2セルに =min(if(sheet1!a$1:a$1000=a2,sheet1!c$1:c$1000)) これは配列数式になってしまいますので、shift+ctrl+enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグでコピー&ペースト → f2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) shift+ctrlキーを押しながらenterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 次にc2セル(配列数式ではありません)に =index(sheet1!d:d,match($a2&"_"&$b2,sheet1!$f:$f,0)) という数式を入れ隣りのd2セルまでコピー! e2セル(←配列数式です)に =max(if(sheet1!a$1:a$1000=a2,sheet1!c$1:c$1000)) としてshift+ctrl+enterで確定 f2セル(配列数式ではありません)に =index(sheet1!d:d,match($a2&"_"&$e2,sheet1!$f:$f,0)) という数式を入れ隣りのg2セルまでコピー! h2セルには =averageif(sheet1!a:a,a2,sheet1!c:c) という数式を入れておきます。 日付列の書式は「日付」にしておいて、 最後にb2~h2セルを範囲指定 → h2セルのフィルハンドルで下へコピー! これで画像のような感じになります。 ※ 極端にデータ量が多い場合は配列数式はおススメしません。 作業列を増やすなりして他の方法を考える必要があります。m(_ _)m