FileMakerで同じ値が連続している個数を取得するスクリプト

このQ&Aのポイント
  • 初心者向けのFileMaker Pro 5.5で使用できる、同じ値が連続している個数を取得するスクリプトを組む方法を調査しています。
  • フィールド甲を参照し、同じ値が連続している個数をフィールド乙に返すスクリプトを作成する方法についての質問です。
  • フィールド甲の値が連続している場合でも、途切れたあとに再度出現することがある場合にも対応するスクリプトを探しています。
回答を見る
  • ベストアンサー

FileMaker 同一フィールドに同じ値が連続している個数をかえすス

FileMaker 同一フィールドに同じ値が連続している個数をかえすスクリプト 当方はFileMaker Pro 5.5を使用しています。初心者です。 ---------------- 甲乙 A3 A3 A3 B2 B2 C4 C4 C4 C4 D1 A2 A2 C1 ---------------- フィールド甲を参照し、同じ値が連続している個数をフィールド乙に返すスク リプトを組みたいと考えています。 たとえば、一番上のレコードから「A」が3回続いているため、フィールド乙には 3をかえします。同様に全レコード繰り返します。 フィールド甲の値は一度連続が途切れたあとも、後のレコードで再度でてくることも あります。 よいスクリプトはありますでしょうか。

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

  • ベストアンサー
  • coronel
  • ベストアンサー率72% (96/132)
回答No.1

FM5.5では変数が使えないので、グローバルフィールドを使います。 まず前のフィールドと比較するために、フィールドタイプをグローバル(テキスト)にして、新規フィールドを作って下さい。 そして演算結果を入れるためのフィールドを同様にフィールドタイプをグローバル(テキスト)にして、新規フィールドを作ります。 ここではそれぞれ、「前のフィールド値」、「チェック結果」とします。 後は以下のようにループさせればいいだけです。 ーーーーーーーーーーーーーーーーーー レコード/検索条件/ページへ移動[最初の] フィールド設定[前のフィールド値],[甲] Loop フィールド設定[チェック結果],[if(甲=前のフィールド値,前のフィールド値+1,0)] フィールド設定[乙],[if(甲=前のフィールド値,"",チェック結果)] フィールド設定[前のフィールド値],[甲] レコード/検索条件/ページへ移動[次の][最後まで来たら終了] End Loop ーーーーーーーーーーーーーーーーーー 直このやり方だと、連続する最後のフィールドのみ値を入れるようにしています。 連続するフィールドすべてに入れるには、リレーション用のフィールドを新規に作って同じ値が続く間は同じ数値を入れるようにして下さい。 その後、そのフィールドでリレーションを組んであげて、 計算式にしたフィールドに[甲]の値を入れてあげればOKです。

oshiete-zoo
質問者

お礼

回答ありがとうございました。 また、回答への返礼遅れ失礼しました。 連続する最後のフィールドのみ値を入れるようになるところまで、おかげさまでできました。 そのあとですが、リレーションを組んでというところが、自分のスキルがそこまで達していなくてうまくできませんでした。 自己流ですが、回答を参考にしながら、フィールド3つ(うちグローバルフィールド1つ)をさらに追加しまして、同じくLoopを用い方法で何とかできました。

その他の回答 (3)

回答No.4

間違えてしまいましたすみません。 正しくは、 新しいフィールドを3つ作ります ID1:フィールドタイプ数字 ID2:フィールドタイプ計算 ID1+1 ID3:フィールドタイプ数字 ID1=ID2で自己リレーション "ファイルB" ID3=ID3で自己リレーション "ファイルC" スクリプト ID1フィールド フィールドの内容の全置換 シリアル番号 増分1 ID3フィールド フィールドの内容の全置換         If ( ファイルA::甲 = ファイルB::甲 ; ファイルB::ID3 ; ファイルA::ID1 ) 乙フィールド フィールドの内容の全置換 Count ( ファイルC::ID )

oshiete-zoo
質問者

お礼

回答ありがとうございました。 また、回答への返礼遅れ失礼しました。 当方FM初心者です。回答いただいた内容についてネットも見ながら試行錯誤しました。残念ながら、自分のスキルが、回答内容を活用するところまでの水準まで達しておらずうまくいきませんでしたので、今後勉強していきたいと思います。

  • coronel
  • ベストアンサー率72% (96/132)
回答No.3

