エクセルで他のファイルにデータを自動送信する方法

このQ&Aのポイント
  • エクセルのBOOK1には顧客リスト(お客様情報)を随時更新していますが、BOOK2にデータを自動で送信したいです。具体的には、BOOK1に入力されたお客様の名前をBOOK2に自動で転記したいと考えています。また、BOOK1には担当者の情報があり、担当者がAの場合はBOOK2に送信、Bの場合はBOOK3に送信、Cの場合はBOOK4に送信する形を取りたいと思っています。
  • 複数人を担当しているため、VLOOKUP関数では転記が難しいです。手動でデータを入力する手間を省きたいです。エクセルの詳しい方、どうか教えてください。
回答を見る
  • ベストアンサー

エクセル 他のファイルにデータを飛ばしたい!

BOOK1に顧客リスト(お客様情報)を随時更新しています。 これからBOOK2にデータを自動で飛ばしたいのですが、どうしたらいいか教えて下さい。 BOOK1にはお客様の住所や年齢など情報を入力してまして、担当が決まれば他のBOOKにお客様の名前だけでも飛ばしたいのです。 現在3人の営業がいまして、Aと入力するとBOOK2、BはBOOK3、CはBOOK4という形を取りたいのですが、関数でできますか? 《BOOK1》  A列       B列   C列    D列・・・・・・・・・・AB列 お客様名    住所   年齢   勤務先・・・・・・・・担当者 (600名程度のデータがあります) 担当者がAと決まったのでBOOK2に自動で飛ばしたい。 《BOOK2》  A列 お客様名 複数人を担当しているわけなので、VLOOKで引っ張れないですよね? こっちにも入力して、あっちにも入力するという手間を省きたいです。 どうかエクセル詳しい方、ご指導下さい。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

>このINDEXの関数ですが、参照があるほうを使われてますか? 「参照がある方」とはどういう意味でしょうか? =INDEX([Book1.xls]Sheet1!A:A,SMALL(INDEX(([Book1.xls]Sheet1!$AB$2:$AB$1000<>"A")*1000+ROW($A$2:$A$1000),),ROW(A1)))&"" ちなみに上記の数式は、Book1のSheet1のAB列に「A」がない場合は1000を、ある場合はその行数の配列を取得し、その配列(該当行)の中で小さい順に行数を求めその行数のA列のデータ(該当データがない場合は1000行目のデータ=空白)を返す式になっています。 なお、どのセルに入力する場合もROW(A1)の部分は変わりません(1つ目のデータを抽出するという意味です)。 ただし、この数式を1つのブックに数多く入力するとシートの動きが重くなりますので、多数のデータを表示する場合は、後で回答した元シートにA列を挿入し(この列は非表示にする)その補助列にユニークな検索する文字列を作成して、このデータを検索値としたVLOOKUP関数でそれぞれ対応するセルを表示するほうが良いと思います。 なお、お分かりになると思いますが、補足で回答したB2セルに入力するVLOOKUP関数に再度誤りがありましたので訂正します。 =IF(A2="","",VLOOKUP($A2,[Book1.xls]Sheet1!$A:$Z,COLUMN(B2),0))

akarinbo
質問者

お礼

式最後の &"" は何ですか? それと1000行目のデータ=空白を返す式とありますが、リストはどんどん増えていきますので、1000行目に達したときおかしくなりますよね!? 私の知識ではなかなか難しい式で、難易しております。 ご指導お願いします。

その他の回答 (5)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

>式最後の &"" は何ですか? 該当データがない場合は1000行目のデータ(空白セル)を参照しますが、セルが空白だと「0」と表示されます(例えばZ1セルが空白の場合、「=Z1」のように空白セルを参照すると空白ではなく「0」と表示されます)。 これを空白表示にするため、空白文字列「&""」を連結して、全体を文字列にすれば、「0」ではなく空白文字列として表示されます。 ただし、この数式では必ず文字列として返りますので、数値や日付などのデータを参照する場合は文字列数字やシリアル値の文字列数字になりますので注意が必要です。 >それと1000行目のデータ=空白を返す式とありますが、リストはどんどん増えていきますので、1000行目に達したときおかしくなりますよね!? データが600行と書いてあったので1000行まで対応できる数式にしましたが、データがそれ以上になる場合は、もちろん数式を変更する必要があります。 ただし、この数字(配列数式の配列範囲)を大きくすると、再計算に時間がかかりシートが重くなるので、必要以上に大きな範囲を指定しないようにしてください。 また、表示データ数が多くなる場合も、同様にシートの動きが重くなります。これらの場合には別回答の補助列を使った方法で対応するほうが計算負荷が少ないと思いますので、条件によって使い分けるようにしてください。

