テーブルの行単位ずつで計算

お世話になっております。

レコードにあるテーブルの行単位で別々のIF文を

書きたいと考えています。

実際に行単位で別々のIF文を書くことは可能なのでしょうか?

またjsを書かずにプラグイン等で対応は可能なのでしょうか?

ご存じの方がいらっしゃいましたらご教授いただけますと幸いです。

よろしくお願いします。

 

IF文は条件によって異なる処理を行うものですから、ループ内で行位置やテーブル内項目の値を判定して異なる処理を記述できます。

あとは計算式プラグインでも、IF,IFS,SWITCH関数などと行位置を取得するROWNO関数などを組み合わせれば行ごとに異なる処理は記述できます。

 

rex0220 さん

 

いつもお世話になっております。

返信が遅れ申し訳ございません。

 

コードを書けば何とかなるのですね。

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

 

計算式プラグインで「IFS」で検証を行ってみたことろ

テーブルに対して処理する文が長すぎて状態になってしまいました。

レコードの追加、編集画面にてラジオボタンなどを操作する際に

クリックしてからワンテンポ遅く反応する結果になってしまいました…

このような文が7テーブルほどある状態になります。

 

jsで処理を行い検証を行ってみたいと思います。

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

かなり長い条件で、これでも一部だとするとかなり複雑ですね。

ただこの書き方だと同じ条件を何十回も判定していることになります。

例:番号1が"1"など

全体の仕様が不明ですので確実なことは言えませんが、冗長な部分を最適化するともう少し改善すると思います。

IF のネストも出来ますので、工夫は可能です。

これは、js で判定する場合も同様のことが言えます。

 

あと、IFS で同じ項目を何回も判定する場合は、SWITCH 関数を使われたほうがパフォーマンスがいいです。

SWITCH(カテゴリ1,
“A1”,“Ⅰ”,
“A2”.“Ⅰ”

)

js で行う場合も、switch 文などを活用してみてください。

 

rex0220 さん

1レコードに対して130行分のテーブルが発生し、

それぞれに判定が必要な状態です。

同じ判定の行もあるのですが、特定の行はその行専用の判定を持たせる必要があります…

 

SWITCH 関数も使えるのですね。

さらに検証を重ねてみます。

大変貴重なコメントをありがとうございました。

rex0220 さん

いつもお世話になっております。

先月は計算式に関するご教授をありがとうございました。

その後いろいろと検証を行いました。

とあるテーブルの計算式が以下の様に膨大になってしまい、
計算を行うのに膨大な時間がかかってしまう状況になってしまいました。

この計算式を簡略化する方法などはあったりするのでしょうか…?

お手数ですが、ご教授いただけますと幸いです。

よろしくお願いいたします。

--------------以下計算式----------------------

※カテゴリ4に計算式を設定する予定です。

