みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも参考にさせて頂いております。
WIN 10
FM cloud
FM20
とある仕事の項目をLISTした結果が
日本のエリアで下記のような結果が1フィールドに改行で返されます。
九州
九州
関東
九州
九州
九州
関西
関西
九州
九州
このLISTを
九州:7 関東:1 関西:2
と表記させることは可能でしょうか?
よろしくお願いします。
Offline
While関数でできるとは思いますが
LISTした結果を使うより、そのLISTの代りにExecuteSQLを使った方がシンプルだと思います。
スマートな方法とは言えませんが、PatternCountでカウントする方法もありますね。
リストの元のテーブルで自己リレーションして、
計算フィールド
エリア & ":" Count ( 自己リレーション::エリア )
として、
これのユニークなリストを得ればできますね。
Offline
確かに「日本のエリア」が数が少ない固定した値群だろうから、PatternCountで全部列挙してしまうのは、ありですね。
例では登場順に結果が並んでますけど、固定されてた方が見やすそうだし...
自己リレーションでやるのは集計前のLISTが検索結果からだとすると追加の設定が必要ですけど、どうかな。
全エリアの判定も考えたんですが、
結果0の場合の処理が。。
List関数は関連レコードから結果を返しますから、
自己リレーションでも同じように照合させればいいことでしょう。
Offline
すみませんお返事遅くなりました!
参考にさせて頂いてやってみます!
自己リレーションでやってみようかなと思うんですが
リストの元のテーブルで自己リレーションして、
計算フィールド
エリア & ":" Count ( 自己リレーション::エリア )
として、
これのユニークなリストを得ればできますね。
このユニークなリストを得るというのはどういった処理をすれば可能ですか?
Offline
元テーブルを触れるのでしたら、そちらで集計してしまうのが楽でしょう。
地域を一覧する集計フィールドを作り、UniqueValues ( GetSummary ( 集計フィールド ; 集計フィールド ) ) という計算フィールド “lst” を作ります。
次に計算フィールド(繰り返し) GetValue ( lst ; Get ( 計算式繰り返し位置番号 ) = 地域[1] と、それを個別に合計する集計フィールドを作ります。
lst とそのフィールドを組み合わせて表示すればいいです。
Offline
できれば集計フィールドを作るのは避けたいところで悩んでおります。
フィールドを増やさずにできる方法はありますでしょうか。
実はこの過程は変数に設定して別のフィールドに展開する一コマです。
なので変数として設定する計算で出来ればいいなと思っていたんです。。。
Offline
ならば、最初の回答の通りに、リストをwhile()でカウントするか、SQL使って求めればいいでは。例えば、
While (
[
ttl = UniqueValues ( lst ) ;
i = ValueCount ( ttl ) ;
l = ""
] ;
i ;
[
t = GetValue ( ttl ; i ) ;
l = List ( t & ":" & ValueCount ( FilterValues ( lst ; t ) ) ; l ) ;
i = i - 1
] ;
Substitute ( l ; ¶ ; " " )
)
集計フィールドは、実データや別の構造に全く影響しないもので、多用しても無害ですよ。使い方を覚えないと損です。
Last edited by Shin (2023-12-08 13:27:05)
Offline
私の前レスの自己リレーションは、
現在の照合
and
エリア
で照合します。
> エリア & ":" Count ( 自己リレーション::エリア )
> として、
> これのユニークなリストを得ればできますね
これは、
もう一つ自己リレーション2として、
現在の照合
で照合して、
そのListのUniqueValueで得られますね。
Offline
みなさんありがとうございました。
shinさんのwhile()で無事に思った結果が出ました!
ver14で時が止まっておりましたので感動しました。
ありがとうございました。
Offline
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 523.43 KiB (Peak: 527.97 KiB) ]