Excel 2000で顧客管理データを効率的に分割する方法と累計の管理方法

このQ&Aのポイント
  • Excel 2000を使用して顧客管理のデータ作成を行っています。月日、顧客名、数量、累計、担当者、コードの情報を入力しています。データをシート1に入力し続けたいのですが、コードAと空欄、BとCという2つの表に分けてシート2とシート3に表示したい場合、どのようにすればよいでしょうか?また、各シートごとに累計と通番号を管理する方法も教えてください。
  • Excel 2000を使用して顧客管理のデータ作成を行っていますが、データをコードAと空欄、BとCの2つの表に分けてシート2とシート3に表示したい場合、どのようにすればよいでしょうか?また、各シートごとに累計と通番号を付ける方法も教えてください。
  • Excel 2000を使用して顧客管理のデータ作成を行っていますが、データをコードAと空欄、BとCの2つの表に分けてシート2とシート3に表示したい場合、どのようにすればよいでしょうか?また、各シートごとに累計と通番号を管理する方法も教えてください。
回答を見る
  • ベストアンサー

エクセル2000でのデータ作成で・・

顧客管理のデータを入力しています。  月日 顧客名   数量 累計 担当者 コード    欄外  2/14 ○○○    1    1  田中   A       1  2/14 ○○○    1    2  田中   B      2  2/14 ○○○    2   4  鈴木          1  2/15 ○○○    2   6  鈴木   C      2  こんな感じだとします。 累計にはIF(ISBLANK(C3),"",D2+C3)のような式が入ってます。  コードAと空欄のものと、BとCとの2つの表に分けたいと します。シート1には全体の表を、シート2にAと空欄、シート3に BとCを表示したい時はどうしたらいいでしょうか?  新しいデータはシート1にどんどん入力したいのです。 シート2とシート3それぞれの累計と通番号も付けたい場合、 どうやるのが一番でしょうか・・。  今はシート1の欄外に1と2と入力してシート2に =IF(シート1!H1=1,シート1!A1,"") と入れています。  そうするとどうしても空白の行ができてしまい、 累計の演算式もエラーが出ます。行削除して、 通番号を付け直していますが、他に一発で隙間なく シート2,3へ転記され、各シートごとの累計を出す方法が ありましたらおしえてください。

noname#1125
noname#1125

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

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

