• 締切済み

関数について

関数について VLOOKUP関数を使ってみようと思っているのですが1列目のデータの抽出に仕方がわかりません。 入力例 sheet1 B列__C列__D列 1_______A____現金 2_______B____現金 3_______C____カード 4_______D____カード 5_______E____現金 抽出例 sheet2 B列__C列__D列 1_______A____現金 2_______B____現金 5_______E____現金 抽出例のC、D列はVLOOKUPを使おうと思っています。 B列の抽出にはどのようにしたらいいかおしえてください。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.6

質問が D列が 現金である行を抽出したい ということであれば 先ほど、回答した内容が参考になります。 http://okwave.jp/qa/q7100282.html を参考にしてみてください。 一例ですが シート2のB列に =INDEX(SHEET1!B:B,SMALL(INDEX((SHEET1!D$1:D$100<>"現金")*100+ROW(A$1:A$100),),ROW()))&"" と入れて下へコピー B列が作成できれば、C列、D列は Vlookup関数で可能です。

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

シート2のB列には =IFERROR(SMALL(IF(Sheet1!D:D="現金",Sheet1!B:B),ROW(B1)),"") と記入してコントロールキーとシフトキーを押しながらEnterで入力し,下向けにコピーしておきます。 CD列はふつーにVLOOKUPで全く問題ありません。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 ANo.3です。  間違えました、Sheet3のA1セルに入力する関数は、 =IF(INDEX($D:$D,ROW())="現金",ROW()) ではなく、 =IF(INDEX(Sheet1!$D:$D,ROW())="現金",ROW(),"") として下さい。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 まず、適当な使用していないシート(ここでは仮にSheet3とします)のA1セルに次の関数を入力して下さい。 =IF(INDEX($D:$D,ROW())="現金",ROW())  次に、Sheet3のA1セルをコピーして、Sheet3のA2以下に貼り付けて下さい。  次に、Sheet2のB1セルに次の関数を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!B:B,SMALL(Sheet3!$A:$A,ROWS($1:1))))  次に、Sheet1のB1セルをコピーして、Sheet1のB列~D列の1行目以下に貼り付けて下さい。  これで、Sheet1のD列に「現金」と入力されているデータのみが抽出されます。

  • -9L9-
  • ベストアンサー率44% (1088/2422)
回答No.2

この質問の例からすると、「抽出」しているのはセルのデータではなく、行だと思うのですが(D列が「現金」である行を抽出している)。 行を抽出するなら関数ではなくフィルタ機能やデータベース機能を使うのが筋でしょう。 http://exinfo.biz/filter/filter_1.shtml http://www.eurus.dti.ne.jp/yoneyama/Excel/filter2.htm 別シートに抽出したいのなら、通常はデータベース機能を使うと思います。 仮にセルのデータを抽出しようとしているのなら、どの列のデータをキーとして抽出しようとしているかが不明です。

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

関数で、条件をかけて、データ抽出は、VLOOKUP関数では出来ないと思うが。そもそも大枠の考え方(VLOOKUPを使う)が不適当とおもう。2番目以後の現金の行が見つけにくいのだ。 Googleで「imogasi方式」で照会すれば、抽出を関数でやる過去の質問例が沢山出てくる。 そこでは他の関数を使い、大変難しい関数の組み合わせの式が使われていることが判るだろう。 フィルタオプションの設定などの操作でやったら。

関連するQ&A