• ベストアンサー

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

ファイルメーカー Pro8.5を利用しています。 使用OS:Windows XP Professional フィールドに入っているユニークな値の数を求める方法を 知りたいです。 例えば、このようなデータがあるとします。 たまご りんご りんご たまご みかん たまご みかん ・ ・ ・ 上記の例でいくと、現在該当のレコード一覧には3種類の商品が あるので、「3」という数字を返してくれるフィールドを作りたいです。 集計フィールドのカウントを使ってみましたが、当然ながら「7」になります。 市販マニュアルの関数一覧を一通り探したのですが、 それらしき関数を見つける事が出来ませんでした。 それでは何卒宜しくお願い申し上げます。

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

  • ベストアンサー
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.6

スクリプトの場合 1.品名合計という集計フィールドを作る。内容は品名のカウント/現在の/品名差ソートで集計を再開 2.変換という数字フィールドを作る 3.種類という集計フィールドを作る。内容は変換の合計 4.スクリプトを作る。  ・ソート/品名でソート  ・フィールド内容の全置換/計算結果/変換フィールドを「品名合計=1」という計算式で置換  ・ソート解除 検索後に4のスクリプトを動かせば「種類」フィールドに出ます。 そのままでは種類フィールドの内容(値)が残ってしまうのが難点です。

di-keichu
質問者

お礼

お返事が遅れ申し訳ございません・・・ 今回の作り込みは、もっと勉強を重ねてから 挑戦しようと思います。 今の私のスキルだとかなり困難なような気がしまして・・・ 実は他サイトでも質問させて頂いたり、 (サーバー側でトラブルがありすぐに削除となってしまったようですが・・・) マニュアルを一から見直して頑張ってはいたのですが、 頭が固い&他にやらなければいけない仕事が沢山、という状態でしたので 改めて挑戦する事に致しました。 色々とご教授頂いたのに、本当に申し訳ございません。 誠にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • aqula
  • ベストアンサー率60% (70/115)
回答No.5

やっぱり・・・ 自分がするとしたら、スクリプト使って力技ですね。 今のテーブルをテーブルAとします。 検索結果を表示するためのテーブルBを新しく作って、 表示に必要なフィールド作成、 先ほどの回答の細工をして、 スクリプトで テーブルAで検索 テーブルBで全レコード削除 テーブルAからテーブルBにレコード取り込み

di-keichu
質問者

お礼

お返事が遅れ申し訳ございません・・・ 今回の作り込みは、もっと勉強を重ねてから 挑戦しようと思います。 今の私のスキルだとかなり困難なような気がしまして・・・ 実は他サイトでも質問させて頂いたり、 (サーバー側でトラブルがありすぐに削除となってしまったようですが・・・) マニュアルを一から見直して頑張ってはいたのですが、 頭が固い&他にやらなければいけない仕事が沢山、という状態でしたので 改めて挑戦する事に致しました。 色々とご教授頂いたのに、本当に申し訳ございません。 誠にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • aqula
  • ベストアンサー率60% (70/115)
回答No.4

全レコードのユニークな値の数でよければ・・・ フィールド値で値一覧を作って、 WordCount ( ValueListItems ( "ファイル名" ; "値一覧名" ) ) フィールド内が漢字かな混じりで WordCount がおかしくなる場合は PatternCount ( ValueListItems ( "ファイル名" ; "値一覧名" ) ; "¶" ) - IsEmpty ( ValueListItems ( "ファイル名" ; "値一覧名" ) ) + 1

di-keichu
質問者

お礼

ご回答ありがとうございます。 そして、説明不足で大変申し訳ございません・・・ こちら、全レコードではなく、対象レコードです。 例えば、売上日を1月1日~1月20日で検索して、 「おー、この期間は○種類の商品が出たんだな」というのを ブラウズモードで一目で見たい、という感じです。 「おー、この期間は合計で○円の売上なんだな」というのは 集計フィールドの合計値で求める事が出来ますが、 「おー、この期間は○種類の商品が出たんだな」というのも 「売上合計」の隣あたりに表示させたいのです。

