• ベストアンサー

FMPro7『テキスト+数字』フィールドのソートができません。

ファイルメーカーPro7でデータベースを作成し、シリアル番号を入力しています。 17ABC001、17ABC002、17ABC003 … という具合に『年度+固有記号+通し番号』としているのですが、 これを通し番号順にするためソートをかけたところ、まるででたらめに並んでしまいます。 フィールドタイプはテキストで、全て半角で入力してあります。 データベース作成途中に追加したフィールドなので、自動入力にはしてません。 どうしたら解決できますか? どなたか助けてください(>_<;)

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

  • ベストアンサー
  • zenjee
  • ベストアンサー率47% (50/106)
回答No.1

>通し番号順にする…… この意味は年度(15,16,17……)や固有記号(ABC,ACD,BAC,……) はソート順に反映させなくて、単に下3桁の番号のみをソート順位として反映させたいという意味でしょうか、それとも年度も固有記号も番号もそれぞれ反映させたいという意味でしょうか。 その辺が分からないと答が出せませんが、仮に後者を意味するのでしたら、このフィールドだけでソートすれば、コンピューターはまず最初の2桁の年度順を判断し、次に同一年度内で固有記号のアルファベット3文字の左からABC……順に並べ、最後にまたそれぞれの範囲内で番号順に並べるのは当然のことですから、ご希望が前者の下3桁の番号のみで並べたいというのなら、少なくとも番号だけは別のフィールドにしなければなりません。 だからこういう場合は本来、年度、固有記号、通し番号はそれぞれ別のフィールドにしなければ正しいソートが出来ないのは当然でしょう。 そこで解決策ですが、既に年度・固有記号・番号という単一フィールドが出来上がっていてそのフィールド名が仮に「年度記番号」とし、また年度は2文字、固有記号は3文字、番号は3文字と決まっているとしたら、それぞれの計算フィールドを別に設け、 年度は   =Left(年度記番号,2) 固有記号は =Middle(年度記番号,3,3) 通し番号は =Middle(年度記番号,6,3) 又は  =RIGHT(年度記番号,3) と計算式を設定すればよく、これらをソートする場合は、必要に応じて年度順、記号順、通し番号順に、あるいはその全部をソート項目に指定すればいいことになります。 いずれにしても、年度記番号だけのフィールドで番号だけをソートするというのは無理な相談でしょう。

dygusayakuhi
質問者

お礼

すごい!完璧にできました!! 実は他のソートを解除し忘れていて、それに気付いたのでこの質問削除しようと思っていたんです。 ですが、今はまだ17年度のABCと一通りしか作っていなかったから解決できたものの、 その先のことを考えていませんでした。。(^-^; とてもわかりやすいご説明、ありがとうございました。 また何かありましたらよろしくお願いします。

関連するQ&A