初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2014-08-29 13:06:48

初心者ty
Guest

クロス集計 sumif(excel)関数の和計算について

初めて投稿させていただきます。
FM初心者です。
宿泊施設の利用状況についてクロス集計を行っておりますが、うまくいきません。

テーブル1
フィールド 個人名 人数 一泊目 二泊目 三泊目
1          A         1      7/1      7/2     7/3
2          B         2     
3          C         3      7/2           
4          D         4      7/3
5          E         3      7/2     7/3

テーブル2
日付 人数計
7/1  1
7/2    4
7/3    8
以下続く

テーブル2で合計人数を日付ごとに集計して出したいです。
excelであれば sumif(テーブル1一泊目,テーブル2日付,テーブル1人数)+sumif(テーブル1二泊目,テーブル2日付,テーブル1人数)+sumif(テーブル1三泊目,テーブル2日付,テーブル1人数)
で値が返されます。

自己リレーション等いろいろ触ってみましたが、理解がわるくうまくできません。
説明不足で大変恐れ入りますが、アドバイスいただければ幸いです。

#2 2014-08-29 14:05:15

旅人
Member

Re: クロス集計 sumif(excel)関数の和計算について

テーブル1の形が珍しい?ですね。
一泊目 二泊目 三泊目・・・の部分をポータルになるようにしたら簡単かも。

Offline

#3 2014-08-31 09:08:32

FM12始めたばかり
Guest

Re: クロス集計 sumif(excel)関数の和計算について

FM12advです。

レコードのインポート(宿泊項目分)を繰り返す方法

条件
インポート先の日付フィールド[入力値の制限::空欄不可]


http://yahoo.jp/box/iP74OK

#4 2014-08-31 11:57:21

Hiro
Member

Re: クロス集計 sumif(excel)関数の和計算について

繰り返しフィールドでOR照合するリレーションを作り、リレーション集計する案。

1.複数の()泊目フィールドを1つの繰り返し[任意n回]フィールドへ持ち替える。(nは想定される最大連泊数とする)
  1          A         1      | 7/1 | 7/2 | 7/3 |   | … |
  2          B         2      |   |   |   |   | … |
  3          C         3      | 7/2 |   |   |   | … |         
  4          D         4      | 7/3 |   |   |   | … |
  5          E         3      | 7/2 | 7/3 |   |   | … |

2.テーブル2からテーブル1へ日付でOR照合するリレーションを設定する。
     「テーブル2::日付フィールド」 = 「テーブル1::繰り返しフィールド」

3.テーブル2に集計値を得る計算フィールドを作り、その式に、
      Sum(テーブル1::人数)
  と設定して、お終い。
  7/1    1
  7/2    7
  7/3    8

Last edited by Hiro (2014-08-31 17:55:14)

Offline

#5 2014-08-31 12:39:58

Shin
Member

Re: クロス集計 sumif(excel)関数の和計算について

元データの宿泊日を繰り返しフィールドへ結合し、インポートでレコード分解、集計する案。
https://dl.dropboxusercontent.com/u/926 … 25.fp7.zip

Offline

#6 2014-09-03 16:18:19

初心者ty
Guest

Re: クロス集計 sumif(excel)関数の和計算について

皆さま、さっそくのご回答ありがとうございます。
結論から申し上げますと、まだ解決しておりません。

それぞれの解決案に触れる前に
テーブル1の構造について捕捉させていただきます。
入力作業簡略化のために、下記の通りとなっております。

テーブル1
フィールド   個人名   人数   一泊目   宿泊数     二泊目                                  三泊目
種類    テキストF  数字F  日付F    数字F  計算F(一泊目+宿泊数-2):日付で返す   計算F(一泊目+連泊-1):日付で返す
1            A          1       7/1         3        7/2                             7/3
2            B          2       7/1            0
3            C          3       7/2           1
4            D          4       7/3           1
5            E          3       7/2           1               7/3

*該当日付が無い場合は空白というcase関数をくんでおります。
一泊目の日付と、宿泊数がを入力すると、二泊目、三泊目の内容に自動的に反映されるような構造です。
(当宿泊施設の特性で、3泊以上宿泊されるかたがほぼおりませんので、本運用になっております。)

回答を一つずつ確かめながら行ってはおるのですが、泊数の欄を一つのフィールドに統合する?やり方が多い気がいたします(理解が誤っていたらすみません)
本構造を崩さないと厳しいということでしょうか?

