キンコミ kintone user community

みんなの投稿

2025/03/06 18:22

・ご契約中のコース(スタンダード)
・譲れない条件(プラグインはCusomineのみ)

初めて投稿します。yoko2024です。

案件管理アプリを作成しており、条件判定のIF分で躓いています。

<やりたいこと>
発注者、発注者2、発注代行(←チェックボックス)、表示用の4つのフィールドがあります。

「表示用」フィールドにIF分で以下のように表示したいのですが、
上手くいきません。
どなたかお知恵をお貸しいただけないでしょうか。

「発注者2」が空欄でなく、「発注代行」も空欄でない場合、「発注者&   発注代行&発注者2」と「表示用」に表示

「発注者2」が空欄でなく、「発注代行」が空欄の場合、「発注者& &発注者2」と「表示用」に表示

「発注者2」が空欄、「発注代行」が空欄の場合、「発注者」と「表示用」に表示

現在、「表示用」には以下の計算式をいれています。

IF(AND(発注者2<>"",発注代行<>""),発注者&" 発注代行 "&発注者2,IF(AND(発注者2<>"",発注代行=""),発注者&" "&発注者2,発注者))

この計算式を入れると次のエラーがでます。
「配列型の値に対して適切な関数が利用されていません。配列型の値やその利用方法についてはヘルプを確認してください。」

5件のコメント (新着順)
yoko2024
建設業
2025/03/10 08:20

みなさま

温かいアドバイス、ありがとうございました。
おかげで解決できました。

一人だとずっと思い悩んでいて解決できていなかったです。
キンコミがあって本当に良かった。

IF関数の考え方でよく陥るのは
・ではない場合
を主にして真・偽が正しく管理できなくなることかなと。

・である場合
を主にして考えるとスッキリまとまりませんかね。


yoko2024
建設業
2025/03/10 08:13

アドバイスありがとうございます。
これからkintoneを開発していくうえで、気を付けようとおもいます。

fuku_inu バッジ画像
製造業
2025/03/07 11:53

フィールド名でフィールドの用途がなんとなく分かりますが
フィールドタイプを併記すると、読んだ人がイメージしやすいのでは
ないかな~と思います

んで、

> 試してみたところ、1つ目と3つ目の条件は上手くできました。
> しかし、2つ目の条件が上手くできません。

ということは、発注者 と 発注者2 は ユーザー選択フィールドではなくて
文字列(1行)フィールドなのかな~と思いました

チェックボックスの項目が「発注代行」 だとして、こんな式では どうでしょうか
発注者&" "&IF(CONTAINS(発注代行,"発注代行"),"発注代行","")&" "&IF(発注者2="","",発注者2)


また、Seal777さんの
> ●また、条件として「△△でないとき」を式化するときは、「△△でないとき の逆」、すなわち
> 「▽▽のとき」と読み替えられないかを考えてみてください。

に同感です。これで式が簡単になることもありますよね
NOT関数を使うのもよいと思います


yoko2024
建設業
2025/03/10 08:17

アドバイスありがとうございます。
絶対に表示する「発注者」をIF分の外に出すという発想がなかったので、
教えていただけて助かりました。

例で記載いただいた式で上手く動かすことができました。
とても感謝しております。

ありがとうございました。

ふゆき
製造業
2025/03/07 10:02

ん~~、チョット確認です!

>発注者、発注者2、発注代行(←チェックボックス)、表示用の4つのフィールドがあります。

は、

チェックボックス(発注者、発注者2、発注代行)と 表示用の'2つ'のフィールドがある

ではないですよね?

ふゆき
製造業
2025/03/06 18:30

デフォルトの計算式...チェックBOXが対象の時は
CONTAINS関数を利用しないと判定できないみたいです
https://jp.cybozu.help/k/ja/id/040506.html

https://jp.cybozu.help/k/ja/id/040506.html#autocalc_multichoice_contains_20


yoko2024
建設業
2025/03/06 18:47

コメントありがとうございます。

試してみたところ、1つ目と3つ目の条件は上手くできました。
しかし、2つ目の条件が上手くできません。

チェックボックスは選択肢が1つしかないため、
2つ目の条件を計算式にするには「発注代行」が空欄の時という
条件文を設定する必要があります。

何かいいお知恵はないでしょうか。

ふゆき
製造業
2025/03/06 19:07

https://jp.cybozu.help/k/ja/id/040506.html#autocalc_multichoice_contains_2010
を参考にすると
IF(CONTAINS(チェックボックス, "済"),"チェックあり","チェックなし")



IF(CONTAINS(チェックボックス, ""),"チェックなし","チェックあり")
で、動きませんか?      👆空値

横からすみません。

ふゆきさんが具体的に回答されているので、「IF関数の組み立て方」という観点で、小生の考え方をお知らせします。

●複数条件のIF関数を書いたり文法を問うときなどは、(せっかく文章化まではされているので、)まずは想定している条件全てについて挙げた方がよいと思います。
●最初から入れ子構造ありきで考えると、取りこぼしがあったり、見る方としても中々読みづらいところがあるので、まずは単階層のIF関数を文字列なら「偽処理を””として&で結合」、数値なら「偽処理を0にして+で結合」し、デバッグした上で必要に応じて入れ子構造に組み替える…とすると頭の整理がしやすくなるかと思います。
●また、条件として「△△でないとき」を式化するときは、「△△でないとき の逆」、すなわち「▽▽のとき」と読み替えられないかを考えてみてください。
 否定の演算子は、言語によって異なる場合があります(例 !=など)。全言語共通の=にしておけば、とりあえずその辺のところまで気にしなくてもよくなりますし、入力文字数も1つ減らせますしね。

ご自身が読みやすければ、読み手も読みやすいと思っていただければと思います。

ふゆき
製造業
2025/03/07 08:48

ゴメンナサイ m(__)m 計算式そのものが違ってたんですね
計算式の中は読んでなかった...

Seal777 さん、ご指摘ありがとうございます。

で、パッとみた所、IFが2個ありますね(=IFの入れ子)
こんな時、自分だったら

①Excelで❶❷❸、3つのIF計算式を書き
 「偽」の値 は ”NG” と表示させておき
②❶❷❸の動作確認をそれぞれ 行う
③❶の ”NG”に❷を代入
④❷の ”NG”には❸の「正」を代入
⑤Excelで④の動作を確認、できたら
⑥kintone用に
 =を取り除き
 セル → フィールドCODE に書き換え
 判定CONTAINSに書き換え
⑦⑥で使った式をkintoneにコピペ

のような作業をします...ご参考まで

Excel TIPSになっちゃいますが…

「セルにアプリのフィールドコードと同じ名前を定義」しておけば、
> セル → フィールドCODE に書き換え

↑ココ簡素化できます。
(アプリ転載時のお作法:半角スペース挿入は要るんですけどね)

あと、ExcelにはCONTAINS関数があるので、(文法の違いがあって別途変換作業は要りそうですが←ココ詳細見れてません。)初っ端から組み込めそうです。

ご参考まで

yoko2024
建設業
2025/03/10 08:19

アドバイスありがとうございます。

説明が上手くできておらず、申し訳ないです。
いただいたアドバイスをもとに次回はもっと分かり易く伝えるこを意識します。

またkintoneへ条件文記載するときのアドバイスなどとても助かりました。
ぜひ、今後の開発で使っていきたいです。