akarinbo
質問者

お礼

MackyNo1さん 毎回ご指導ありがとうございます。 自動で入力されるようになりました。 で、また新たな問題点を見つけたんですが、並べ替えが出来ません。 →当たり前ですよね・・・ どうにもならないのでしょうか? エクセル難しいです。

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

BOOK1やBOOK2はそれぞれシート1及びシート2にあるとします。 シート1のE列の2行目から下方には担当者名(A,B,C)がそれぞれ入力されているとします。 F列には作業列を設けF2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(E2="","",E2&COUNTIF(E$2:E2,E2)) シート2ではA1セルには担当者名のAを入力し、2行目には項目名を入力します。 A3セルには次の式を入力しD3セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$F:$F,$A$1&ROW(A1))=0,"",INDEX(Sheet1!$A:$D,MATCH($A$1&ROW(A1),Sheet1!$F:$F,0),COLUMN(A1)))

akarinbo
質問者

お礼

ありがとうございます。 シート別にするのは考えたんですが、今回は別のデータに飛ぶ様言われてまして断念しました。 でも皆さん関数の組合わせに詳しいので助かりました。

回答No.3

数式では不向きな作業です。 まさにピッタリな操作として、MSクエリを使った方法をリンクしておきます BOOK2で操作を行います。 Microsoftのサイトはちょっと見にくいかも データの更新は最短で1分ごとの自動更新が可能です。 Microsoft Query を使用して外部データを取り出す http://office.microsoft.com/ja-jp/excel-help/HA010099664.aspx データを扱う時のいろいろな操作 2 http://www11.plala.or.jp/koma_Excel/contents6/mame6041/mame604101.html

akarinbo
質問者

お礼

こんな方法があるんですね!? まだまだ知らないことが多すぎて、勉強になります。 クエリは便利そうなので、勉強してみます。 ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

訂正と補足です。 No1の回答のVLOOKUP数式は第3引数を省略していましたが正しくは以下の数式です。 =IF(A2="","",VLOOKUP($A2,[Book1.xls]Sheet1!$A:$Z,COLUMN(B2))) ちなみに、関数で表示するデータが多くなると動きが重くなるので、元データのBook1のA列に新しい列を挿入して、「=IF(B2="","",G2&COUNTIF($G$2:G2,G2))」の数式をオートフルコピーしておき、Book2のA2セルに以下のような数式を入力して下方向及び右方向にオートフィルコピーするほうが計算負荷が少ないので適当かもしれません。 =VLOOKUP("A"&ROW(A1),[Book1.xls]Sheet1!$A:$AB,COLUMN(B1),0)

akarinbo
質問者

お礼

ありがとうございます。 このINDEXの関数ですが、参照があるほうを使われてますか? なかなか難しいですが、ちょっと根気をもってやってみますので それだけ教えてください。 勝手ながら明日あさって久々の連休なので、休み明けのお返事になるかと思います。 申し訳ありません。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

担当者が「A」のブックのA2セルに以下のような数式を入力して下方向にオートフィルすれば、Book1のSheet1のAB列の「Aの入力されているA列のセルのお客様名を自動的に表示することができます。 =INDEX([Book1.xls]Sheet1!A:A,SMALL(INDEX(([Book1.xls]Sheet1!$AB$2:$AB$1000<>"A")*1000+ROW($A$2:$A$1000),),ROW(A1)))&"" この数式を横方向にドラッグしても該当データを表示することができますが、配列数式を多用すると動きが重くなるので、お客様名に重複がないなら、B2セルには以下のようなVLOOKUP関数の式を入力して、右方向および下方向にオートフィルされることをお勧めします。 =IF(A2="","",VLOOKUP($A2,[Book1.xls]Sheet1!$A:$Z,COLUMN(B2)))