VBAマクロを使えば簡単です。暇だったんで作って見ました(^^; 作って見たので、試して見てください。 試す場合は、自己の責任に於いて行ってください。 実行により、不都合が生じても責任は取れませんので.... 最低限、マスターはコピーを取って置いてください。 表示→ツールバー→コントロールツールボックスでコントロールツールボックスを表示し、ボタンをsheet1の欄外に貼り付けてください。 そのボタンをマウスでダブルクリックしてください。 マクロが表示されれば、下のプログラムを追加してください。 コントロールツールボックスを閉じ、一旦保存しExcelを終了してください。 再起動時、「マクロ云々」のメッセージが出ますので「マクロを有効にする」を選択し、起動後、ボタンを押下してみてください。 マクロは必要に応じて修正してください。 Private Sub CommandButton1_Click() Dim Count, S2, S3, S, loopf As Integer Dim d1, d2, d3, d4, d5, sheetbuf As String S2 = 2 S3 = 2 Count = 2 loopf = 1 While loopf buff = "f" & Count aa = Range(buff).Value d1 = Range("a" & Count).Value d2 = Range("b" & Count).Value d3 = Range("c" & Count).Value d4 = Range("e" & Count).Value d5 = Range("f" & Count).Value If aa = "A" Or aa = "" Then sheetbuf = "Sheet2" S = S2 ElseIf aa = "B" Or aa = "C" Then sheetbuf = "Sheet3" S = S3 End If Worksheets(sheetbuf).Range("a" & S).Value = d1 Worksheets(sheetbuf).Range("b" & S).Value = d2 Worksheets(sheetbuf).Range("c" & S).Value = d3 If S = 2 Then Worksheets(sheetbuf).Range("d" & S).Value = Worksheets(sheetbuf).Range("c" & S).Value Else Worksheets(sheetbuf).Range("d" & S).Value = "=IF(ISBLANK(C" & S & "),"""",D" & S - 1 & "+C" & S & ")" End If Worksheets(sheetbuf).Range("e" & S).Value = d4 Worksheets(sheetbuf).Range("f" & S).Value = d5 Count = Count + 1 If aa = "A" Or aa = "" Then S2 = S2 + 1 ElseIf aa = "B" Or aa = "C" Then S3 = S3 + 1 End If If d1 = "" Then loopf = 0 End If Wend End Sub

noname#1125
質問者

お礼

感動です!VBAマクロを記述していただけるなんて思ってもいませんでした! 本当にありがとうございます!ポイントでしかお礼できないのがつらいです。 そしてなによりツライのは自分のエクセルの知識はマクロを理解できないと いうことです(涙)。でも近いうちに必ず理解できるように、せっかく 作っていただいたものを自分で使えるように、勉強します。  素早くそして丁寧な回答に感謝します。

関連するQ&A

  • Excelの式が上手く行きません。

    色々調べてみたんですが、上手く行かないので質問させてください。         1日目            2日目 セルの列「C15」「C16」「C17」  「C18」「C19」「C20」  田中さん 「 」「A」「A」         「 」「A」「A」 鈴木さん 「 」「A」「A」         「 」「 」「 」 こんな感じでセルに入力したものを、次のシートで自動的にリストが作成されるように式を作っています。 1つのセル内に、 (1)田中さんのみが「 」「A」「A」のとき、田中さんの名前が出る。 (2)鈴木さんのみが「 」「A」「A」のとき、鈴木さんの名前が出る。 (3)田中さん・鈴木さんともに「 」「A」「A」のときは、田中さんと鈴木さんの名前が並んで表示される。 という3つの条件をすべて満たせる式を作りたいのですが、どうしても上手く行きません。 方法I:2つの式の間に「&」を入力した場合。 =IF(AND(Sheet1!R4C15="",Sheet1!R4C16="",Sheet1!R4C17="A"),Sheet1!R4C4&IF(AND(Sheet1!R5C15="",Sheet1!R5C16="",Sheet1!R5C17="A"),Sheet1!R5C4,)) これだと、 (1)田中さんのみが「 」「A」「A」のとき、田中さんの名前が出る⇒○ (2)鈴木さんのみが「 」「A」「A」のとき、なにも表示されない⇒× (3)田中さん・鈴木さんともに「 」「A」「A」のときに、田中さんと鈴木さんの名前が並んで表示される⇒○ となって、(2)が上手くいきません。 方法II:2つの式の間に「&」、1つ目の式の最後に「,""」(該当しない場合は空白を表示)を入力した場合。 =IF(AND(Sheet1!R4C15="",Sheet1!R4C16="A",Sheet1!R4C17="A"),Sheet1!R4C4,""&IF(AND(Sheet1!R5C15="",Sheet1!R5C16="A",Sheet1!R5C17="A"),Sheet1!R5C4,)) これだと、 (1)田中さんのみが「 」「A」「A」のとき、田中さんの名前が出る⇒○ (2)鈴木さんのみが「 」「A」「A」のとき、鈴木さんの名前が出る⇒○ (3)田中さん・鈴木さんさんともに「 」「A」「A」のときに、Bさんの名前が出ない。⇒× となって、(3)が上手くいきません。 (1)・(2)・(3)を全てクリアする方法はありませんでしょうか・・・。 知識がないもので、もしかしたら式自体がもっといい方法があるのかもしれませんが・・・。 最終的には人数を増やして、 他のセルでは「A」「 」「 」や別のローマ字「 」「 」「B」の条件に当てはまる名前を表示させて、 自動でリスト化できるようにしたいと考えていますが、これは式の問題が解決すれば応用でいけると思います。 本当は別のセルに「1」と入れれば1日目(C15・16・17)を参照して、「2」と入れれば2日目(C18・19・20)を参照するように作りたかったのですが、これは方法がわからないので諦めています。 困っています。どなたかわかる方いらっしゃいましたら教えてください・・・。

  • EXCELの関数で教えてください。

    シートAに顧客情報のデータを作っているのですが 別のシートBに表を作成して、顧客情報のシートAを参照するように、 例えばシートBのA1に「=sheetA!C3」と入力すると シートAのC3に文字が入っている時はきちんと表示されるのですが 空欄の場合0と表示されてしまいます。 空欄の場合は空欄にしておきたいのですが、 どうしたらいいのでしょうか? どなたかご教授ください。 Excelは2000です。 宜しくお願いします。

  • エクセルのマクロ(データの出力について)

          12345678910・・・・ ← 日付 田中    1 1  1    中村     1  1   鈴木    11111    ・  ・  ・ 上のようになっている表を下記のように変換したいのですが、マクロがうまく書けません。 A B C D E F G H I J K L  M   1   2   3   4   5   6  7  ← 日付   田中  中村  田中  鈴木  中村  田中   鈴木  鈴木  鈴木      鈴木 Sub test01() d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row r = Worksheets("Sheet1").Range("IV2").End(xlToLeft).Column k = 4 '新規作成用の行ポインター For j = 2 To r For i = 3 To d If Worksheets("Sheet1").Cells(i, j) = 1 Then Worksheets("新規作成用").Cells(k, 2 * (j - 6)) = Worksheets("Sheet1").Cells(i, 2) k = k + 1 End If Next i Next j End Sub ここまで書いていきづまってしまいました。どなたかご指南ください。

  • エクセル関数 何を使えばいいか教えてください

    初心者なもので作成中の資料に関数等を使ってスムーズに表示したいと考えています どなたかお知恵を貸して下さいますようお願いします。 出来れば本日中に頂けると有難いです。 内容     表1           表2  累計  実数   累計  実数 A   1    ?     A  3    ? B   2    ?  ⇔  B  2 ? C  3    ?     C  1 ? D  4    ?     D  1    ? 上記のようなエクセルシートがあります。 ・実数値を求めます(普通は引き算すればいいのですが…) ・行Aから行D 及び 累計と実数は固定です ・表1は行Aから下へ累計値を入力 表2は行Dから上へ累計値を入力 上下両方の入力方法に対して対応できる関数式を教えてください。 説明が下手なのですみません

  • エクセル あるコードを含む行ごと、他のシートに反映させたい。

    こんばんは。 エクセルで以下のような表を作成しています。 [シート1]   A列   B列   C列  D列 1 コード  担当   日付  ・・・ --------------------------------------- 2 S679   山田   9/1  ・・・ 3 S679   田中   9/2  ・・・ 4 S680   山田   9/2  ・・・ 5 S679   鈴木   9/4  ・・・ ・ ・ ・ また、[S679]・[S680]というシートを作成し、 [シート1]のA列にコードを入力するごとに、該当のシートに行ごと データを反映させる方法はありますでしょうか。 上の例でいくと、 [S679]シートには   A列   B列   C列  D列 1 コード  担当   日付  ・・・ --------------------------------------- 2 S679   山田   9/1  ・・・ 3 S679   田中   9/2  ・・・ 5 S679   鈴木   9/4  ・・・ というように。 [シート1]にデータを入力するごとに、 該当コードの列のデータを[S679]・[S680]シートに反映させる方法があれば、 どうぞご教示をお願いします。 文中の至らぬ点はご指摘いただければ都度補足いたしますので、 よろしくお願いいたします。

  • エクセル 関数を使わずにデータを取りたい

    EXCELを使ってデータ入力をしたいです。 下の図のように、シート1のA列にコードを入力すると、シート2のテーブルから値を引っ張ってくるようにしたい。 たとえば、シート1のA1に"C001"を入力したら、B1に"赤"が自動入力されるようにしたい。 シート1 A列 B列 行1 C001 シート2 A列 B列 行1 C001 赤 行2 C002 青 行3 C003 黄色 ただし、シート1のB列の値は、入力後に編集するため、ここには計算式を入れたくないのです。 なので、通常ならばB列にVLOOKUP関数を使えばすむことですが、計算式を入れずに上記を実現する方法を教えてください。

  • Excel 重複値を検索し全て表示させる関数

    Sheet1の1行目には見出しがあり、A列とB列の2行目から下にデータが入っています。(約200行) A列     B列 田中    13 山本     8 谷口    11 鈴木    6 田中    10 佐々木    9 奥村     15 佐々木   15 佐々木   20 ・ ・ ・ Sheet2のA列1行目から下には別のデータが入っています。(約600行) A列 太田川 山村 田中 多賀先 鈴木 奥村 幸田 ・ ・ ・ Sheet2のA列のデータと完全一致するデータ(名前)をSheet1のA列から探して、同じ名前があれば、その隣のB列にある数値をSheet2のB列に貼り付ける(B列が重複の場合、下に張り付ける。但し、A列の名前は1行目は表示、2行目からは表示、空欄でも構いません)。 見つからない場合はSheet2のB列は空欄のままです。 Sheet2 A列      B列 太田川      山村 田中    13        10 多賀先 鈴木     6 奥村    15 佐々木   9       15       20 幸田 ・ ・ ・ 何卒、ご指導の程宜しくお願い致します。

  • エクセルの関数について教えて下さい。

    エクセルの関数について教えて下さい。 以下のような対戦表があります。 行毎の対戦です。B,Cにはそれぞれのスコアが入ります。    A    B   C   D  1 田中          鈴木  2 目黒          井上 例えば次のように、それぞれの勝者をA3とD3に入るようにしたいのですが、どのようにすれば良いか分かりません。    A    B   C   D  1 田中  2   5   鈴木  2 目黒  4   1   井上  3 鈴木          目黒 どなたか、お分かりになりましたら教えて下さい。 よろしくお願いいたします。

  • エクセル関数について

    下記のようなエクセルのデータを作りたいのですが、どのような関数を使えばいいかわかりません。 シート1           シート11           シート12            A    B         A    B            A    B  1  田中 500円    1 田中  500       1 田中  500 2               2 シート2    A    B         A   B             A    B  1  伊藤 300円     3 伊藤 300         2 伊藤  300 2  佐藤 400円     4 佐藤 400         3 佐藤  400 このようにシート1から10まで2行入力する欄を作ります その中から大事なデータだけを集計するため一度シート11に反映させます この時2行目が空欄の場合はシート11も空欄になっています。 そしてこのシート11から空白部分を除いて順番に並べるシート12を作りたいです。 シート11は=Sheet1!A1のように単純に反映ができるのかと思うのですが シート12へ空白を除いて反映させる方法がわかりません。 わかりづらい質問でも申し訳ありませんが  何卒よろしくお願い致します。  

  • エクセルで別シートを参照していて、参照元のデータを変更した場合

    エクセルで別シートを参照したいのですがうまくいきません。 (1)Sheet1には顧客データが入っています。 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 佐藤 大阪 女 4 鈴木 福岡 女 (2)Sheet2ではSheet1の顧客データの一部+獲得ポイントのデータが入っています。Sheet2のA列とB列に「=Sheet1!A2」とういう風に関数を入れてSheet1を参照しています。C列~は手入力でデータを入力しています。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15  2 小川 東京  1    5 3 佐藤 大阪  1    5 4 鈴木 福岡  1    5 (3)Sheet1に新たに顧客情報を入れますが、氏名は五十音順にしたいので行を挿入して入力します。(行3に加藤さんを入れました) 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 加藤 沖縄 男 4 佐藤 大阪 女 5 鈴木 福岡 女 (4)私の希望としては、(3)をしたらSheet2は↓のようになってほしいのですが、実際には(2)の状態のままです。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15   2 小川 東京  1    5 3 加藤 沖縄   4 佐藤 大阪  1    5 5 鈴木 福岡  1    5 (5)Sheet1の変更結果をSheet2に反映することは無理なのでしょうか?

専門家に質問してみよう