• ベストアンサー

複数の条件に一致するセルを転記したい

二つの条件に一致するセルの値を別のシートに転記したいです。 具体的には 表1 日付 名前 場所 1/1  A   横浜 1/1  B   渋谷 1/2  A   新宿 のデータを 表2    A  B 1/1 ☆ ★ 1/2 ★ ★ 表1にデータをもとに 表2の☆部分に横浜と返されるようにしたいです。 また★のところにも返されるようにするにはどうしたらよいでしょうか?

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

最も分かり易くデータが多くなっても計算に負担がかからない方法は作業列を作って対応することです。 表1がシート1のA列からC列に有って1行目は項目名とします。 D2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",A2&B2) 表2はシート2に作成するとしてA2セルから下方には日付を入力し、B1セルから横の列には氏名を入力するとします。 B2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(COUNTIF(Sheet1!$D:$D,$A2&B$1)=0,"",INDEX(Sheet1!$C:$C,MATCH($A2&B$1,Sheet1!$D:$D,0)))

mimi3131mimi
質問者

お礼

ご回答いただきありがとうございました。 作りたかった表が完成しました。 また質問がある際は宜しくお願い致します。

その他の回答 (2)

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

こんばんは! No.2さんと同じ方法になりますが、この際ですので日付・名前も重複なしに表示してみてはどうでしょうか? ↓の画像で上側がSheet1で下側のSheet2に表示するようにしてみました。 Sheet1に作業用の列を3列設けています。 作業列のD2セルに =IF(COUNTIF(A$2:A2,A2)=1,ROW(),"") E2セルに =IF(COUNTIF(B$2:B2,B2)=1,ROW(),"") F2セルに =IF(COUNTBLANK(A2:B2),"",A2&"_"&B2) という数式を入れ、D2~F2セルを範囲指定 → F2セルのフィルハンドルで下へずぃ~~~!っとコピーしておきます。 Sheet2のA2(セルの表示形式は「日付」)セルに =IF(COUNT(Sheet1!D:D)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!D:D,ROW(A1)))) という数式を入れ下へオートフィルでコピー! B1セルに =IF(COUNT(Sheet1!$E:$E)<COLUMN(A1),"",INDEX(Sheet1!$B:$B,SMALL(Sheet1!$E:$E,COLUMN(A1)))) として列方向にオートフィルでコピー! これでA列に日付・1行目に名前が表示されます。 最後にB2セルに =IFERROR(INDEX(Sheet1!$C:$C,MATCH($A2&"_"&B$1,Sheet1!$F:$F,0)),"") という数式を入れ、列・行方向にオートフィルでコピーすると 画像のような感じになります。 ※ Sheet2のB2セル数式はExcel2007以降で使える数式です。 お使いのバージョンがExcel2003までの場合は別途エラー処理の数式が必要になります。 長々と失礼しました。m(_ _)m

mimi3131mimi
質問者

お礼

ご回答いただきありがとうございました。 また質問がある際は宜しくお願い致します。

回答No.1

たたき台。A列昇順と仮定して F2セルに =VLOOKUP(F$1,INDEX($B:$B,MATCH($E2,$A:$A,0)):INDEX($C:$C,MATCH($E2,$A:$A)),2,0) 右へ下へオートフィル

mimi3131mimi
質問者

お礼

ご回答いただきありがとうございました。 また質問がある際は宜しくお願い致します。

関連するQ&A