SWITCH(番号4&点検結果4&緊急対応4,

“(1)要是正”,“B2”,
“(1)要是正緊急対応(a)”,“A1”,
“(1)要是正緊急対応(b)”,“B2”,
“(1)要是正緊急対応(c)”,“B2”,
“(1)要是正緊急対応(d)”,“C”,
“(1)要是正(既存不適格)”,“E”,
“(1)該当なし”,“該当なし”,
“(1)指摘無し”,“指摘無し”,

“(2)要是正”,“B2”,
“(2)要是正緊急対応(a)”,“A1”,
“(2)要是正緊急対応(b)”,“B2”,
“(2)要是正緊急対応(c)”,“B2”,
“(2)要是正緊急対応(d)”,“C”,
“(2)要是正(既存不適格)”,“E”,
“(2)該当なし”,“該当なし”,
“(2)指摘無し”,“指摘無し”,

“(3)要是正”,“B2”,
“(3)要是正緊急対応(a)”,“A1”,
“(3)要是正緊急対応(b)”,“B2”,
“(3)要是正緊急対応(c)”,“B2”,
“(3)要是正緊急対応(d)”,“C”,
“(3)要是正(既存不適格)”,“E”,
“(3)該当なし”,“該当なし”,
“(3)指摘無し”,“指摘無し”,

“(4)要是正”,“B2”,
“(4)要是正緊急対応(a)”,“A1”,
“(4)要是正緊急対応(b)”,“B2”,
“(4)要是正緊急対応(c)”,“B2”,
“(4)要是正緊急対応(d)”,“C”,
“(4)要是正(既存不適格)”,“E”,
“(4)該当なし”,“該当なし”,
“(4)指摘無し”,“指摘無し”,

“(5)要是正”,“B2”,
“(5)要是正緊急対応(a)”,“A1”,
“(5)要是正緊急対応(b)”,“B2”,
“(5)要是正緊急対応(c)”,“B2”,
“(5)要是正緊急対応(d)”,“C”,
“(5)要是正(既存不適格)”,“E”,
“(5)該当なし”,“該当なし”,
“(5)指摘無し”,“指摘無し”,

“(6)要是正”,“D1”,
“(6)要是正緊急対応(a)”,“A1”,
“(6)要是正緊急対応(b)”,“B2”,
“(6)要是正緊急対応(c)”,“B2”,
“(6)要是正緊急対応(d)”,“C”,
“(6)要是正(既存不適格)”,“E”,
“(6)該当なし”,“該当なし”,
“(6)指摘無し”,“指摘無し”,

“(7)要是正”,“D1”,
“(7)要是正緊急対応(a)”,“A1”,
“(7)要是正緊急対応(b)”,“D1”,
“(7)要是正緊急対応(c)”,“D1”,
“(7)要是正緊急対応(d)”,“C”,
“(7)要是正(既存不適格)”,“E”,
“(7)該当なし”,“該当なし”,
“(7)指摘無し”,“指摘無し”,

“(8)要是正”,“D1”,
“(8)要是正緊急対応(a)”,“A1”,
“(8)要是正緊急対応(b)”,“D1”,
“(8)要是正緊急対応(c)”,“D1”,
“(8)要是正緊急対応(d)”,“C”,
“(8)要是正(既存不適格)”,“E”,
“(8)該当なし”,“該当なし”,
“(8)指摘無し”,“指摘無し”,

“(9)要是正”,“D1”,
“(9)要是正緊急対応(a)”,“A1”,
“(9)要是正緊急対応(b)”,“D1”,
“(9)要是正緊急対応(c)”,“D1”,
“(9)要是正緊急対応(d)”,“C”,
“(9)要是正(既存不適格)”,“E”,
“(9)該当なし”,“該当なし”,
“(9)指摘無し”,“指摘無し”,

“(10)要是正”,“D1”,
“(10)要是正緊急対応(a)”,“A1”,
“(10)要是正緊急対応(b)”,“D1”,
“(10)要是正緊急対応(c)”,“D1”,
“(10)要是正緊急対応(d)”,“C”,
“(10)要是正(既存不適格)”,“E”,
“(10)該当なし”,“該当なし”,
“(10)指摘無し”,“指摘無し”,

“(11)要是正”,“B2”,
“(11)要是正緊急対応(a)”,“B2”,
“(11)要是正緊急対応(b)”,“B2”,
“(11)要是正緊急対応(c)”,“B2”,
“(11)要是正緊急対応(d)”,“B2”,
“(11)要是正(既存不適格)”,“E”,
“(11)該当なし”,“該当なし”,
“(11)指摘無し”,“指摘無し”,

“(12)要是正”,“B2”,
“(12)要是正緊急対応(a)”,“B2”,
“(12)要是正緊急対応(b)”,“B2”,
“(12)要是正緊急対応(c)”,“B2”,
“(12)要是正緊急対応(d)”,“B2”,
“(12)要是正(既存不適格)”,“E”,
“(12)該当なし”,“該当なし”,
“(12)指摘無し”,“指摘無し”,

“(13)要是正”,“B2”,
“(13)要是正緊急対応(a)”,“B2”,
“(13)要是正緊急対応(b)”,“B2”,
“(13)要是正緊急対応(c)”,“B2”,
“(13)要是正緊急対応(d)”,“B2”,
“(13)要是正(既存不適格)”,“E”,
“(13)該当なし”,“該当なし”,
“(13)指摘無し”,“指摘無し”,

“(14)要是正”,“B2”,
“(14)要是正緊急対応(a)”,“B2”,
“(14)要是正緊急対応(b)”,“B2”,
“(14)要是正緊急対応(c)”,“B2”,
“(14)要是正緊急対応(d)”,“B2”,
“(14)要是正(既存不適格)”,“E”,
“(14)該当なし”,“該当なし”,
“(14)指摘無し”,“指摘無し”,

“(15)要是正”,“B2”,
“(15)要是正緊急対応(a)”,“B2”,
“(15)要是正緊急対応(b)”,“B2”,
“(15)要是正緊急対応(c)”,“B2”,
“(15)要是正緊急対応(d)”,“B2”,
“(15)要是正(既存不適格)”,“E”,
“(15)該当なし”,“該当なし”,
“(15)指摘無し”,“指摘無し”,

“(16)要是正”,“B2”,
“(16)要是正緊急対応(a)”,“B2”,
“(16)要是正緊急対応(b)”,“B2”,
“(16)要是正緊急対応(c)”,“B2”,
“(16)要是正緊急対応(d)”,“B2”,
“(16)要是正(既存不適格)”,“E”,
“(16)該当なし”,“該当なし”,
“(16)指摘無し”,“指摘無し”,

“(17)要是正”,“D1”,
“(17)要是正緊急対応(a)”,“A1”,
“(17)要是正緊急対応(b)”,“D1”,
“(17)要是正緊急対応(c)”,“D1”,
“(17)要是正緊急対応(d)”,“C”,
“(17)要是正(既存不適格)”,“E”,
“(17)該当なし”,“該当なし”,
“(17)指摘無し”,“指摘無し”,

“(18)要是正”,“D1”,
“(18)要是正緊急対応(a)”,“A1”,
“(18)要是正緊急対応(b)”,“D1”,
“(18)要是正緊急対応(c)”,“D1”,
“(18)要是正緊急対応(d)”,“C”,
“(18)要是正(既存不適格)”,“E”,
“(18)該当なし”,“該当なし”,
“(18)指摘無し”,“指摘無し”,

“(19)要是正”,“D1”,
“(19)要是正緊急対応(a)”,“A1”,
“(19)要是正緊急対応(b)”,“D1”,
“(19)要是正緊急対応(c)”,“D1”,
“(19)要是正緊急対応(d)”,“C”,
“(19)要是正(既存不適格)”,“E”,
“(19)該当なし”,“該当なし”,
“(19)指摘無し”,“指摘無し”,

“(20)要是正”,“B2”,
“(20)要是正緊急対応(a)”,“B2”,
“(20)要是正緊急対応(b)”,“B2”,
“(20)要是正緊急対応(c)”,“B2”,
“(20)要是正緊急対応(d)”,“B2”,
“(20)要是正(既存不適格)”,“E”,
“(20)該当なし”,“該当なし”,
“(20)指摘無し”,“指摘無し”,

“(21)要是正”,“B2”,
“(21)要是正緊急対応(a)”,“B2”,
“(21)要是正緊急対応(b)”,“B2”,
“(21)要是正緊急対応(c)”,“B2”,
“(21)要是正緊急対応(d)”,“B2”,
“(21)要是正(既存不適格)”,“E”,
“(21)該当なし”,“該当なし”,
“(21)指摘無し”,“指摘無し”,

“(22)要是正”,“B2”,
“(22)要是正緊急対応(a)”,“B2”,
“(22)要是正緊急対応(b)”,“B2”,
“(22)要是正緊急対応(c)”,“B2”,
“(22)要是正緊急対応(d)”,“B2”,
“(22)要是正(既存不適格)”,“E”,
“(22)該当なし”,“該当なし”,
“(22)指摘無し”,“指摘無し”,

“(23)要是正”,“D3”,
“(23)要是正緊急対応(a)”,“A1”,
“(23)要是正緊急対応(b)”,“D3”,
“(23)要是正緊急対応(c)”,“D3”,
“(23)要是正緊急対応(d)”,“C”,
“(23)要是正(既存不適格)”,“E”,
“(23)該当なし”,“該当なし”,
“(23)指摘無し”,“指摘無し”,

“(24)要是正”,“D1”,
“(24)要是正緊急対応(a)”,“A1”,
“(24)要是正緊急対応(b)”,“D1”,
“(24)要是正緊急対応(c)”,“D1”,
“(24)要是正緊急対応(d)”,“C”,
“(24)要是正(既存不適格)”,“E”,
“(24)該当なし”,“該当なし”,
“(24)指摘無し”,“指摘無し”,

“(25)要是正”,“D1”,
“(25)要是正緊急対応(a)”,“A1”,
“(25)要是正緊急対応(b)”,“D1”,
“(25)要是正緊急対応(c)”,“D1”,
“(25)要是正緊急対応(d)”,“C”,
“(25)要是正(既存不適格)”,“E”,
“(25)該当なし”,“該当なし”,
“(25)指摘無し”,“指摘無し”,

“(26)要是正”,“B2”,
“(26)要是正緊急対応(a)”,“B2”,
“(26)要是正緊急対応(b)”,“B2”,
“(26)要是正緊急対応(c)”,“B2”,
“(26)要是正緊急対応(d)”,“B2”,
“(26)要是正(既存不適格)”,“E”,
“(26)該当なし”,“該当なし”,
“(26)指摘無し”,“指摘無し”,

“(27)要是正”,“B2”,
“(27)要是正緊急対応(a)”,“B2”,
“(27)要是正緊急対応(b)”,“B2”,
“(27)要是正緊急対応(c)”,“B2”,
“(27)要是正緊急対応(d)”,“B2”,
“(27)要是正(既存不適格)”,“E”,
“(27)該当なし”,“該当なし”,
“(27)指摘無し”,“指摘無し”,

“(28)要是正”,“B2”,
“(28)要是正緊急対応(a)”,“B2”,
“(28)要是正緊急対応(b)”,“B2”,
“(28)要是正緊急対応(c)”,“B2”,
“(28)要是正緊急対応(d)”,“B2”,
“(28)要是正(既存不適格)”,“E”,
“(28)該当なし”,“該当なし”,
“(28)指摘無し”,“指摘無し”,

“(29)要是正”,“B2”,
“(29)要是正緊急対応(a)”,“B2”,
“(29)要是正緊急対応(b)”,“B2”,
“(29)要是正緊急対応(c)”,“B2”,
“(29)要是正緊急対応(d)”,“B2”,
“(29)要是正(既存不適格)”,“E”,
“(29)該当なし”,“該当なし”,
“(29)指摘無し”,“指摘無し”,

“(30)要是正”,“B2”,
“(30)要是正緊急対応(a)”,“B2”,
“(30)要是正緊急対応(b)”,“B2”,
“(30)要是正緊急対応(c)”,“B2”,
“(30)要是正緊急対応(d)”,“B2”,
“(30)要是正(既存不適格)”,“E”,
“(30)該当なし”,“該当なし”,
“(30)指摘無し”,“指摘無し”,

“(31)要是正”,“B2”,
“(31)要是正緊急対応(a)”,“B2”,
“(31)要是正緊急対応(b)”,“B2”,
“(31)要是正緊急対応(c)”,“B2”,
“(31)要是正緊急対応(d)”,“B2”,
“(31)要是正(既存不適格)”,“E”,
“(31)該当なし”,“該当なし”,
“(31)指摘無し”,“指摘無し”,

“(32)要是正”,“B1”,
“(32)要是正緊急対応(a)”,“B1”,
“(32)要是正緊急対応(b)”,“B1”,
“(32)要是正緊急対応(c)”,“B1”,
“(32)要是正緊急対応(d)”,“B1”,
“(32)要是正(既存不適格)”,“E”,
“(32)該当なし”,“該当なし”,
“(32)指摘無し”,“指摘無し”,

“(33)要是正”,“B1”,
“(33)要是正緊急対応(a)”,“B1”,
“(33)要是正緊急対応(b)”,“B1”,
“(33)要是正緊急対応(c)”,“B1”,
“(33)要是正緊急対応(d)”,“B1”,
“(33)要是正(既存不適格)”,“E”,
“(33)該当なし”,“該当なし”,
“(33)指摘無し”,“指摘無し”,

“(35)要是正”,“A2”,
“(35)要是正緊急対応(a)”,“A2”,
“(35)要是正緊急対応(b)”,“A2”,
“(35)要是正緊急対応(c)”,“A2”,
“(35)要是正緊急対応(d)”,“A2”,
“(35)要是正(既存不適格)”,“E”,
“(35)該当なし”,“該当なし”,
“(35)指摘無し”,“指摘無し”,

“(36)要是正”,“B2”,
“(36)要是正緊急対応(a)”,“B2”,
“(36)要是正緊急対応(b)”,“B2”,
“(36)要是正緊急対応(c)”,“B2”,
“(36)要是正緊急対応(d)”,“B2”,
“(36)要是正(既存不適格)”,“E”,
“(36)該当なし”,“該当なし”,
“(36)指摘無し”,“指摘無し”,

“(37)要是正”,“D2”,
“(37)要是正緊急対応(a)”,“D2”,
“(37)要是正緊急対応(b)”,“D2”,
“(37)要是正緊急対応(c)”,“D2”,
“(37)要是正緊急対応(d)”,“D2”,
“(37)要是正(既存不適格)”,“E”,
“(37)該当なし”,“該当なし”,
“(37)指摘無し”,“指摘無し”,

“(38)要是正”,“D2”,
“(38)要是正緊急対応(a)”,“D2”,
“(38)要是正緊急対応(b)”,“D2”,
“(38)要是正緊急対応(c)”,“D2”,
“(38)要是正緊急対応(d)”,“D2”,
“(38)要是正(既存不適格)”,“E”,
“(38)該当なし”,“該当なし”,
“(38)指摘無し”,“指摘無し”,

“(39)要是正”,“D2”,
“(39)要是正緊急対応(a)”,“D2”,
“(39)要是正緊急対応(b)”,“D2”,
“(39)要是正緊急対応(c)”,“D2”,
“(39)要是正緊急対応(d)”,“D2”,
“(39)要是正(既存不適格)”,“E”,
“(39)該当なし”,“該当なし”,
“(39)指摘無し”,“指摘無し”,

“(40)要是正”,“D2”,
“(40)要是正緊急対応(a)”,“D2”,
“(40)要是正緊急対応(b)”,“D2”,
“(40)要是正緊急対応(c)”,“D2”,
“(40)要是正緊急対応(d)”,“D2”,
“(40)要是正(既存不適格)”,“E”,
“(40)該当なし”,“該当なし”,
“(40)指摘無し”,“指摘無し”,

“(41)要是正”,“B2”,
“(41)要是正緊急対応(a)”,“B2”,
“(41)要是正緊急対応(b)”,“B2”,
“(41)要是正緊急対応(c)”,“B2”,
“(41)要是正緊急対応(d)”,“B2”,
“(41)要是正(既存不適格)”,“E”,
“(41)該当なし”,“該当なし”,
“(41)指摘無し”,“指摘無し”,

“(42)要是正”,“D2”,
“(42)要是正緊急対応(a)”,“D2”,
“(42)要是正緊急対応(b)”,“D2”,
“(42)要是正緊急対応(c)”,“D2”,
“(42)要是正緊急対応(d)”,“D2”,
“(42)要是正(既存不適格)”,“E”,
“(42)該当なし”,“該当なし”,
“(42)指摘無し”,“指摘無し”,

“(43)要是正”,“B1”,
“(43)要是正緊急対応(a)”,“A1”,
“(43)要是正緊急対応(b)”,“B1”,
“(43)要是正緊急対応(c)”,“B1”,
“(43)要是正緊急対応(d)”,“C”,
“(43)要是正(既存不適格)”,“E”,
“(43)該当なし”,“該当なし”,
“(43)指摘無し”,“指摘無し”,

“(44)要是正”,“B1”,
“(44)要是正緊急対応(a)”,“A1”,
“(44)要是正緊急対応(b)”,“B1”,
“(44)要是正緊急対応(c)”,“B1”,
“(44)要是正緊急対応(d)”,“C”,
“(44)要是正(既存不適格)”,“E”,
“(44)該当なし”,“該当なし”,
“(44)指摘無し”,“指摘無し”,

“(45)要是正”,“B1”,
“(45)要是正緊急対応(a)”,“A1”,
“(45)要是正緊急対応(b)”,“B1”,
“(45)要是正緊急対応(c)”,“B1”,
“(45)要是正緊急対応(d)”,“C”,
“(45)要是正(既存不適格)”,“E”,
“(45)該当なし”,“該当なし”,
“(45)指摘無し”,“指摘無し”,

“(46)要是正”,“B1”,
“(46)要是正緊急対応(a)”,“A1”,
“(46)要是正緊急対応(b)”,“B1”,
“(46)要是正緊急対応(c)”,“B1”,
“(46)要是正緊急対応(d)”,“C”,
“(46)要是正(既存不適格)”,“E”,
“(46)該当なし”,“該当なし”,
“(46)指摘無し”,“指摘無し”,

“正しい値を入力してください。”)

