6 返信 最新の回答 日時: Aug 19, 2011 8:29 PM ユーザー:okavango

    売上の人数カウント方法が分かりません

    okavango

      タイトル

      売上の人数カウント方法が分かりません

      フォーラムに投稿

      ファイルメ-カ-を最近,使い始めた初心者です.

      FMP11を使っています.

       

      図のような売上テ-ブルをつくりました.

      購入日ごとに顧客の人数を数えたいのですが,

      図の例ですと本来3名なのですが,

      顧客番号のレコ-ド数を数えてしまい9名となってしまいます.

       

      csvで他のアプリケ-ションにもデ-タを渡したいため

      繰り返しフィ-ルドは使いたくありません.

       

      顧客番号を購入日で区分けして数えればいいのかと思うのですが,

      やってみても全然違う値が出てきてしまいます.

       

      どのようにすればよいでしょうか?

      %E5%A3%B2%E4%B8%8A%E8%A1%A8%E4%BE%8B.gif

        • 1. Re: 売上の人数カウント方法が分かりません
          hiro_

           値一覧の「値のユニークリスト化」機能を利用して、その値一覧の値の数をカウントして求める案。

          「購入日」をキーに自己リレーションを組み、そのリレーションの関連「::顧客番号」で動的値一覧を作ります。この動的値一覧の内容をValueLisItems関数で取り出し、さらにValueCount関数でそのリスト数をカウントして完成です。

          • 2. Re: 売上の人数カウント方法が分かりません
            okavango

            ご回答ありがとうございます。

            解説の意味が、あまりわかっていないのですが、

            下記なども参照しながら、試行錯誤中です。

             

            フィールド内のユニークな値を数える方法:

            http://www2.filemaker.co.jp/fmi/xsl/techinfo/browserecord.xsl?AnswerID==JOOSB9617658308

             

            フィールド内のユニークな値の合計:

            http://www.kipwmi.com/fmbbs/wwwlng.cgi?print+200801/08010012.txt

             

            ファイルメーカーでフィールド内のユニークな値の合計:

            http://oshiete.goo.ne.jp/qa/3658890.html

             

            "値一覧の「値のユニークリスト化」機能"があるのを発見しましたが、

            どのように設定すれば、ユニーク値をカウントできるのか、

            設定方法(記述方法?)が分からなくて止まっています。

             

            また、ご回答にある”「購入日」をキーに自己リレーションを組み”というのは、

            複製元(テーブル1)と複製先(テーブル2)のテーブル同士を

            「購入日=購入日」で結ぶということでしょうか?

             

            =========================

            質問の補足

            =========================

            ・顧客番号の数 (タイプ:集計)   = 顧客番号カウント(再起動による実行)、ソート対象 購入日

            ・顧客人数 (タイプ:計算)      非保存, from テーブル1, = Getsummary(顧客番号の数;顧客番号)

             

            上記のフィールドを定義し、

            レポート(スクリプト)を購入日と顧客番号でソートして

            顧客人数をカウントしようとしても、

            「顧客番号の数」は単純に顧客番号のレコード数が表示され、

            「顧客人数」はなにも表示されず空欄です。

             

            上記の方向性では修正を加えても、実現は難しいでしょうか?

            やはり、ご回答いただいたやり方が初心者にも実現しやすいのでしょうか。

            =========================

            • 3. Re: 売上の人数カウント方法が分かりません
              hiro_

               設定の詳細説明代わりに簡単なサンプル「日別客数集計.fp7」をつくり下記URLにアップしました。FM10以降でご覧ください。

                http://briefcase.yahoo.co.jp/bc/brghspr/lst?.dir=/352b/5801&.order=&.view=l

              • 4. Re: 売上の人数カウント方法が分かりません
                Shin

                売上テーブルの1テーブルで処理を行っておられるようでね。

                入力方法を少し変更して、伝票というテーブルを作ります。(1顧客1日毎に1レコード作成)、その伝票テーブルからリレーションを張った詳細テーブルの中に、購入商品を入力していく、という方法に変更される良いでしょう。入力は、伝票のレイアウトの中に、ポータルで詳細を表示しておけば、通常の手書きの伝票と同じイメージで入力できます。

                この構造ですと、1日の購入顧客数は、伝票の数を数えれば良い事になります。

                ただし、同じ顧客が同一日に複数回の購入になった場合の処理をどうするか、というのは、少しだけ問題になるかもしれません。

                 

                または、顧客マスターと言うテーブルを作っておきます。日付で自己リレーションを張ったテーブルから、さらに顧客マスターにリレーションを張ります。この顧客マスターの該当レコード数を数えれば、その日の顧客数になります。値一覧を使わない方法です。

                • 5. Re: 売上の人数カウント方法が分かりません
                  okavango

                  hiroさま

                   

                  具体例をありがとうございます。

                  実際に作成中のデータベースでもカウントできました。

                  ありがとうございます。

                  値一覧や関数の使い方を以前より理解できました。

                   

                  「FileMaker Pro 11 スーパーリファレンス(野沢 直樹 著)」

                  「FileMaker Pro11 基礎講座(小山 香織 著)」

                  の2冊を購入して作成していましたが、

                  これらに載っていない使用方法が必要になることも多いですね。

                  (用途が無限な上に紙面が限られているので当然ですね)

                   

                  実際の売上データでは、

                  来店して購入した方と、通販で購入した方の人数を

                  別々にカウントする必要があることに気付き、ただいま試行錯誤中です。

                  • 6. Re: 売上の人数カウント方法が分かりません
                    okavango

                    Shinさま

                    ご回答ありがとうございます。

                    まだいただいたアイデアを完全には試しきれていないのですが、

                    顧客マスターと商品マスターはつくりました。

                    同じ顧客が同一日に複数回の購入することは基本的にないですし、

                    万が一あったとしても、一回で購入したことにして(経理上の問題なしです)、

                    ひとつの伝票に入力すれば大丈夫かなと想像しています。

                    試行錯誤してみます。