• 締切済み

エクセル関数を使って古い日付を表示させたい

ご教示お願いしたいのですが、添付ファイルのAの表、Noか商品名を元にしてBの表の購入日に各商品ごと、一番古い日付を表示させたいのですがどの関数をを使用すればよろしいでしょうか。各商品購入件数が同じ件数ではなくまた実際に行数は何千行あるとして検索範囲は列で設定したいと思います。またAの表の最後の購入日空白はわざと空白にしています。(未購入という設定で)よろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

エクセルminifs関数の利用が適しているのだが、質問にはエクセルバージョンがかいてない。子の関数は新設された部類の関数で、エクセルのバージョンが「365」「2019」「2016」のみ対応、なので。 質問には、エクセルのバージョンを書くべきなんだ。特に今どきは増加が激しいのだ。 これが使えるバージョンなら、Googeで「MINIFS関数」で照会すれば、沢山の例と回答が出てくる者で、ここに質問するまでもない。 ーー 他のポイントとして、エクセルの日付は、日付シリアル値という、正・整数値で表されるので、旧い日付は「最も小さい日付け」と、見方を変えるのは、常識として判っている? ーー MINIFS関数が、使えない場合は、下記例で説明すると 例題データ A1:B11 商品  売上日 A 2022/1/23 B 2023/1/20 B 2018/1/23 A 2019/12/6 C 2022/6/7 A 2022/3/1 B 2020/4/5 A 2018/12/26 B 2022/3/4 C 2021/10/3 ーー D1:D4(同一シートの空きエリアと仮定して) D列に、商品名のユニーク・データを作っておく。これも質問事項かもしれないが略。 例 データーフィルター重複するレコードは無視する、など利用。 D列   E列(結果) 商品  最古売上日 A 2018/12/26 B 2018/1/23 C 2021/10/3 E2の式 =MIN(IF(A1:A10=D2,B1:B11,"")) と入れて、SHIFT、CTRL、ENTERキーを同時押し。 E2の式をE3,E4に式を複写。 結果は上記のE列の通り。 「配列数式」という仕組みの利用です。これを使わない方がよいが、他に関数では手がないだろう。 ーー VBAで、繰り返し判別をやれば簡単なコードで出来るが。

回答No.1

この場合は、 MINIFS関数 を使用します。 引数は 最小範囲、条件範囲1、条件1、[条件範囲2...] です。 この場合ですと =MINIFS(C:C,B:B,F2) となります。(表の左上をA1とした場合。) ダミーデータが汚くて申し訳ないのですが、写真貼っときます。なお、関数の使い方はExcelもGoogleも同じなのでお気になさらず。

tsudarere
質問者

お礼

shameimaru_aya様 ご回答ありがとうございます。 早速使ってみます。