全文を見る
すると、全ての回答が全文表示されます。
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.3

別板でのご投稿で判ったのですが、対象レコードなのですね。失礼。 楽なのはスクリプトですね。

di-keichu
質問者

お礼

かしこまりました、ご回答ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

↓ここで投稿されたのではないのですか? http://otasuke.goo-net.com/c219.html ↓同じ質問はココに http://otasuke.goo-net.com/qa3658150.html

di-keichu
質問者

お礼

ご回答ありがとうございます。 いえ、本家のOKwaveで質問させて頂いているので このサイトは初見でした。 (教えてgoo、教えてHome'sくんなど、OKwaveのシステムを 共有しているサイトは沢山あるので) ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

すぐ下の質問と全く同じですよ。 集計フィールドを使う場合は区分けしたいフィールドでのソートが必要です。 たまご、りんごが入っているフィールド名が品名とすると、集計レイアウトで 品名をソート対象とする小計パートを作り、そこに「品名」フィールドと「品名のカウント」 という集計フィールドを置いて、品名でソートしてプレビューモードにします。 または=Getsummary(品名のカウント;品名)という計算フィールドを作り、品名でソートす ればブラウズモードでも見れますが、ソートが崩れると表示しません。

di-keichu
質問者

お礼

ご回答ありがとうございます。 教えて頂いた方法で、プレビューモードでの表示に成功しました。 ただ、ソートをせずに、プレビューモードにもせずに、 ブラウズモードでパッと見られるフィールドを作りたかったのですが、 これは不可能、という事なんですね。残念です・・・ ちなみに、 >すぐ下の質問と全く同じですよ。 ↑ この意味がちょっと分からなかったのですが・・・ 私と同様の質問をされていらっしゃる方がいる、という事でしょうか? であれば、その方のページも参考に拝見したいのでURLを教えて頂けませんか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ファイルメーカー8 一括に貼付

    繰り返し10のフィールドA 通常のフィールドB ボタンC があります。 ボタンCを押すと、BのテキストをAのフィールドに張り付けるようにしますが、1番上に値がすでに入っていた場合は2番目に入れる、というように空欄に入れる方法は計算式を使ってできました。 ただ、1レコードずついちいちボタンCを押さないと張り付けてくれませんので、できれば対象レコードすべてフィールドBの内容をすべてフィールドAに張り付けたいのです。 スクリプトを使うとき、Bを全置換して、張り付けるのだと思ったのですが、対象レコードに一括貼付する方法がわかりません。 例 フィールドB:りんご フィールドA: レコード1は空欄、空欄、・・・、空欄 レコード2はみかん、空欄、・・・、空欄 レコード3はみかん、柿、空欄、・・・、空欄 とあったとき、ボタンCをおすと フィールドA: レコード1はりんご、空欄、・・・、空欄 レコード2はみかん、りんご、空欄、・・・、空欄 レコード3はみかん、柿、りんご、空欄、・・・、空欄 としたいということです。 方法はありますでしょうか?

  • ファイルメーカーの集計方法を教えて下さい。

    ひとつのレイアウトに、名前、年齢、住所などのフィールドがあります。レコード一枚が顧客情報の一覧になります。 その情報を一つのレイアウトに集計したデータで表示させたいのですが、うまくいきません。 たとえば、20歳~30歳までの顧客は何人いるか? 〇○県の顧客は何人いるか? エクセルではIF関数を使って一つのセルに計算出来たのですが、 ファイルメーカだと集計フィールドのカウントを利用して全体の数は計算できるのですが、 条件付きの集計ができません。 検索を掛けて一回一回やっていくのには手間がかかるので一つのレイアウトとしてまとめたいのです。 質問の説明が下手で伝わりにくいかもしれませんがよろしくお願い致します。 仕様はPRO9.0です。

  • ファイルメーカー 集計数字を求め方

    ビギナーです。 Window7とファイルメーカーPro11アドバンスを使っています。 実は、派遣バイトの給料計算におきまして、日当+残業という実にシンプルなデータベースの構築で 壁にぶつかってしまいました。集計数字を求めることができません。 バイトの給料の締めが、21日から翌月20日、顧客の会社に請求する期間が1日から30日と締めがことなることから、社員一名 、1日でレコードを作成し、期間指定でソートして給料や手数料の請求額を求めることにしました。(一人一ヶ月で30のレコードを持ちます。) ポータル機能を使って、1ページに一人分の一か月分の給料を表にして表示できるようにしました。 縦軸が日付で、横軸が賃金の数字となります。 社員コード 1234     所属 経理      名前  x山 ○子 日付   日当   残業1.5/賃金   昼食代 交通費      合計 21    8000円   2時間 2000円  800円  1000円     11800円 (計算フィールド) 22                    . . . 翌月20日                                                       一番下に各項目の合計のフィールド(集計フィールド)をおき、ボディーパートに配置しました。部署別に各項目の集計を表示させたく、小計パートを部署フィールドに指定し、そのまま合計の集計フィールドをコピペし。その後、セクション別にソートしましたら、小計のすぐ上の人のみの数字だけで全員の数字が加算されておりませんでした。 よく考えましたら一人で30レコードをもっておりますので、それしか集計されないということが わかりました。どうしても全員、セクション別の集計数字を表示させたいのですが、 どうしたらよいでしょうか。 また、社員コードをカウント関数で算出し、所属人数を表示させようと思いましたら 社員一人で一ヶ月で30のレコードをもっておりますので、そのまま全部数えられ、5人で150という数が算出されてしまいました。 ここまでくるのに、マニュアル本を片手にかなり時間がかかり、個人の集計はなんとかこじつけましたが、部署別の集計と総計で壁にぶつかってしまいました。個人のページで集計フィールドを使ってしまったのかいけなかったのだと思っています。なにかよい方法はないでしょうか。 なにとぞご教示ください。 わかりにくい部分があると思いますが、ご指摘いただければご説明します。

  • ファイルメーカー8.0繰り返しフィールド最終レコードに一括文字挿入

    ご質問です。 繰り返しフィールドたとえば5で作成しているとします。 下記のようなレコードがあったとします。 各レコードの次のレコードにみかんという文字を一括で 挿入したいのですが、(1)の場合は3列目が最後 (2)の場合は1列目が 最後となっており、全置換が使えません。 何か良い方法ご存知ですか? (1)りんご  ばなな  ぱいなっぷる (2)りんご

  • ファイルメーカーで質問です

    ファイルメーカー8.0v2をMacOS10.5.8で使用してます。 初心者ですが本を見ながらハガキのアンケートの集計フォームを作成しております。 ハガキ1枚につき1つのレコードを作り、いくつかの質問を入力しており、 年齢のフィールドに値一覧で 20才~29才 30才~39才 40才~49才 50才~59才 とポッアップメニューから 入力するようにしています。 20才~29才の人は====15人 30才~39才の人は====26人 40才~49才の人は====38人 50才~59才の人は====10人などと 関数等を使って自動的に集計して表示する方法はないものでしょうか? 値一覧で入力しているのでうまくいきません。よろしくお願いします。

  • ファイルメーカーでの最大値のフィールド名の求め方

    ファイルメーカーPro7を使用しています。 1つのレコードに何個(数字タイプ)かのフィールドがあり、 その中から最大値のフィールド名を求める関数はありますか。 例)フィールド名 - 数量 A商店 3 B商店 22 C商店 6 . . . Z商店 345 答 Z商店 よろしくお願いします。

  • ファイルメーカー6のif関数について

    ファイルメーカー6、MacOS9.2を使ってる初心者です。 ファイルメーカーの事で前も教えて頂きましたが、またお願いします。 商品名、数量、単価、合計という4つのフィールドがあります。 合計フィールドは数量フィールド×単価フィールドという計算式で出していて これ自体は問題ないんですが、 商品名を値一覧から(約10品名)選び、選んだ品名から自動で 単価を入れたいんですがやり方が分かりません。 例えば商品名にみかんを選んだ場合は単価に50を、 リンゴを選んだら70を バナナを選んだ90を・・・・ こんな感じで10品目分を設定したいんですが出来ません。 ひとつだけならif関数で出来たんですが・・・ もちろん、設定が出来るならif関数じゃなくても良いんです。 よろしくお願いいたします。

  • レコードの文字列をフィールド抽出のクエリとして指定

    レコードの文字列として リンゴ ミカン イチゴ となっていたときに、この3つを別のテーブルにあるフィールド名のリンゴ、ミカン、イチゴのみを抽出するクエリをVBAで指定できますか?

  • テキストボックスに、クエリの集計カウント数を表示

    Access2019 クエリの商品毎の集計カウントをテキストボックスに、表示させよう取り組んでいますが表示出来る迄至っていません。 クエリ名:3_商品_全集計カウント クエリのフィールド:商品名 , 商品名のカウント 例> りんご 20 みかん 100 りんごのカウント数が表示するテキストボックスに、20が表示する様にしたいです。 テキストボックスは、それぞれ商品毎のテキストボックスをフォームに設けて、テキストボックスのコントロールソースに以下の関数を組んで結果は #Name? です。 DLookup("商品名のカウント", "3_商品_全集計カウント", "商品名 = '" & りんご & "'") ご教授頂けたら幸いです。 以上、宜しくお願い致します。

  • ファイルメーカー 小計の合計

    こんにちは、ファイルメーカPRO9 winXPでの質問です。 小計の合計の出し方がどうしてもわからなくて、困り果てています。 どうかよろしくお願いします。 売上テーブルと売上レイアウトを作り、売上を売上のあった順にどんどん入力していきました 【日付】【ID】【顧客名】【売上】  11月5日  1  A子さん 10000円 11月10日  2  B子さん 20000円 11月12日  3  C子さん 30000円 11月15日  3  C子さん 20000円 11月20日  1 A子さん 10000円        集計レイアウトを作り下記のようにフィールドを配置しました ヘッダ-------------------- 11月度売上一覧  ID 顧客名 売上  IDをソート条件とする小計パート-------------------------- フィールド【ID】【顧客名】【売上の顧客ごとの集計】【消費税の顧客ごとの集計】       1  A子さん       30000円       1500円        2 B子さん          20000円         1000円       3  C子さん       50000円       2500円         --------------------------------------------------------     後部総計 フィールド  【売上集計】【消費税集計】      値       100000円   5000円→これがちゃんと計算されません!     -------------------------------------------------------- 【売上集計】のみ別れいあうと「売上レイアウト」の値を集計機能を使って集計するだけなのでうまくいきました。 【消費税集計】が出来なくて困っています。 これが元の売上レイアウトからひっぱってこれれば簡単なのでしょうが、顧客ごとの集計値が出ない限り計算ができないので、この「集計レイアウト」上で作るしかないのです。 そこで集計機能を使って集計すると、 (合計、使用できるフィールド:【消費税】 繰り返しの集計:全体にしています) 上の例で【消費税集計】が9000円になってしまうのです。 売上レイアウトでB子さんのレコードは1つですが、A子さん、C子さんは2つずつありますね、そうすると (1500×2)+1000+(2500×2)=9000 という計算になってしまうんです。 純粋に、【消費税集計】の縦計をするにはどうすればいいのでしょうか? 繰り返しの集計を個別にしたり、ソートされたグループごとに集計を再開するでソート対象をIDにしたり月にしたり色々試してみましたが、うまくいかず万策尽きています どうか、わかる方教えてください、お願いします。