もうしばらく、お付き合いのほどよろしくお願いいたします。

#7 2014-09-04 21:49:03

Shin
Member

Re: クロス集計 sumif(excel)関数の和計算について

どのやりかたも、その構造を崩す様な事はしていないと思いますが。
1フィールドにまとめている、と言うより、今の構造がデータ処理に適していない、という根本的な問題をクリアにするための処理です。

Last edited by Shin (2014-09-05 10:40:24)

Offline

#8 2014-09-05 10:21:53

tim
Guest

Re: クロス集計 sumif(excel)関数の和計算について

三泊までと決めてるんだから、
テーブル2::日付=テーブル1:: 一泊目
のリレーションで
Sum(テーブル1::人数)
で1項めがでる。後2つ同じようにして加算すればExcelと同じやり方。

二泊目三泊目でなく最終泊の日付を計算して、不等号のリレーションにすれば、何泊あっても1つのリレーションで可能では。
テーブル2::日付=>テーブル1:: 一泊目
AND
テーブル2::日付=<テーブル1:: 最終泊

#9 2014-09-05 10:42:32

Shin
Member

Re: クロス集計 sumif(excel)関数の和計算について

2泊目、3泊目を繰り返しフィールドで作って計算させておくのが、一番簡単そう。今の構造からの変更も最低レベルだし。

Offline

#10 2014-09-05 12:27:35

tim
Guest

Re: クロス集計 sumif(excel)関数の和計算について

ああ、HIROさんのですね。繰り返しの計算式は
Let(n=Get(計算式繰り返し位置番号)-1;
Case(n<宿泊数;一泊目+n)
)

本論とは関係ないけど、宿泊数0の場合があるなら、1日目のフィールド名は変えた方がよさそうな。

#11 2014-09-05 15:42:02

Hiro
Member

Re: クロス集計 sumif(excel)関数の和計算について

「3泊以上の連泊は無くて、0泊(お休憩?)なんてのがある」特性の宿泊施設って、ラブホか何かなのかなあ?
普通は、ダブルブッキングを避ける為、部屋ごと1日1客しか取りませんが、時間がダブっていなければ1日多客を取れるということ??

0泊の取り扱いをもう少し詳しくお聞きした方が良さそう。

Last edited by Hiro (2014-09-05 16:03:06)

Offline

#12 2014-09-06 16:22:48

初心者ty
Guest

Re: クロス集計 sumif(excel)関数の和計算について

コメントありがとうございます。
山の中腹にある山小屋の管理用データベースです。
山小屋なので、個室はなく雑魚寝で定員○○人といった運用で行っております。

基本一泊二日のコースでまわられるのですが、
悪天候を見越して、二日ほど予備日をみる方、日帰りの強行軍で行うかた等々おります。(0泊は日帰りの方です)
登山のお客様は山に登ったらそのまま滞在することはなく、すぐ降りるため、3泊目までの設定にいたしました。

一先ず、HIRO様のやり方をまねて行ってみたのですが、繰り返しフィールドの内容がうまくいっておりません。。。
https://www.dropbox.com/s/hhkb761muvq1v … fmp12?dl=0

いかがでしょうか?

#13 2014-09-06 18:47:16

旅人
Member

Re: クロス集計 sumif(excel)関数の和計算について

繰り返し3行とも別テーブルからインポートして、そこで集計するサンプル。
インポートなのでデータの訂正時がスマートではないけど。
http://pupld.net/21/140906/ug22mylo46/index.cgi

Offline

#14 2014-09-07 01:52:50

Hiro
Member

Re: クロス集計 sumif(excel)関数の和計算について

校正ファイルを新名でアップしましたので、設定明細をご覧下さい。
またオマケに、テーブル2の集計結果をテーブル1のヘッダで週間集計カレンダーとして
表示・参照できるよう改善しときました。

●校正「山荘宿帳.fmp12」→ http://yahoo.jp/box/cqTN55

・繰り返しフィールドが上手く動かないのは、非繰り返しフィールドの名前の後に[1]がないためです。
・テーブル1の入力日付がテーブル2に重複無くインポートする仕組み・設定法を確認下さい。

Offline

#15 2014-09-09 13:17:50

初心者ty
Guest

Re: クロス集計 sumif(excel)関数の和計算について

皆様

解決いたしました!
親切に教えていただきまして、ありがとうございます!
また、何かありましたらよろしくお願いいたします。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 556.3 KiB (Peak: 577.21 KiB) ]