新規投稿
フォローする

テーブル内のデータ件数を勘定したい

テーブル内に以下のデータがあるとします

レコード1

AAA  あああ  000

AAA  あああ  111

BBB  いいい  333

レコード2

AAA  あああ  222

BBB  いいい  123

CCC  ううう  321

 

AAAが3行あるので、これを「3」とカウントして集計したいのですが、可能でしょうか?

AAA 3

BBB 2

CCC 1

という結果が得られれば大満足となります。

 

対象レコードが2つとなるため、レコード数2は集計で出せているのですが、

これでは現時点で不満足です。

なにか良い手段はありませんでしょうか?

0

3件のコメント

Avatar
Tguchi

https://jp.cybozu.help/k/ja/user/app_collectdata/summarize/summarize_details.html

テーブル内のフィールドを使用してレコードを絞り込む場合、テーブルのいずれかの行でフィールドの値が絞り込み条件を満たせば、そのレコードは集計対象になります。

ということで、スクリプトを使わない方法で、こんな方法はいかがでしょうか?

例えば、集計用の「カウント値」というフィールドをテーブルに追加して、グラフで集計してしまう方法。

 

※スクリプトで対応する場合は、全てのレコードのサブテーブル情報を取得して、ループで回して集計を行います。

 それをカスタマイズビューなどに表示すれば良いかと存じます。

0
Avatar
Tguchi

スクリプトで集計してみるなら、こんな感じでどうでしょうか?

var body= {
"app":kintone.app.getId(),
"fields": ["サブテーブルのフィールドコード"]
};

//1.すべてのレコードのサブテーブル情報を取得する
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function (resp) {
 // success
 var records=resp.records;
 var array=new Array();

 //2.レコードでループ
 records.forEach(function (record) {
   var tableRow=record["サブテーブルのフィールドコード"].value;
 
   //テーブル行でループ
   tableRow.forEach(function (row) {
     var value=row.value["Aフィールドのフィールドコード"].value;

     //Aフィールドの値ごとに数を数える
     if (array[value] == null) array[value] =1;
     else array[value] +=1;
  });
});

//集計結果を出力して確認してみる
for(var key in array){
  console.log(key, ":", array[key]);
};

}, function (error) {
// error
console.log(error);
});
 
Tguchiにより編集されました
0
Avatar
s_yaha

ありがとうございます!!!

標準機能(スクリプトではない)にて対応できました!

カウント用の数字を設けるアイデア、すばらしいですね!

 

助かりました。これで一つ前進できそうです。。。

0
ログインしてコメントを残してください。