みんなの投稿

2026/07/03 14:06

こんにちわ。初心者DAIです。ひさびさの投稿です。

文字列を横軸にしたグラフの作成で質問です。

自動入力で入力した日時から、IF文の式を入れて曜日を計算→文字列(1行)に入れてレコードを作成します。

(月)(火)・・・これを大項目にして横軸にグラフを作ると、


こんなことになってしまいます。(月)(火)(水)・・・(土)(日)の順にしたいのですが、どうすればよいでしょうか?なにか良い方法をご教授ください。

ちなみにIF文は

IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 0) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 0) / 7 ) , 0) = 0 , "(木)",
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 1) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 1) / 7 ) , 0) = 0 , "(金)",
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 2) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 2) / 7 ) , 0) = 0 , "(土)",
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 3) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 3) / 7 ) , 0) = 0 , "(日)",
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 4) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 4) / 7 ) , 0) = 0 , "(月)",
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 5) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 5) / 7 ) , 0) = 0 , "(火)",
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 6) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 6) / 7 ) , 0) = 0 , "(水)","該当なし"
)))))))

を使ってます(苦笑)

4件のコメント (新着順)

こんなやり方もできます、という参考として。
この課題はメシウスさんのkrewDataを使うと簡単にできます。

「実績データ」アプリに売り上げの実績が日別・都道府県別に入っているとします。
これを曜日別・都道府県別の棒グラフにしたい場合はkrewDataで以下のように設定します。

1.
「実績データ」アプリを入力アプリに指定します。これが元ネタになります。

2.
krewDataの「フィールド編集」コマンドで曜日の文字列を作って列を追加します。
日付から曜日を判定するにはWEEKDAY()関数を使います。krewDataはExcelと同等の300種類の関数が揃っていて以下の計算式が使えます。

IF(WEEKDAY(日付)=1,"(日)",IF(WEEKDAY(日付)=2,"(月)",IF(WEEKDAY(日付)=3,"(火)",IF(WEEKDAY(日付)=4,"(水)",IF(WEEKDAY(日付)=5,"(木)",IF(WEEKDAY(日付)=6,"(金)","(土)"))))))

3.
「グループ化」で都道府県別・曜日別に売上を合計します。

4.
あらかじめ作っておいた「実績集計」アプリに出力します。「実績集計」アプリの「曜日」フィールドは「ドロップダウン」です。

5
これを実行すると「実績集計」アプリにデータが追加されます。

6.
「実績集計」アプリでグラフを作ってできあがりです。「ドロップダウン」の「曜日」フィールドでソートすれば好きな順序になります。



krewDataはそれなりのお値段がしますが、使えるとkintone活用の幅が広がります。
個人的には自分の一番好きなプラグイン(連携ソリューション)です。

シマ
建設業
2026/07/03 15:55

簡単なのは前に数字をつけることかなと思いましたけど、それだとちょっと見た目が悪くなるんですよね・・・

文字コードによるソートあるあるだと思います。

ソートは文字コードを見てされるので、漢字直だと「数値計算は合ってるハズなのに、順番がおかしい」という結果になるのではないでしょうか。

回避策としては、以下くらいでしょうか。
案A:(チョット不格好ですが、)計算結果の数値を先頭に付けちゃう(例:「0_(木)」)
 ※これだと、先頭の数値を任意に変えれば、水曜始まりで並べる…なんかもできそうです。
 ※「この数値はナニ?」とはなりそうです💦
案B:文字コードが昇順になっている特殊文字に変える

漢字 特殊文字 変換前入力
㊐ or ㈰ にちようび
㊊ or ㈪ げつようび
㊋ or ㈫ かようび
㊌ or ㈬ すいようび
㊍ or ㈭ もくようび
㊎ or ㈮ きんようび
㊏ or ㈯ どようび

 ※これだと、「この数値はナニ?」とはなりませんが、文字コードを変えることができないので、㊐系・㈰系どちらも月曜始まりにしかなりません。
 ※環境依存なので、文字化けリスクはあります。
案C:未検証のジャストアイデアですが、テンポラリフィールドに数値を入れてそれを項目に入れてソート
 ※これができれば、ソート用数値と漢字表記はギリ分離できるかと。

ご参考になれば幸いです。


DAI
2026/07/03 15:45

Seal777さん、ありがとうございます。
やっぱり、文字コード順になるってことですよね。。。
計算結果を文字列に変換するところで、いただいた案)考えてみます。

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

(かなさんの、完璧グラフはなぜなんだろう??)

(かなさんの、完璧グラフはなぜなんだろう??)

試してないので恐縮です。

IF式で”日時”フィールドを参照してるようですが、これだと時刻までキッチリ入ったシリアル値で計算していることになりますね。(=余りが時刻依存になってるのでは?)

”日時”→"日付"にしてみるというのはいかがでしょうか。

グラフのソート条件を大項目(曜日)「昇順」にしてもダメですか?

一応できたので…


DAI
2026/07/03 14:54

かなさん、さっそくありがとうございます。
ほんとだ、、、きちんとしてる。。

やってみましたが、ダメです。反対の順に出るだけです。

なにが違うんでしょうね???

色々調べてみましたが、どうやら自動計算がダメみたいです。
ドロップダウンとかだと「曜日」として判定されるみたいですが、自動計算だと「文字列」として判定されるので、JISコード順になる?みたいな。。。

なので、

「計算フィールド」を間に入れて、曜日に数字をつける。
→計算フィールドの結果で文字列に自動計算で曜日を表示させる。
→グラフでは大項目に文字列の曜日、中項目に計算の数字を選択する。
→ソートを中項目の「計算」昇順にする。
(ちなみに積み上げグラフにするとよさそう。)

【計算フィールド】
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 0) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 0) / 7 ) , 0) = 0 , 4,
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 1) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 1) / 7 ) , 0) = 0 , 5,
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 2) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 2) / 7 ) , 0) = 0 , 6,
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 3) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 3) / 7 ) , 0) = 0 , 7,
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 4) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 4) / 7 ) , 0) = 0 , 1,
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 5) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 5) / 7 ) , 0) = 0 , 2,
IF( ( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24) ) - 6) / 7 ) - ROUNDUP(( ( (ROUNDDOWN((日時+(60 * 60 * 9))/ 60 / 60 / 24)) - 6) / 7 ) , 0) = 0 , 3,0
)))))))

【文字列(1行)自動計算フィールド】
IF(計算=1,"(月)",IF(計算=2,"(火)",IF(計算=3,"(水)",IF(計算=4,"(木)",IF(計算=5,"(金)",IF(計算=6,"(土)",IF(計算=7,"(日)","該当なし")))))))

DAI
2026/07/03 16:09

順番を決める計算フィールド、それに同期して曜日の文字列、分けることでうまくいきそう、、、
ありがとうございます。やってみます!!!

ドロップダウンとラジオボタンのフィールドのソートはちょっと特殊で「項目と順番」で設定した選択肢を見た目の上から下に並べるのが昇順、下から並べるのが降順になります。

[文字列(1行)]フィールドの数値が意図どおりにソートされません
https://jp.kintone.help/k/ja/id/040253

グラフの[分類する項目]で選択式のフィールドやカテゴリーを設定し、ソートした場合の並び順を教えてください
https://jp.kintone.help/k/ja/id/040199

これを利用してドロップダウンで「曜日」フィールドを作っておいて、「曜日」フィールドとグラフの値のペアになる形式でデータを作ればイケるかもな気がします。