関連するQ&A

  • エクセル ブック間で同一データのチェックしたいのですが・・

    請求書のフォームのようなものを作成しています。 book1にはA列:IDNO. B列:商品名 C列:金額・・・などとデータが保存されています。件数が2000ちかくあります。 book2で、請求明細のようなものを作りたく、Vlookupを使い、IDNO.を打ち込むとbook1にある、データが反映されるようになりました。 そこで、教えていただきたいのですが。・・ book2でIDNO.を入力したときに 同一の book1データ内にあるIDNO.の となりの(B列:商品名)セルに、色をつけることは出来ますでしょうか?   質問がわかりづらくてごめんなさい。ぜひ教えてください。m(__)m

  • エクセルで1つのシートから、対応する他のシートへデータを反映させるには

    シート1は A列に担当者、B列に店舗名、C列に商品名、D列に数量を入力する表になっています。 その他に担当者ごとにシートを作ってあります。 シート1にデータを入力すると自動的に担当者シートに反映される、ようなものを作りたいのですが、可能なのでしょうか。 (ちなみにmacを使用しています。) 説明不足でしたら申し訳ありません。

    • 締切済み
    • Mac
  • 一部のデータを別シートに自動的に抽出したい

    仕事で顧客データの入力をしています。そのデータの中で、ある条件に満たすデータの一部を別シートに自動的に抽出できるようにしたいです。必死に調べたのですが、できません。どうか教えてください。 ※基本データ(これからも毎日ここに入力します)   A     B    C     D     E    F     G   1  NO 担当者 お客様  日付   年齢  住所  土地有無 2 1  林   鈴木  3/1  55  ☆    有 3 2  国分  田中  3/1  37  ☆    無 4 3  国分  近藤  3/2  41  ☆    無 土地有無欄(G列)の「無」に該当する担当者列(B列)、お客様列(C列)のみを別シートに自動的に抽出する様にしたいです。 ※抽出先のシート    A      B       C      D     E 1 担当者 お客様名  予算  希望建築地 家族構成 2 国分   田中  3 国分   近藤    C列とD列とE列は新たに追加入力していく項目です。

  • エクセル 別のファイルにデータを流し込む方法

    エクセル 別のファイルにデータを流し込む方法 エクセルで、1つのファイルに入力してあるデータの内、 特定の行のデータを指定して、別のファイルに体裁(レイアウト)を変えて 表示させる方法を教えてください。 具体的には、例えば、元データのファイル(仮にBook1)が、 列に、A列-日付、B列-時間、C列-利用場所、D列-顧客番号、 E列-顧客氏名、F列-利用内容、G列-判定 というような項目を並べて、 1行ずつ、データが入力してあるファイルがあるとします。 この元データのファイルを利用して、別のファイル(仮にBook2)、 例えば、FAX送信用の紙のような書式のファイルに、 1枚の紙に、1人分のデータを、 流し込んで表示させるようなことをしたいと思っております。 これを、Book2の1個1個のセルに、元となるBook1のセルを参照するよう いちいち入力するのではなく、 Book1の特定の1行を指定すれば、その行に入力してあるデータが 自動的に(一発で)Book2のシートに反映されるようにしたいのですが、 良い方法がありますでしょうか。 ご存知のかたがいらっしゃいましたら、 お教えいただけると嬉しいです。 どうぞよろしくお願い申し上げます。

  • エクセルで基本となるファイルからデータを自動で取込みたい

    パソコン初心者です。宜しくお願いします! エクセル同士です。 ファイル(1)は元となるデータ、 a口座番号・b顧客名・c担当者が入力されています。 ファイル(2)には、a口座番号のみ入力されています。 ファイル(2)にファイル(1)からのb顧客名やc担当者が自動で取込まれる様にしたいのですが可能ですか? (例えば) ファイル(1) a、口座番号  b、顧客名  c、担当者 100          くま       あじ 200          いぬ      しゃけ ファイル(2) 100     (自動で入力) (自動で入力) できれば簡単な方法で教えてください-.-;

  • エクセルのデータ抽出について

    エクセルのデータ抽出で困っています。 ファイルは2ファイルを使用し、book1で日時のあいう個別の数値を集計するため、下記のようにファイルを作りたいのです。 ファイル:book 1    1   2   3   4 --|------------------------- A |   7/1 7/2 7/3 ・ ・ ・ B | あ 0.1 0.3 3.0 ・ ・ ・ C | い 1.2 0.1 0.3 ・ ・ ・ D | う 2.0 3.0 1.2 ・ ・ ・ ファイル:book2    1   2   3   4 --|------------------------- A | B | あ   C | い D | う book2のA1に「7/2」を入力すると、あいうの横(B2からD2)に「0.1、1.2、2.0」と自動で入るようにしたいのですが、ifやlookupくらいしかわからず、困っています。単純なことだと思うのですが、混乱してきました。 どなたか、アドバイスをいただけるとうれしいです。よろしくお願いいたします。

  • エクセルで他のBookのデータを入力規則のリストに…

    エクセル(Excel2002)の入力規則についての質問です。 仮にBook1のsheet1のA列1~10行に元の値となるデータを作成し,これに「データ」と名前をつけます。 このデータをBook1とは異なるBook2のA列1行において入力規則の元のデータに設定しドロップダウンリストから選択することは可能でしょうか? Book1とBook2は同一フォルダにあります。 ご教示ください。

  • [ExcelVBA]ファイル間集計についてです.

    こんにちは. ExcelVBA初心者の者です. book1.xlsm book2.xlsm book3.xlsmのように三つのマクロファイルが共有フォルダ内に存在するとします. 各マクロファイルの中身は同じで,Sheet1のA列に文字が入っており,B列C列に数字が入っています. 同じく,Sheet2にもA列に文字が入っており,B列C列に数字が入っています. book1,book2,book3各マクロファイルに誰かが毎日入力を行うのですが,Sheet1はAさんが入力を行い,Sheet2はBさんが入力を行うように決まっています.(Sheet1はAさんが入力担当Sheet2はBさんが入力担当) このとき,book4.xlsmというマクロファイルを別に用意し,このマクロファイルのユーザーフォーム1のCommandBotton1を押すだけで,各ファイル(book1,book2,book3)の値をSheet毎に集計(値をbook4に持ってくる)したいのです. 集計を行う際に,2回目以降にボタンを押した際には,前回集計された続きから集計をしたいで す. しかし,マクロは初心者のため,どなたかご教授頂けると助かります.よろしくお願いします.

  • Excel でのデータ集計

    下記問題ですが、どうもいい解決方法が見つからず、ご教授いただきたいと思います。 Excel の関数か、VBA で処理したいと思います。 Book1 A B C D E 1 a 2 b 3 c 4 d 5 e Book2 A B C D E 1 a ● 2 c ● 3 e 4 g ● 5 i Book1 の A 列に a,b,c,d,e があります。Book2 の A 列 のアルファベットが Book1 の A 列と重複しており、且つ B 列に ● がついている場合に、● の数をカウントしたいと思います。この場合の回答は 2 となれば解決です。ちなみに Book1、2 ともに、A 列内に重複はありません。 Excel での作業を考えており、関数か VBA かどちらかで問題ありません。 ご教授いただけますでしょうか。 よろしくお願いいたします。

  • エクセルでシートの文字データを別ブックに反映・・・

    エクセルを使って顧客データを作っています。 伝票データ(BOOK1)に ・婚約指輪のお客様データ(SHEET1) ・結婚指輪のお客様データ(SHEET2) があり、それぞれこんな感じ↓のデータが並んでいます。  店舗  伝票NO  お客様名  売上合計  品番・・・ -------------------------------------------------  A店   1-2-2   東京一郎  ¥120000  SDD223  B店   3-5-5   神戸次郎  ¥953330  LP002-30 このデータを、顧客データ(BOOK2)として自動的に反映される様にしたいです。 (1)反映したい列を選びたい。 (2)同じ名前の項目(例:店舗、お客様名など)はまとめたい。 婚約指輪のお客様(Book1sheet1)と結婚指輪のお客様(Book1sheet2)、両方の名前の名前をBook2の「お客様名」列に反映させたい。 上記の作業を出来るだけ簡単に組みたいです。 エクセルは初級者なのでマクロなど難しい事は分かりません。。。 でも、今日中になんとかしたいです! よろしくお願いします!!!

専門家に質問してみよう