かなり冗長な条件が多いですね。

同じ処理をまとめて最適化しても、行数が多くかつ条件が多いので、かなり計算処理で時間がかかります。

実用的には、JavaScript で同等の処理を作ったほうがよさそうです。

SWITCH(点検結果4&緊急対応4,
"要是正(既存不適格)","E",
"該当なし","該当なし",
"指摘無し","指摘無し",
"","正しい値を入力してください。",
"緊急対応(a)","正しい値を入力してください。",
"緊急対応(b)","正しい値を入力してください。",
"緊急対応(c)","正しい値を入力してください。",
"緊急対応(d)","正しい値を入力してください。",
IFS(IN(番号4,"(1)","(2)","(3)","(4)","(5)"),
SWITCH(点検結果4&緊急対応4,
"要是正","B2",
"要是正緊急対応(a)","A1",
"要是正緊急対応(b)","B2",
"要是正緊急対応(c)","B2",
"要是正緊急対応(d)","C",
"正しい値を入力してください。"),
IN(番号4,"(6)"),
SWITCH(点検結果4&緊急対応4,
"要是正","D1",
"要是正緊急対応(a)","A1",
"要是正緊急対応(b)","B2",
"要是正緊急対応(c)","B2",
"要是正緊急対応(d)","C",
"正しい値を入力してください。"),
IN(番号4,"(7)","(8)","(9)","(10)","(17)","(18)","(19)","(24)","(25)"),
SWITCH(点検結果4&緊急対応4,
"要是正","D1",
"要是正緊急対応(a)","A1",
"要是正緊急対応(b)","D1",
"要是正緊急対応(c)","D1",
"要是正緊急対応(d)","C",
"正しい値を入力してください。"),
IN(番号4,"(11)","(12)","(13)","(14)","(15)","(16)","(20)","(21)","(22)","(26)","(27)","(28)","(29)","(30)","(31)","(36)","(41)"),
"B2",
IN(番号4,"(32)","(33)"),
"B1",
IN(番号4,"(35)"),
"A2",
IN(番号4,"(37)","(38)","(39)","(40)","(42)"),
"D2",
IN(番号4,"(23)"),
SWITCH(点検結果4&緊急対応4,
"要是正","D3",
"要是正緊急対応(a)","A1",
"要是正緊急対応(b)","D3",
"要是正緊急対応(c)","D3",
"要是正緊急対応(d)","C",
"正しい値を入力してください。"),
IN(番号4,"(43)","(44)","(45)","(46)"),
SWITCH(点検結果4&緊急対応4,
"要是正","B1",
"要是正緊急対応(a)","A1",
"要是正緊急対応(b)","B1",
"要是正緊急対応(c)","B1",
"要是正緊急対応(d)","C",
"正しい値を入力してください。")))

rex0220 さん

以前から時間がたっていいるのにも関わらず
コメントありがとうございます。

また最適化した計算式をありがとうございます!!

SWITH,IFS,IN関数を使いうとこういった風に最適化できるのですね…
とても勉強になります。

また実用的に運用する際のご意見ありがとうございます。

これを元にまたいろいろと試していけたらと思います。

大変貴重なコメントをありがとうございました。

rex0220 さん

色々と検証を行い、何とかなりました!!
本件にアドバイスを頂き
本当にありがとうございました!!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。