- 締切済み
エクセルの関数を教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号ANo.2です。 先程の回答の数式に関してですが、Excelのバージョンによっては、日付データとして取り扱う事が出来る日付の範囲が、西暦9999年12月31日まで対応していないものもあるのですが、その場合には、先程の数式では、"9999/12/31"の部分を日付として扱う事が出来ない事が原因で、エラーとなってしまう恐れがあります。 ですから、念のために、"9999/12/31"の部分を、3000000に置き換えて、次の様な数式とした方が良いかも知れません。 =IF(OR(COUNTIF(sheet01!$B:$B,sheet02!$A$1)=0,COUNT(sheet01!$C:$C)=0),"",3000000-SUMPRODUCT(MAX((3000000-sheet01!$C$2:INDEX(sheet01!$C:$C,MATCH(9^9,sheet01!$C:$C)))*(sheet01!$B$2:INDEX(sheet01!$B:$B,MATCH(9^9,sheet01!$C:$C))=sheet02!$A$2))))
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、基本データーの表の中で、「基本ナンバー」と入力されているセルが、sheet01のA1セルであり、sheet02において「選ばれたグループ代表データのグループ番号」が表示されているセルが、sheet02のA1セルであるものとします。 その場合、sheet02で選ばれたグループ代表データの中で一番古い入力日は、次の様な関数で、自動的に(「Ctrl+Shift+Enter」の操作は不要)求める事が出来ます。 =IF(OR(COUNTIF(sheet01!$B:$B,sheet02!A1)=0,COUNT(sheet01!$C:$C)=0),"","9999/12/31"-SUMPRODUCT(MAX(("9999/12/31"-sheet01!$C$2:INDEX(sheet01!$C:$C,MATCH(9^9,sheet01!$C:$C)))*(sheet01!$B$2:INDEX(sheet01!$B:$B,MATCH(9^9,sheet01!$C:$C))=sheet02!A1))))
- keithin
- ベストアンサー率66% (5278/7941)
>sheet01のグループ番号内で一番古い入力日を抽出して貼り付けたい Sheet1のB列にグループナンバー,C列に入力日 Sheet2のA1セルに代表のグループナンバー Sheet3のC1に =MIN(IF((Sheet1!B1:B999=Sheet2!A1)*(Sheet1!C1:C999<>""),Sheet1!C1:C999)) と記入し,コントロールキーとシフトキーを押しながらEnterで入力 さらに右クリックしてセルの書式設定の表示形式でユーザー定義を選び yyyy/m/d;;; と設定を取り付けておきます。