• 締切済み

条件に一致するデータを別シートに詰めて表示させる

エクセルについての質問です。列に項目、行に数値及び文字列が入っている元データがあります。R列の中で特定の文字列にあたる行のD列だけを抽出し、別シートに表示させたいのですがどのようにすればよろしいのでしょうか。関数についてあまり知識がありません。お助け願えないでしょうか。

みんなの回答

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

回答2です。 シート2にはD列だけを抽出して表示させるのでしたね。 それでしたらシート2のA2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!S:S),"",INDEX(Sheet1!D:D,MATCH(ROW(A1),Sheet1!S:S,0)))

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

シート1で例えばA列からR列までが表となっており、2行目か下方にデータが入力されているとします。 S列を作業列としてS2セルには次の式を入力して下方にドラッグコピーします。 特定の文字列を例えば東京とします。 =IF(R2="東京",MAX(S$1:S1)+1,"") 特定の文字列は" "のようにすることが必要です。 次にお望みの表ですがシート2に作るとしてA1セルからR1セルにはシート1の場合と同じ項目名を入力します。 A2セルには次の式を入力してR2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$S:$S),"",INDEX(Sheet1!$A:$R,MATCH(ROW(A1),Sheet1!$S:$S,0),COLUMN(A1))) なお、シート1のS列が目障りでしたらS列を選択して右クリックし、「非表示」を選択すればよいでしょう。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

推奨:簡単な方法 シート1のA2セルに =IF(R2="特定の文字列",ROW(),"") と記入,以下コピー #参考 =IF(R2="特定の文字列",COUNT($A$1:A1)+1,"") とかでも可 別シートのA2セルに =IF(ROW(A1)>MAX(Sheet1!A:A),"",SMALL(Sheet1!A:A,ROW(A1))) と記入,以下コピー B2セルに =VLOOKUP(A2,Sheet1!A:D,4) と記入,以下コピー 推奨: なんでもかんでも関数しか考えられないご相談はとても多いですが,ふつーにR列をオートフィルタで絞って表全体をコピー,別シートにぺたっと貼り付けて使うのが一番簡単です。 推奨しません: 別シートのD2セルに =IF(ROW(D1)>COUNTIF(Sheet1!$R:$R,"特定の言葉"),"",INDEX(Sheet1!D:D,SMALL(IF(Sheet1!$R$2:$R$999="特定の言葉",ROW(Sheet1!$R$2:$R$999)),ROW(D1)))) と記入,必ずコントロールキーとシフトキーを押しながらEnterで入力,下向けにコピー。

関連するQ&A