• ベストアンサー

Excel2007でのデータ抽出

前任者が作ったExcelでの給料計算表を使用していますが、先日そこに金種計算表を組み込めないかと言われました。 当方VBAなどは全くの初心者です。 VLOOKUP関数を使ってデータテーブルから金額を読み込み金種計算が出来るようにはしてみたのですが、データテーブルを更新すると金種計算表にある数式がエラーを吐いてしまいます。 金種計算表には一行目から =IF(B4="","",VLOOKUP(B4,テーブル!D4:BG4,10)) と関数を入れてあります。 B4は氏名欄です。 その際にはちゃんと金額が表示されていますが、入力フォームからデータテーブルを更新すると =IF(B4="","",VLOOKUP(B4,テーブル!#REF!,10)) となってしまいます。 金額を手入力すればいいのですが、全社員分となると膨大な量になってしまいます。 なんとか自動で抽出出来ないものでしょうか。 お知恵をお貸しいただければ幸いです。 稚拙な説明ではありますがよろしくお願いします。

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

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

>入力フォームからデータテーブルを更新すると=IF(B4="","",VLOOKUP(B4,テーブル!#REF!,10)) 入力フォームのVBAにて行の削除とか挿入とかを実行しているのではないでしょうか? >VLOOKUP(B4,テーブル!D4:BG4,10) 検索する行は1行でよいのでしょうか、VLOOKUP関数の意味がないのですが。 >B4は氏名欄です。 テーブルの氏名データは氏名順に並んでいるのでしょうか? VLOOKUP(B4,テーブル!D:BG,10,0)にしてみては如何でしょうか。 計算表とテーブルにシート構成を提示してないので何ともアドバイスできないです。 一度、VLOOKUP関数のHelpを参照して、やりたい内容とあっているか確認してみてください。 別案ですが、ピボットテーブル は試して見られましたか 氏名の一覧表も自動で作成されて便利ではないでしょうか。

teriko121
質問者

お礼

>入力フォームのVBAにて行の削除とか挿入とかを実行しているのではないでしょうか? そのとおりだと思います。 >検索する行は1行でよいのでしょうか、VLOOKUP関数の意味がないのですが。 1行ではなくデータテーブル全体です。 説明が甘かったようです、すみません。 >VLOOKUP(B4,テーブル!D:BG,10,0)にしてみては如何でしょうか。 これをやってみたところ、ズレもエラーも発生しませんでした。 助かりました。ありがとうございました。 ピボットテーブルも考えてみたのですが、何分勉強不足で使いこなせませんでした。 これから知識を増やして使えるように頑張ってみます。 ありがとうございました。

その他の回答 (2)

回答No.2

VLOOKUP関数で、『D4:BG4』という表記はあまりやらないです。 例えば、『$D$1:$BG$100』みたいに範囲指定する方が一般的です。 『D4:BG4』のように4行目だけを参照するなら、 VLOOKUP関数をわざわざ使用しなくても別の方法で簡単にできます。 『=M4』で解決する事になります。

teriko121
質問者

お礼

お礼をつけるつもりが補足のところに書いてしまいました。 すみません。

teriko121
質問者

補足

すみません、サンプルの書き方が悪かったようです。 この場合は1行のみなのですが、実際は社員全員分のデータ内からの検索、抽出となりますのでD4:BG120が検索範囲となります。 範囲指定をしてやってみます。 ありがとうございます。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

ふと思ったのですが、 編集メニューの「置換」で #REF! を D4:BG4 に「すべて置換」すればどうなるでしょうか。 「すべて置換」は対象セル範囲を選択して行ってください。

teriko121
質問者

お礼

「すべて置換」をやってみたのですが、今度は#N/Aエラーが出てきてしまいました。 もう少し勉強して色々やってみようと思います。 ありがとうございました。

関連するQ&A

  • エクセル データの抽出

    csvデータをうまく表示まとめたいと奮闘していますが、うまくいきません。どなたかご教授願いますm(_ _)m http://umstyle.net/sample.html 下記のサンプルのようにシートで「元データ」と「表」で分かれています。 表シートのエリア指定の箇所に、エリアを入力すると元データが反映される仕組みにしたいと考えています。 表シートの「A5」「B5」「C5」、「A6」「B6」「C6」にはどのような関数を入れればよいでしょうか? VLOOKUP関数ではどうもうまくいきませんでした。 また、エリアは複数あるのですが、エリア指定の入力を変える事で表が切り替わるようにしたいです。 関数では無理でしょうか? 参考になるサイト等もご存じでしたら教えていただければ幸いです。 どうぞ、宜しくお願いします。 また、質問の仕方に問題がある場合はご指摘くださいませ。

  • Excel関数でデータを抽出する方法

    Excel初心者教室での課題で、以下のような問題を出されました。 次の表から、データが全てあるものだけを抽出し、sheet1からsheet2に移しなさい。 〈名前〉〈 E社〉〈 F社〉〈 G社〉 〈 A 〉〈 1 〉 〈 2 〉 〈 3 〉 〈 B 〉 〈 2 〉 〈 2 〉 〈 C 〉〈 3 〉〈 1 〉〈 5 〉 〈 D 〉 〈 1 〉 上の表からAとC(3社共にデータがある)ものだけを抽出したいのですが、回答条件が ●データ抽出にはオートフィルター機能は使用せず、関数で処理すること ●今まで習った知識で回答可能 とあり、まだ初心者クラスで、データ抽出に関係がありそうな関数はIF関数やVLOOKUPくらいしか思い当たらず、それらを使って抽出を試みたのですが「三社共にデータがあるものだけ抽出」という条件が処理出来ず、上手く出来ませんでした。 手詰まりで先に進めずに今、困っています。 そこで、Excelに詳しい方にアドバイス頂けたらと思い、書き込みしました。 宜しくお願いします。 文章力が低いので分かり辛い文面で、表も見辛くてすみません。

  • EXCEL2000:データの抽出

    EXCEL2000で、同ファイル内のデータ抽出に関して質問があります。 あるシート(シート1)に契約一覧を作成しています。 各契約の担当者を入力した際(A列)に、その担当者コードを自動的にとなりのセル(B列)に入力できるようにしたいと考えています。 対応する担当者コードは、別シート(シート2)に担当者一覧テーブルを作成しました。 おそらく関数をB列に設定して、A列の数値をデータに反映させて返すという形になると思うのですが、どの関数を使えばよいのでしょうか? ヘルプで確認した限りだと、DGET関数というのが適切なような気がするのですが、各引数に何を入力すべきなのかがいまいちつかめません。 ご返答よろしくお願い致します。

  • Excelでデータ抽出!

    かなり切羽詰ってます。助けてください。 excelで3×15の表を作ってそこからデータを抽出したいのです。列と行の数値はそれぞれ別のセルからの参照にしたいのですが...。ifとかvlookupとかいろいろ使ってみたのですがうまくいきません。エクセルでゆーところの'B3'を出したいだけのことなのですが...。誰か助けてください。

  • 【Excel】複数の条件に一致するデータの抽出

    VLOOKUPの検索値が複数あるようなイメージで、それらに 合致するデータを求める関数はありますか? 例えば下記のようなデータがあり、「ランク=A」かつ 「級=2」の率を求めるような式です(この場合率は4.0です)。 このデータはテーブルとして別シートに作成し、元の シートにこのテーブルで求めた率をひっぱってきたいと 考えています。 説明が下手で分かりにくくて申し訳ありませんが、どなたか お分かりになる方、教えて下さい。よろしくお願いします。 ランク   級    率     A     1     4.1 A     2     4.0 A     3     3.2 B     1     4.0 B     2     3.8 B     3     3.0 ・     ・      ・ ・     ・      ・ ・     ・      ・     

  • 表形式のデータから該当データを抽出する方法

     表形式のデータから該当データを抽出する方法を教えていただきたく存じます。  次のような表形式のデータがあるとします。    A  B  C あ  1  3  5 い  2  4  6  そして、「あ」と「A」の時には1、「い」と「B」の時には4というようなデータを抽出したく存じます。  私の考えた方法は、hlookup関数とvlookup関数を組み合わせる手法ですが、他に方法はありますでしょうか。

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

  • Sheet 1のデータをSheet 2 に表示させるには、どうすればよいの?

    Sheet 1のデータをSheet 2 に表示させるには、どうすればよいのでしょうか?・・小規模な事業で数年、自作で会計処理まがいの表を作成してきましたが、売り上げから支払い金額を入力すると・・右へスクロール・・金種計算・・さらに右へスクロール・・仕訳日記帳(あとで、それを見ながら弥生の仕訳日記帳に・・)まで、自動計算させているのですが、モニター画面3枚くらい右へのスクロールで見苦しいし、Sheet 1のみ使用ですので便利なようで、ちょっと不便で・・・Sheet 2のタブで金種計算のみ表示させたいのですが・・・方法がわかりません。ちなみにVBAは難しくて、関数のみしか使っていませんもので。どなたか宜しく、お願いします。

  • データの抽出 Excel2003

    以下のA表があり、ここから該当するデータをB表のように抽出したいのですが、どすればいいでしょうか。 概要) ○田さん、△池さん、□海さんの家族がいます。 A表の世帯主欄には世帯毎に1,2,3と数字がはいっています。また、抽出した人は該当者の欄に同じく1,2,3と数字が入っています。 空白のセルはブランクの状態です。 なお、世帯主のみ時はこのサイトで教えて頂いたOFFSET関数とMATCH関数の組み合わせでできたのですが。 A表) ┌─────┬───┬───┐ │ 氏名     │世帯主│該当者│ ├─────┼───┼───┤ │○田 ○夫│    1│     │ ├─────┼───┼───┤ │      ○美│    │    │ ├─────┼───┼───┤ │     ○子│ │ 1│ ├─────┼───┼───┤ │△池 △夫  │ 2│ 2│ ├─────┼───┼───┤ │□海 □子   │ 3│ │ ├─────┼───┼───┤ │ □男   │ │ 3│ └─────┴───┴───┘ B表) ┌─────┐ │○田 ○夫│ ├─────┤ │△池 △夫│ ├─────┤ │□海 □子│ └─────┘

  • 入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。

    入力がないのにユーザー定義で定義した文字列が常に表示されてしまう。 VLOOKUP関数とIF関数を組み合わせて「=IF(A1="","",VLOOKUP(A1,D2:C5,2,FALSE))」という関数を入力しています。 念のため申し上げますと、 VLOOKUP関数で「D2:C5」の表からデータを検索し、そのデータに該当した行の指定列からデータを取り出しているわけです。 IF関数は、「#N/A」エラーを表示させたくないためです。 この計算式を入力しているセルの書式設定を、ユーザー定義で、「"○""○""○""○""○""○""○"@」としたのですが、 A1セルに入力が無く入力の無いはずのセルに「○○○○○」が常に表示されてしまいます。 どこが間違っているのでしょうか? お知恵を拝借させてください。

専門家に質問してみよう