テーブル内に以下のデータがあるとします
レコード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は集計で出せているのですが、
これでは現時点で不満足です。
なにか良い手段はありませんでしょうか?
https://jp.cybozu.help/k/ja/user/app_collectdata/summarize/summarize_details.html
テーブル内のフィールドを使用してレコードを絞り込む場合、テーブルのいずれかの行でフィールドの値が絞り込み条件を満たせば、そのレコードは集計対象になります。
ということで、スクリプトを使わない方法で、こんな方法はいかがでしょうか?
例えば、集計用の「カウント値」というフィールドをテーブルに追加して、グラフで集計してしまう方法。
※スクリプトで対応する場合は、全てのレコードのサブテーブル情報を取得して、ループで回して集計を行います。
それをカスタマイズビューなどに表示すれば良いかと存じます。
スクリプトで集計してみるなら、こんな感じでどうでしょうか?
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);
});
ありがとうございます!!!
標準機能(スクリプトではない)にて対応できました!
カウント用の数字を設けるアイデア、すばらしいですね!
助かりました。これで一つ前進できそうです。。。