みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
一部重複しているデータがあって、その中のいくつかが重複しているデータの内一つだけ表示したいです。
県名フィールド
市名フィールド
町名フィールド
番地フィールド
があって、
県・市・町フィールドが一致しているレコードの1つだけ表示して、住所録の中で県市町の一覧を作りたいです。
A県B市C町123番地
A県B市C町63番地
A県C市B町867番地
の3つのレコードがあったら
A県B市C町123番地
A県C市B町867番地
の2つのレコードだけ表示したい場合は、どのようにしたらいいでしょうか?
レコードそのものは8,000くらいあり、県市町だけにしても800くらいはあると思います。
バージョン9Winを使用しています。
よろしくお願いいたします。
値一覧の「2番表示フィールドでソート」機能を利用して、ユニーク住所だけのレコードID一覧を取得して、
それを照合キーにした自己リレーションを組み、そのリレーションで「関連レコードへ移動: のみ表示」する、とか。
・「レコードID」計算フィールドを作り、式に、 Get(レコード ID) と設定。
・「市町村」計算フィールドを作り、式に、 県名フィールド & 市名フィールド & 町名フィールド と設定。
・「ユニークID一覧」値一覧を作り、●値フィールド→「レコードID」、●2番表示フィールド→「市町村」、●ソートフィールド→「2番表示フィールド」 を設定。
・「ユニークID一覧」計算フィールドを作り、式に、 ValueListItems(Get(ファイル名);"ユニークID一覧") (計算結果:非保存指定) と設定。
・「自己リレーション」を作り、その照合式に、 「テーブル::ユニークID一覧」=「自己テーブル::レコードID」 と定義。
・最後に「ユニーク住所一覧」ボタンを作り、「関連レコードへ移動;自己テーブル;一覧レイアウト;関連のみ表示」 スクリプトを貼り付けて、完成。
Offline
県市町、で次に番地、という住所ばかりならば、郵便癌号を使えば集計で出来るでしょうが。
Offline
一つの郵便番号で複数の地名になっているものが有りますから、
郵便番号での集計では正確とは言えないですね。
重複判定のフィールドを連結して、
そのフィールドで集計すればいいのでは。
Offline
チポ様
ありがとうございます。
具体的にお教え頂けませんでしょうか?
集計を使ったことがなく(使い方が分からず)どのようにしたらいいのかイメージがわきません。
どうぞよろしくお願いいたします。
計算フィールドを作り、その計算式
県名 & 市名 & 町名
として、
このフィールドをソート対象とする小計パートを配置、
ボディを削除のレイアウトを作ります。
その計算フィールドでソート、リスト表示でブラウズします。
Offline
みなさん、ありがとうございます。
集計は、どうもうまくいかないですね。
ボディ削除すると何も表示されず…。
根本が理解できてないんだろうな、本でも買ってきます。
今回は、Hiroさんの方法でっやってみました。
県と市と町でソートして、集計区分付きでその3フィールドをテキスト書き出しして
別テーブルにでもインポートした方が楽かも?
Last edited by 旅人 (2015-04-01 14:07:28)
Offline
小計パートは、
そのソート対象フィールドでソートしないと表示されません。
Offline
> 一部重複しているデータがあって、その中のいくつかが重複しているデータの内一つだけ表示したい
という場合ですが、自己リレーションを使う方法がとにかく一番簡単です。手順としては、
1. レコードのプライマリキー(通し番号のことです)を付ける
2. 照合したいフィールドを計算フィールドで作成
3. 照合したいフィールドをキーにした自己リレーションを作成
4. プライマリキーで比較した式を作成
です。パートなどの処理は基本「データの表現のための処理」なので、今回についてはデータそのもので処理することになります。
以下にサンプルを用意しました。これは全国の市区町村を拾い出したものですので、キーとなっているフィールドの計算式を書き換えるだけでおっしゃられる目的にご利用になれます。
- [FMhelp.jp] 有限会社アモニータ・茂田カツノリ http://www.fmhelp.jp/
Offline
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 522.9 KiB (Peak: 527.81 KiB) ]