- ベストアンサー
【Excel】各来客の最古来店日を抽出する方法
- Excel2007を使用して、来店したお客様のリストからそれぞれのお客様の最古来店日を抽出する方法を探しています。
- オートフィルタを使わずに、データを整理する方法を探しています。
- シートAにデータを貼り付けると、シートBに抽出されるように関数で制御したいと考えています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
シート2のA列にIDを記入するとして シート2のB2は =IF(A2="","",VLOOKUP(A2,Sheet1!A:B,2,FALSE)) 以下コピー のような基本の関数で計算できますね。 シート2のC2には簡単な数式で =IF(A2="","",MIN(IF(Sheet1!A:A=A2,Sheet1!C:C))) と記入してコントロールキーとシフトキーを押しながらEnterで入力し,以下コピー して,日付の書式を付けておきます。 シート保護などを併用して,A列だけに入力できるようにアナタが気を配ってあげるとよいでしょう。 #余談 ご相談のような状況で非常に多くの皆さんが失敗して相談を寄せてくる間違い易い点として。 IDの「001」とかは,勿論ご相談のためだけの偽データだと思いますが,シート1やシート2に ●「文字列設定にして001」を記入している ●「1を記入し表示形式で001と表示している」 が混在して,計算ができないで困る方がこちらの質問相談掲示板にも沢山みえます。 とくに「001」みたいに一見して判るならまだしも,「123」などでは見ただけじゃこれが「文字列で記入されている」のか「数値の123」なのか判りません。必ず統一して入力できるように,シートを作製するアナタが気を配って設計してください。 今回ご質問の本筋じゃないのでフォローはしませんが,もしもアナタご自身もそういわれても困りますなようなら,別途ご相談を投稿してみると良いかもしれません?
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1のD列は作業列としてD2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(COUNTIF(A$2:A2,A2)=1,MAX(D$1:D1)+1,"") シート2のA2セルには次の式を入力してB2セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$D:$D),"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$D:$D,0),COLUMN(A1))) C2セルには次の式を入力し、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。 その後にその式を下方にオートフィルドラッグコピーします。 =IF(A2="","",MIN(IF((Sheet1!$A:$A=$A2)*(Sheet1!$C:$C>0),Sheet1!$C:$C))) 最後にC列のセルに書式設定から表示形式で日付を設定します。
お礼
ご回答ありがとうございます。 こちらも実践し、理想的な結果が出力されました。 どうも配列数式に対する理解が足りなかったようで これを機にもう少し勉強させていただきたいと思います。 重ねてありがとうございました。
お礼
迅速なご回答ありがとうございます。 実践してみたところ、希望通りの出力ができ、 大変助かりました。ありがとうございます。 また、余談のご指摘も確かにつまづき易い部分だと感じました。 入力者に負担の少ないシートを作製できるよう、 こちらの点も念頭に入れておきたいと思います。 重ねてありがとうございました。