みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
フィールドaにカンマ区切りの文字列があります。
あか,あお,きいろ,みどり,ぴんく,
aの内容はレコード毎に違い、5個のこともあれば、3個しか無いこともあります。5以上にはなりません。
フィールドb〜fに、aの内容をカンマ区切り毎に切り分ける式を書いて、内容をそれぞれ格納しました。
そんなレコードが100あります。
全てのレコードのフィールドb〜fのそれぞれの値をマージして、別テーブルのひとつのフィールドにまとめたいです。
どうするといいですか?
具体的には、複数のwebサイトを見て、キーワードを抽出しています。
いくつかの共通するワードが集まるので、ワード毎に何件あるかの件数を求めたいです。
excelでなら、b〜f列の内容を一つの列にマージして、countifで、同じワードの個数を求める。のをFileMakerでやりたいです。
マージフィールドは違いますよね?
言葉の言い回しが違いますか?
マージして得たいのは、全数、個別の数、独立した単語が全数分です。
Offline
5個のフィールドでなく(そこからでもいいですが)繰り返し5の1つのフィールドに入れると、レコードのインポートの「繰り返しをレコードに分割」で1レコード1値にできます。
ご教示ありがとうございます。
教えていただいた説明がさっぱりわかりません。
フィールドの「繰り返し」を5に設定しました。
ちまちまと、値を入力して行きました。それをエクスポートしました。
そして、新規でテーブル作ってインポートしようとしましたが、繰り返しフィールドのプルダウンがグレーアウトしていて選べません。
最初の、フィールドに入れるのは何を入れるんですか?。
すでにある、カンマ区切りの値を1つのフィールドのそのままを「入れると」の入れ方がわかりません。
レコードのインポートは、何を入れるんですか?。
「1つのフィールドに入れると、」と「レコードのインポートの」との間に何か手順があるけど説明されてない?
と思うのですが、そこが解決しないので、さっぱり意味がわかりません。
「1つのフィールドに入れると、」の部分がわからないので、当然かも知れません。
どう聞くのがいいのか、聞き方から教えてもらえるとありがたいです。
よろしくお願いします。
Last edited by zouno33 (2022-03-06 22:24:10)
Offline
5個のフィールドに入れる計算はできてたので、繰り返しもできるかと思ったんですが
1つの繰り返しフィールドに入れます。
計算タイプでいいです。
Choose ( Get(計算式繰り返し位置番号) - 1 ; b ; c ; d ; e ; f )
(5個のフィールドに入れるのを応用すればここは b~f でなく a を使った計算式にもできますが、長くなります)
インポートします。
「インポート順の指定」のダイアログで一番下にある「繰り返しフィールド」オプションを「レコードに分割」
>繰り返しフィールドのプルダウンがグレーアウトしていて選べません。
これはインポートのソースフィールドが繰り返しの場合しか指定できないからです。(旧バージョンと違ってフィールドごとに指定できる)
以上、手順は2つです。
マージ
って
統合、併合
のような意味ですよね。
100レコードの、各5フィールドを全部まとめて一つのフィールドに入れる
っていうこと?
集計が目的なら、
himadaneeさんの解釈でいいと思いますが。。
Offline
ご教示ありがとうございます。
ちょっとやってみたのですが、上手くいかなかったです。
疲れてるせいだと思います。週末にゆっくりやってみようと思います。
ひとまずお礼だけ。
やったこと。
一つのファイルに、テーブルが2つあります。
カンマ区切りのフィールドと分割されたフィールド。の入ったテーブルA。
教えていただいた式を入れた計算フィールドaと、空のb〜fのフィールドのあるテーブルB。
テーブルAのa〜fのフィールドをエクスポートし、
テーブルBでインポート。計算式を入れたフィールドaにカンマ区切りのデータをインポートしようとすると、
インポート不可と表示されます。
できないので、空のb〜fのそれぞれにそれぞれのデータをインポート
結果、aにbのデータが表示され、あとはそれぞれのデータが表示されます。
aにインポートできないのは、計算式だからだという考えに至り、
計算式を入れたフィールドgを用意してインポートしよう取ると、
aと同じくインポート不可と表示されます。
何がちがうのでしょう?。
Offline
計算タイプのフィールドは、計算結果を表示するので、他の値を入力したりインポートしたりはできません。(これはExcelで計算式を入れたセルと同じことです。計算式はセルを保護してなければ上書きできますが、データベースでは1つのフィールドは全レコードで同じ設定になるし、レコードごとに上書きしたりはできません)
#4の計算式は、インポートのソースを作るためのものなので、元のデータがあるテーブルAにフィールド(名前はzでも何でも)を1つ作り、計算タイプとし、計算式を入れ、繰り返し数を5にします。
結果は、フィールドb~fの値が繰り返しの1~5に入ります。
と書いてから計算式の間違いに気づきました。すいません。(しかしこれはインポートがうまくいかなかったのとは関係ありません)
Choose ( Get(計算式繰り返し位置番号) - 1 ; b[1] ; c[1] ; d[1] ; e[1] ; f[1] )
と、各フィールド名に[1]を後置しないといけませんでした。(繰り返しの何番目の計算でも、参照するフィールドの1番目の繰り返し(繰り返しでないフィールドは繰り返し数1のフィールドとなる)を参照するという意味です。これを書かないと、2番目のフィールドでは存在しないb[2]、などを参照して計算してしまう)
インポートのターゲットのテーブルBは、フィールド1つだけで計算も繰り返しも設定しません。ここへA::z(テーブルAのフィールドzはコロン2個で区切ってこのように書くのがFMの規則)をインポートします。
変な時間に目覚めて、すっきりした頭で検証すると理解できて、実現できました。
ありがとうございます。
集計目的なので、欲しい結果が得られました。
まとめると、
1_個別の値をひとつにまとめる指示がわからなかった
・元々の塊を個別に分けてる。そこで自分の頭の中では処理が終わっていた。
・Chooseの意味が理解できてなかった。(b〜fの値をひとつにまとめるのは、&で文字列を繋ぐのとは意味が違う)
2_エクスポートの形式が正しくなかった
・csvで出力するのが絶対で、それ以外考えられなかった。
・csvファイルをエディタ(Mac環境なため、miエディタ)にて、中身を見ると、文字列の区切りにカンマが入って無くて、気付いた
だから、話しが通じなかった。です。
多分、まとめ2が致命的で、まとめ1は無知で怠慢でした。
Offline
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 540.67 KiB (Peak: 561.21 KiB) ]