No2さんの方法だと、無理では? 質問者は「一致するフィールド数」ではなく、「連続するフィールド数」を知りたがってます。 しかも、例を見るとAという値が何度も繰り返し出ることがあるようです。 手間ですがLoopで回すしかないと思います。

回答No.2

フィールド甲をキーとして自己リレーションさせ、 計算式(Count関数)でフィールド内容の全置換 変更をリアルタイムで反映させたいならフィールド乙は計算式にしたほうが良いかも。 FileMakerPro5.5でも確か出来たと思います。

関連するQ&A

  • FileMaker Proのスクリプト

     FileMaker Proで下記のようなケースでよいスクリプトの組み方があればお教えください。  当方はFileMaker Pro 5.5を使用し、データベースは初心者で、エクセルの感覚からまだぬけられていません。 ---------------- 【ケース】 フィールド甲 フィールド乙 A        A C        A C        A D        A B        B C        B C        B A        A C        A  フィールド甲を参照し、フィールド乙に自動的に「A」か「B」を挿入するスクリプトを組みたいと考えています。  「A」と「B」のみを、フィールド乙に入る特殊な値とします ・最初のレコードのフィールド甲は必ず「A」が入っているとします。 ・フィールド甲を上のレコードから参照し、甲に「B」がでてくるまでフィールド乙に「A」を挿入しつづけます。 ・甲に「B」がでてきたら、そのレコード以下、甲に「A」がでてくるまで乙に「B」を挿入しつづます。 ・甲に再び「A」がでてきたら、甲に次に「B」がでてくるまでフィールド乙に「A」を挿入しつづます。 以上を最終レコードまで続けます。 ----------------  ネットのサイトを見ながら、if、loopを駆使して試みましたが、条件設定が間違っているのか、 うまくいきません。

  • FileMaker スクリプト

    FileMaker Proで下記のようなケースでよいスクリプトの組み方があればお教えください。  当方はFileMaker Pro 5.5を使用しています。初心者です。 ---------------- 甲 乙 A X B X A X B X B X Y Y A Y B Y Z X A X B X A X B X Y Y A Y Z X A X ---------------- フィールド甲を参照し、フィールド乙に自動的に「X」か「Y」を上のレコードから順次返すスクリプトを組みたいと考えています。 (1)フィールド甲に最初にYがでてくるまではXを返す。 (2)Yがでてきたら、以下のレコードのフィールド乙にYを返す。 (3)Yが登場したあと、最初に「Z」がでてきたレコードからはフィールド乙にXを返す。 (4)次にYが出てくるまでXを返す。 以下繰り返し 以前、類似した事例にて教わったことを応用し、 if、loopを駆使して試みましたが、うまくいきません。

  • filemakerでフィールドの値をスクリプトで使う方法

    Filemaker10の初心者です。 テキストの内容をフィールドの値で置換する方法がわからなくて困っています。 データ変換用のテーブルのフィールドには 連番_役名_役者(各フィールドの名前) 1_ヴァンプ将軍_山田ルイ53世(各フィールドのデータの内容) 2_サンレッド_高木俊 3_1号_ひぐち君」 テキスト入力画面に、 「ヴァンプ将軍、1号、サンレッド」と入力して スクリプトを実行させると、 テキストが「山田ルイ53世、ひぐち君、高木俊」 と変換されるようにしたいのですが、 スクリプトでフィールドの各レコードのデータの参照の仕方がわかりません。 どうか教えてください。よろしくお願いします。

  • FileMakerで繰り返しフィールドの内容消去

    FileMakerで繰り返しフィールドの内容をまとめて消去するスクリプトを教えてください。 レコードを複製した時に、繰り返しフィールドの内容が全て不要な時があります。 繰り返し数が3個あると3回手作業で現在消しています。 繰り返しフィールドの横に消去用のボタンを作りまとめて、一度にまとめて内容を消去したいと考えています。 どのようなスクリプト組めばよろしいでしょうか? 当方Intel iMac 2.66、Mac OS X 10.6スノーレパード FileMaker Ver10です。 よろしくお願いします。

  • 2つのフィールドの値が同じレコードをひとつと見なす

    id     field1     field2 1      1        A 2      1        A 3      1        B 4      2        A 5      2        B 6      2        C 7      3        D 8      3        D 9      3        D field1とfield2の値が他のレコードのfield1とfield2と重複している場合はひとつのデータとして返したいです。 id1.2はfield1とfield2の値が同じなので、ひとつのデータしか返しませんが、id3はfield2が異なるので返します。 id4.5.6はいずれもfield2の値が異なるので4.5.6全てを返します。 id7.8.9はfield1とfield2が同じ値なのでひとつのデータしか返しません。 id 1 3 4 5 6 7 該当するレコードは上記のように6個となるようにするにはどのようなsql文を発行すれば良いでしょうか? ご教示頂けますと幸いです。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • filemakerでの繰り返しフィールドのリレーション

    Filemakerの使い方で質問です。 WindowsでFilemaker8.0を使用しています。 部品マスタがあり、下記のようなものだとします。 部品番号 部品名 001   パーツA 002   パーツB 003   パーツC 管理マスタがべつにあり、部品マスタと部品番号でリレーションを 組んでいます。 これを1つのレコードに複数入力したいので繰り返しフィールドで 入力は部品番号で行い、その横に部品名が自動的に表示されるように したいのですが、売上入力テーブルに新しいフィールドを定義して ルックアップを利用する方法は判るのですが、それではマスタを 変更しても過去のレコードまでは変化しません。 部品マスタを変更した際に過去のレコードも自動的に変更して欲しいので 繰り返しフィールドをリレーションで部品名を表示させたいのですが可能なのでしょうか。 以上、よろしくお願いします。

  • FileMaker Proのスクリプトを利用して、csvファイルを整形する方法

    FileMaker Proの初心者です。バージョン5.5を使用しています。 元のcsvファイルをインポートし、下記のような形式に整形したいのですが、よいスクリプトの組み方はあるでしょうか。 【元のcsvファイル】 -------------------- (レコード)  フィールド    値    1    フィールドa    a1    1    フィールドb    b1    1    フィールドc    c1    1    フィールドd    d1    2    フィールドa    a2    2    フィールドb    b2    2    フィールドc    c2    2    フィールドd    d2    3    フィールドa    a3    3    フィールドb    b3    3    フィールドc    c3    3    フィールドd    d3 -------------------- 【整形後の形式】 -------------------- レコード フィールドa フィールドb フィールドc フィールドd     1     a1      b1      c1      d1     2     a2      b2      c2      d2     3     a3      b3      c3      d3 --------------------

  • エクセルで複数条件当てはまる対象の個数を数えるには?

     countifは、一つの検索条件でしか数えられないと思いますが、複数の条件に該当するセルの個数を数える関数はあるのでしょうか?  2万件程度のデータから検索する必要がありまして、よろしくお願いします。  趣旨は、以下のとおりです。 ---------------  種別1 種別2  a    甲 b    乙 b    甲 c    甲 c    丙 a    乙 ----------------  という一覧表から ----------------   甲 乙 丙 a  1  1  0 b  1  1  0 c  1  0  1 ----------------  のような個数の一覧表を作成したいということです。

  • FileMakerで画像をまとめて書き出したい。

    ファイルメーカーでデザイン画像を管理しています。 1レコードあたり1点のJPEGを1つのフィールドに「参照のみ保存」で管理しています。 日付や内容等で検索をかけた後、複数のレコードのJPEGをまとめて書き出したいのですが、なにか方法がありますでしょうか? あるいは「フィールド内容のエクスポート」でまとめて書き出すには、どのようにすればいいでしょうか。 今、現在は1点づつ書きだしている状態で、点数が多くなると非常に時間がかかってしまいます。 スクリプト等の機能で改善する方法は無いでしょうか? Mac OS 10.6、FileMaker Pro Ver10の環境で作業をしています。

  • FileMakerで特定フィールドを空欄で複製

    FileMakerでレコードを複製する時に、特定のフィールドを空欄で複製する方法を教えてください。 当方デザインデータの管理をFileMakerで行っています。 得意先、担当者、管理番号、内容、サイズ、日付、デザイン内容のJPEG等をFileMakerで管理しています。 お客様から一回の案件で複数のデザイン作成や修正を行い、そのたびにFileMakerで管理しています。 フィールドの中で(デザインの)管理番号とデザイン内容のJPEGは同じものが絶対に存在することがないため、レコードを複製する時にこの2項目をコピーしないようにしたいです。 今、現在はショートカットで複製、上記の2項目を手作業で削除しています。 ボタンを作成してスクリプトを組むことになると思うのですが、どのようにすればいいでしょうか? 当方のPC環境はiMac、OS X10.6、FileMaker Ver10を使用しています。 ご回答のほど、よろしくお願いします。