• ベストアンサー

選択による表示の可否を含めた複雑な計算表について

下記のような計算表を作りたいのですが… AA  1  2  3  4 BB  11  12  13  14  15     ※AAのチェックによって表示され、選択可能    <例>    ・AA-1を選択するとBB-11,12のみ表示して1つのみ選択可能    ・AA-2を選択するとBB-11,12,14のみ表示して   〃    ・AA-3を選択するとBB-11~15表示して     〃 CC  テキストボックスでユーザ入力 DD  テキストボックスでユーザ入力 EE  CC×DD×<AAのチェックとBBのチェックによる数字>     <例>     ・BBの<例>と同じ条件の元で      AA-1---BB-11→15(チェックにより掛ける数字)      〃 ---〃 12→18( 〃 )      AA-2---BB-12→22( 〃 )      〃 ---〃 14→27( 〃 )      AA-3---BB-13→31( 〃 )      〃 ---〃 15→35( 〃 ) FF  Aa  Bb  Cc  Dd  Ee       ※AAとBBの条件と連動して、表示され選択可能      <例>      ・AA-1を選択するとBB-11,12のみ表示し、1つのみを選択。FF-Aaのみ表示      ・AA-2を選択するとBB-11,12,14のみ表示し、   〃  。FF-Aa,Ccのみ表示      ・AA-3を選択するとBB-11~15表示し、    〃    。FF-Bb,Ccのみ表示 GG  セレクトボックスで4割~8割から選択 HH  a  b  c  d  e  f  g      BBの選択内容とFFの選択内容によって表示(選択は1つのみ) ※ 後の計算によって数字変更     <例>      BB-11---FF-A---HH-a~c(a:3,b:6,c:10)      〃 ---〃 B---〃 a,c,f(a:4,c:5,f:8)      〃 ---〃 C---〃 c~g(c:4,d:5,e:8,f:14,g:18)      BB-12---FF-A---HH-a~c(a:11,b:14,c:18)      〃 ---〃 B---〃 b,d,f,g(b:7,d:9,f:12,g:13)      〃 ---〃 C---〃 c~f(c:1,d:3,e:9,f:11) 「計算」ボタンと「リセット」ボタン  ※「計算」ボタンをクリックするとIIとJJ」に計算内容を表示  ※「リセット」ボタンをクリックすると、すべてリセットさせる。AAのみ表示を残す II  EE×GG JJ  (AAとBBとFFのチェックによる数字)×(20-HH)×II÷2    <例>    AA-1---BB-12---FF-A→12(掛ける数字)×(20-HH-a)×II÷2    〃1---BB-12---〃 B→17(掛ける数字)×(20-〃c)×〃÷2                     ・                     ・ -------- 計算が大きく2つに別れて計算という形になるのですが、 <<1>> -AA-1---BB-11---FF-A-|→EEで必要な数字15 | | |-〃12---〃 -|→     〃 18 | | -〃2---BB-11---FF-A, C-|→EEで必要な数字20 | | |-〃 12--- 〃 -|→   〃  22 | | |-〃 14--- 〃 -|→   〃  27 | | -〃3---BB-11---FF-B,E-|→EEで必要な数字28 |   |-〃 12--- 〃 -|→   〃  30 |   |-〃 13--- 〃 -|→   〃  31 |   |-〃 14--- 〃 -|→   〃  32 |   |-〃 15--- 〃 -|→   〃  35 |         ・ -         ・ <<2>> ※ < >の数字は掛ける時に必要な数字 -BB-11---FF-A---HH-a<3> | |   |  |--〃b<6> | |   |  |--〃c<10> | |   | | |   FF-B---HH-a<4> | |   |  |--〃c<5> | |   |  |--〃f<8> | |   | | |   FF-C---HH-c<4> | |   |  |--〃d<5> | |   |  |--〃e<8> | |   |  |--〃f<14> | |   |  |--〃g<18> | | -BB-12---FF-A---HH-a<11> | |   |  |--〃b<14> | |   |  |--〃c<18> | |   | | |   FF-B---HH-b<7> | |   |  |--〃d<9> | |   |  |--〃f<12> | |   |  |--〃g<13> | |   | -      ・ |      ・ ※ < >の数字は掛ける時に必要な数字 <例>AA-1---BB-12---FF-A<12>×(20-HH-a<3>)×II÷2 という感じになります。 大変分かりにくいとは思いますが、ご教授の程よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.6

こんにちは また複雑なもの作ってますね~~(笑) いろんな部分が不足してたり矛盾があったりして確認も取りづらいですが大まかなのを書いたので突き詰めていってください ※表示/非表示にもできますが大まかな構成なので有効/無効にしてます ※全ての疑問に回答してくれる方は少ないかもしれませんが1つ1つの疑問であれば回答してくれる方は多数居られるので以下の不明瞭な部分を補足に付け足してお礼なり新規なりで(新規であればここのアドレスを添付して)質問してください 【不明瞭部分】 ・A(4)選択時のBB項目の選択可能部 → BBs "?"部分 ・A(2)-B(1)、A(3)-B(1)などの選択のときのEE項目の掛け数字 → EEs "?"部分 ・HH項目選択可/不可の条件 → HHs "?"部分 ・HH項目のそれぞれのvalue値 → HHval "?"部分 ・A(4)選択時のFF項目の選択可/不可 → FFs "?"部分 ・FF項目のそれぞれの掛け数字 → FFval "?"部分 ・表示/非表示の切り替え(順番に1つづつ出すのか、まとめて何個か出すのか)それによってアラート処理の必要/不必要、プログラムの組み方などが多少変わるので 【配列部分説明】 BBs:[[A(1)選択時のBB項目の選択可指定],[A(2)選択時のBB項目の選択可指定],・・・ BB-11="0";BB-12="1";BB-13="2";BB-14="3";BB-15="4" EEs:[["A(1)-B(1)選択のEE掛け数","A(1)-B(2)選択のEE掛け数","A(1)-B(3)","A(1)-B(4)","A(1)-B(5)"], ["A(2)-B(1)","A(2)-B(2)",・・・・ FFs:[[A(1)選択時のFF項目の選択可指定],[A(2)選択時のFF項目の選択可指定],・・・・ FF-Aa="0";FF-Bb="1";FF-Cc="2";FF-Dd="3";FF-Ee="4" HHs:[[B(1)-F(1)選択のHH項目の選択可指定],[B(1)-F(2)],[B(1)-F(3)],[B(1)-F(4)],[B(1)-F(5)],[B(2)-F(1)],[B(2)-F(2)],・・・・ HH-a="0";HH-b="1";HH-c="2";HH-d="3";HH-e="4";HH-f="5";HH-g="6" HHval:[["B(1)-F(1)のHH-aの値","B(1)-F(1)のHH-bの値",・・・], ["B(1)-F(2)のHH-aの値","B(1)-F(2)のHH-bの値",・・・],・・・・ FFval:[["A(1)B(1)F(1)選択判別","そのときのJJ項目掛け数"],["A(1)B(1)F(2)選択判別","そのときのJJ項目掛け数"],・・・・・ <script type="text/javascript"><!-- window.onload=function() { BBs = [["0","1"],["0","1","3"],["0","1","2","3","4"],["?"]]; EEs = [ ["15","18","","",""],["?","22","","27",""],["?","?","31","?","35"],["?","?","?","?","?"]]; FFs = [["0"],["0","2"],["1","2"],["?"]]; HHs = [ ["0","1","2"],["0","2","5"],["2","3","4","5","6"],["?"],["?"], ["0","1","2"],["1","3","5","6"],["2","3","4","5"],["?"],["?"], ["?"],["?"],["?"],["?"],["?"], ["?"],["?"],["?"],["?"],["?"], ["?"],["?"],["?"],["?"],["?"] ]; HHval = [ ["3","6","10","","","",""],["4","","5","","","8",""],["","","4","5","8","14","18"],["?"],["?"], ["11","14","18","","","",""],["","7","","9","","12","13"],["","","1","3","9","11",""],["?"],["?"], ["?"],["?"],["?"],["?"],["?"], ["?"],["?"],["?"],["?"],["?"], ["?"],["?"],["?"],["?"],["?"] ]; FFval = [ ["000","?"],["001","?"],["002","?"],["003","?"],["004","?"], ["010","12"],["011","18"],["012","?"],["013","?"],["014","?"], ["020","?"],["021","?"],["022","?"],["023","?"],["024","?"], ["030","?"],["031","?"],["032","?"],["033","?"],["034","?"], ["040","?"],["041","?"],["042","?"],["043","?"],["044","?"], ["100","?"],["101","?"],["102","?"],["103","?"],["104","?"], ["110","?"],["111","?"],["112","?"],["113","?"],["114","?"], ["120","?"],["121","?"],["122","?"],["123","?"],["124","?"], ["130","?"],["131","?"],["132","?"],["133","?"],["134","?"], ["140","?"],["141","?"],["142","?"],["143","?"],["144","?"], ["200","?"],["201","?"],["202","?"],["203","?"],["204","?"], ["210","?"],["211","?"],["212","?"],["213","?"],["214","?"], ["220","?"],["221","?"],["222","?"],["223","?"],["224","?"], ["230","?"],["231","?"],["232","?"],["233","?"],["234","?"], ["240","?"],["241","?"],["242","?"],["243","?"],["244","?"], ["300","?"],["301","?"],["302","?"],["303","?"],["304","?"], ["310","?"],["311","?"],["312","?"],["313","?"],["314","?"], ["320","?"],["321","?"],["322","?"],["323","?"],["324","?"], ["330","?"],["331","?"],["332","?"],["333","?"],["334","?"], ["340","?"],["341","?"],["342","?"],["343","?"],["344","?"] ] objA = document.getElementById("cols").AA; objB = document.getElementById("cols").BB; objC = document.getElementById("cols").CC; objD = document.getElementById("cols").DD; objE = document.getElementById("cols").EE; objF = document.getElementById("cols").FF; objG = document.getElementById("cols").GG; objH = document.getElementById("cols").HH; objI = document.getElementById("cols").II; objJ = document.getElementById("cols").JJ; } function sel1() { for(i=0;i<objA.length;i++) { if(objA[i].checked) n = i; } for(i=0;i<objB.length;i++) { objB[i].disabled = true; objB[i].checked = false; } for(i=0;i<objF.length;i++) { objF[i].disabled = true; objF[i].checked = false; } apBB = BBs[n]; for(i=0;i<apBB.length;i++) { objB[apBB[i]].disabled = false; } apFF = FFs[n]; for(i=0;i<apFF.length;i++) { objF[apFF[i]].disabled = false; } } function sel2() { m = n = -1; for(i=0;i<objB.length;i++) { if(objB[i].checked) m = i; } for(i=0;i<objF.length;i++) { if(objF[i].checked) n = i; } for(i=0;i<objH.length;i++) { objH[i].disabled = true; objH[i].checked = false; } if(m == "-1" || n == "-1") return false; num = m * 5 + n; apHH = HHs[num]; for(i=0;i<apHH.length;i++) { objH[apHH[i]].disabled = false; } } function col1() { for(i=0;i<objA.length;i++) { if(objA[i].checked) { m = i; num0 = objA[i].value; }} for(i=0;i<objB.length;i++) { if(objB[i].checked) n = i; } num1 = EEs[m][n]; num2 = objC.value==""?"0":objC.value; num3 = objD.value==""?"0":objD.value;; objE.value = num0 * num1 * num2 * num3; } function col2() { objI.value = objE.value * objG.value; } function col3() { for(i=0;i<objA.length;i++) { if(objA[i].checked) { l = i; }} for(i=0;i<objB.length;i++) { if(objB[i].checked) { m = i; }} for(i=0;i<objF.length;i++) { if(objF[i].checked) { n = i; }} for(i=0;i<objH.length;i++) { if(objH[i].checked) { o = i; }} num1 = "" + l + "" + m + "" + n; for(i=0;i<FFval.length;i++) { if(num1 == FFval[i][0]) Fval = FFval[i][1]; } num2 = m * 5 + n; Hval = HHval[num2][o]; Ival = objE.value * objG.value; objJ.value = Fval * ( 20 - Hval) * Ival /2; } function cl() { objI.value = objJ.value = ""; } //--></script> <div id="test"></div> <form id="cols"> <div> <input type="radio" name="AA" value="1" onclick="sel1()">1 <input type="radio" name="AA" value="2" onclick="sel1()">2 <input type="radio" name="AA" value="3" onclick="sel1()">3 <input type="radio" name="AA" value="4" onclick="sel1()">4 </div> <div> <input type="radio" name="BB" value="" onclick="sel2()">11 <input type="radio" name="BB" value="" onclick="sel2()">12 <input type="radio" name="BB" value="" onclick="sel2()">13 <input type="radio" name="BB" value="" onclick="sel2()">14 <input type="radio" name="BB" value="" onclick="sel2()">15 </div> <div> <input type="test" name="CC" onkeyup="col1()"> </div> <div> <input type="text" name="DD" onkeyup="col1()"> </div> <div> <input type="text" name="EE" readonly> </div> <div> <input type="radio" name="FF" value="" onclick="sel2()">Aa <input type="radio" name="FF" value="" onclick="sel2()">Bb <input type="radio" name="FF" value="" onclick="sel2()">Cc <input type="radio" name="FF" value="" onclick="sel2()">Dd <input type="radio" name="FF" value="" onclick="sel2()">Ee </div> <div> <select name="GG"> <option value="0.4">4割</option> <option value="0.5">5割</option> <option value="0.6">6割</option> <option value="0.7">7割</option> <option value="0.8">8割</option> </select> </div> <div> <input type="radio" name="HH" value="">a <input type="radio" name="HH" value="">b <input type="radio" name="HH" value="">c <input type="radio" name="HH" value="">d <input type="radio" name="HH" value="">e <input type="radio" name="HH" value="">f <input type="radio" name="HH" value="">g </div> <input type="button" value="計算" onclick="col2();col3()"> <input type="reset" value="リセット" onclick="cl()"> <div> <input type="text" name="II" readonly> <input type="text" name="JJ" readonly> </div>

ayane007
質問者

お礼

leap_dayさん ありがとうございました。 あれから、色々やってみて、何とか形に出来ました。 本当にありがとうございました。

ayane007
質問者

補足

leap_dayさん いつも本当にありがとうございます。 以前に回答頂いたコードを見ながら、チャレンジをしてはいるのですが…。 【不明瞭部分】の >・表示/非表示の切り替え(順番に1つづつ出すのか、まとめて何個か出すのか)それによってアラート処理の必要/不必要、プログラムの組み方などが多少変わるので ですが、順番に1つずつ出すのを希望しています。 順番が違ったらアラートで注意を促すようにもしたいと思っています。 いつもすいません……。

その他の回答 (5)

noname#84373
noname#84373
回答No.5

追加補足です GGのselect ですが name が2つ指定されています これは1つにすべきです。 値のとり方は、name='wariai' としたときは document.getElementsByName('wariai')[0].value です なぜか「このカテゴリで人気のQ&A」でトップになっています みなさん、注目しているということでしょうか? がんばってくださいね!

noname#84373
noname#84373
回答No.4

最初に断っておきますが、私はあなたの望むような完成品を作るつもりはありません。参考になるような部分しか書きません。 さて、AAとBBの値の取得についてですが、得る値は1つなのに なぜ、名前を個々につける必要があるのですか? AAを選択するとBBが無効になるようにしておきました。応用してください 同一のradioで選択されたものの値を返す関数を定義してみました EEをクリックするとCC*DD*BBが計算されます サンプルを提示するのはよいのですが、余分なものを省いてはどうでしょうか?あえて表にする必要はないと思います onClickでもonChangeでもタグの中に書き込んでかまいませんから コードも書いてくださいね! <html> <body> <form name="abc"> aa <input type="radio" name="AA" onClick="document.getElementsByName('BB')[0].disabled=true;document.getElementsByName('BB')[1].disabled=true">1 <input type="radio" name="AA">2 <hr> BB <input type="radio" name="BB" value="11">11 <input type="radio" name="BB" value="12">12 <hr> CC<input type="text" name="CC"><br> DD<input type="text" name="DD"><br> EE<input type="text" name="EE" onClick="document.getElementsByName('EE')[0].value=document.getElementsByName('CC')[0].value * document.getElementsByName('DD')[0].value * getRadio('BB')"><br> <script> function getRadio(n){ ob = document.getElementsByName(n); for(var i=0;i<ob.length;i++) if(ob[i].checked) return ob[i].value; } </script>

ayane007
質問者

お礼

_pipi_さん ありがとうございました。 色々とチャレンジしてみます。

noname#84373
noname#84373
回答No.3

本当に困っているのなら手助けしたいとも思うのですが・・・ まず「のみ表示」するとかエラーを防ぐ対策は後回しにして おおまかなフォームを作って見せてください。 複雑な条件を最初から組み入れるのではなく、 作ったフォームで、限定された条件のみで(例えば選択項目の一番最初のみを選んだ続けた場合など)正解を導くスクリプトを書いてみてください。 前回、他の方が書いてくださったサンプルはとても有意義なものでしたよ! まずはそこからが始まりだと思います。 10000万行にも及ぶプログラムを書くのは大変でも 10行のプログラムを1000個作るのは簡単です ちなみに私の実力として、5行程度のレベルなら、アドバイスできると思います。^^;

ayane007
質問者

補足

_pipi_さん ありがとうございます。 以前にご教授願ったのを自分で色々と試してはいるのですが、 選択項目によって表示/非表示(AAのみ最初から表示→選択→条件に合うBB項目表示など)や計算の数字等など複雑になってるので分からなくなっています。 まだ、試してみますがソースのみ載せておきます。 ご親切にありがとうございます。 <html> <head> </head> <body> <form name="all"> <table> <tr> <td width="22">AA</td> <td> <input type="radio" name="AA1">1 <input type="radio" name="AA2">2 <input type="radio" name="AA3">3 <input type="radio" name="AA4">4 </td> </tr> <tr> <td>BB</td> <td> <input type="radio" name="BB11">11 <input type="radio" name="BB12">12 <input type="radio" name="BB13">13 <input type="radio" name="BB14">14 <input type="radio" name="BB15">15 </td> </tr> <tr> <td>CC</td> <td><input type="text" name="CC"></td> </tr> <tr> <td>DD</td> <td><input type="text" name="DD"></td> </tr> <tr> <td>EE</td> <td><input type="text" name="EE" readonly></td> </tr> <tr> <td>FF</td> <td> <input type="radio" name="FFAa">Aa <input type="radio" name="FFBb">Bb <input type="radio" name="FFCc">Cc <input type="radio" name="FFDd">Dd <input type="radio" name="FFEe">Ee </td> </tr> <tr> <td>GG</td> <td><select name="select" name="wariai"> <option value="">選択</option> <option value="0.4">4割</option> <option value="0.5">5割</option> <option value="0.6">6割</option> <option value="0.7">7割</option> <option value="0.8">8割</option> </select></td> </tr> <tr> <td>HH</td> <td> <input type="radio" name="HHa">a <input type="radio" name="HHb">b <input type="radio" name="HHc">c <input type="radio" name="HHd">d <input type="radio" name="HHe">e <input type="radio" name="HHf">f <input type="radio" name="HHg">g <input type="radio" name="HHh">h </td> </tr> <tr> <td colspan="2"><input name="keisan" type="button" value="計算" onClick="col1()"> <input name="reset" type="reset" value="リセット"></td> </tr> <tr> <td>II</td> <td><input type="text" name="II"></td> </tr> <tr> <td>JJ</td> <td><input type="text" name="JJ"></td> </tr> </table> </form> </body> </html>

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

同じような質問を何度もなさるのはソースを理解していないからでしょうか? いままでの質問の回答のソースも、さほど特殊なことをやっているわけでは ないですし、もし理解されていないなら自問なさっているとおり、 質問者さんには「無理な計算表」なのだと思います。 今後ともこのような課題が発生するのであれば、どなたかWEBプログラマの方に コンサルについてもらった方がよいと思います。 また、質問者さんがなさっているのは「質問」というよりはむしろ 「作業依頼」に近いものです。 このサイトでは禁止されている行為ですので、もし万が一理解する気が 希薄で、他人にプログラムを書いてほしいという依頼であれば、 そういう趣旨のサイトを探してそちらに投稿してください。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

丸投げは、やめましょう。 すべてを満たす回答があった場合、自分で理解しないまま使ってしまい がちです。 複雑な仕様の場合、ポイントを絞り、ご自分で理解できる単位で、 質問してください。

ayane007
質問者

補足

kokoroneさん 分からないので質問させて頂いています。 計算も複雑なので、ポイントを絞るにしても連動しているので難しい部分があると思い、投稿させて頂きました。 無理な計算表なのでしょうか?

関連するQ&A

  • JavaScriptで計算表

    下記のような計算式を作りたいのですが、ご教授願えませんでしょうか。 AA項目  セレクトボックスで、あ~おから選択(1)      セレクトボックスで、あ~おから選択(2)      セレクトボックスで、あ~おから選択(3)      セレクトボックスで、あ~おから選択(4)      セレクトボックスで、あ~おから選択(5)  ※ あ=40、い=30、う=20、え=10、お=5 とする BB項目  ユーザ入力(1)      ユーザ入力(2)      ユーザ入力(3)      ユーザ入力(4)      ユーザ入力(5) CC項目  AA項目とBB入力を掛けた計算結果表示(1)      AA項目とBB入力を掛けた計算結果表示(2)      AA項目とBB入力を掛けた計算結果表示(3)      AA項目とBB入力を掛けた計算結果表示(4)      AA項目とBB入力を掛けた計算結果表示(5) DD項目  2割~8割からセレクトボックスで選択(1)      2割~8割からセレクトボックスで選択(2)      2割~8割からセレクトボックスで選択(3)      2割~8割からセレクトボックスで選択(4)      2割~8割からセレクトボックスで選択(5) EE項目  セレクトボックスで、か~こから選択 ★ CC項目とDD項目を掛けた数字をすべて足した数字表示 「FF」   (例:CC項目(1)=DD項目(1)、CC項目(2)=DD項目(2)という考え方)   ★ CC項目とDD項目ごとに掛けた数字にEE項目で選択した数字を掛けて足した数字表示 「GG」    「計算ボタン」    「クリアボタン」 *************** 1.AA項目、BB項目は、必ずしも全部を選択しない(CC項目、DD項目も連動) 2.各項目も(1)と(1)で計算  (例)    AA項目(1)とBB項目(1)の計算結果がCC項目(1)に表示    CC項目(1)とDD項目(1)を計算 3.EE項目は、AA項目の選択の種類によって、掛ける数字が変わってくる。    AA項目 あ  EE項目 か = 20.2    AA項目 い  EE項目 か = 15.8    AA項目 う  EE項目 か = 13.7    AA項目 え  EE項目 か = 10.5    AA項目 お  EE項目 か = 8.2    AA項目 あ  EE項目 き = 31.6    AA項目 い  EE項目 き = 28.1    AA項目 う  EE項目 き = 22.4    AA項目 え  EE項目 き = 17.2    AA項目 お  EE項目 き = 14.7 4.GG項目は、CC項目とDD項目ごとに計算した数字に、3.で選択した数字を掛けて足した合計を表示   (例)     CC項目(1)とDD項目(1)を掛けた数字に、AA項目で「あ」を選択し、EE項目は「か」を選択 5.計算ボタンをクリックすると、「FF」と「GG」を計算する 6.クリアボタンをクリックすると、すべてクリアとする      ************ 仮に AA項目 「あ~う」までを選択 BB項目 (AA項目「あ」=15、AA項目「い」=8、AA項目「う」=3) DD項目 (AA項目「あ」=2割、AA項目「い」=4割、AA項目「う」=7割) EE項目 「か」を選択 分かりづらい説明で申し訳ございませんが、宜しくお願いいたします。

  • Excel2003での複雑な表計算、教えてください。

      A  B  C  D  E  F  G  ----------------------------------- 1|  4   6      1.2   4.8   5.6 2| 10   20       0.2  7.2   6.3 上記のような表で、 同じブックの別のシートのA1列より、 A1×E1の解 A1×F1の解 A1×G1の解 A2×E2の解 A2×F2の解 A2×G2の解(以降、A列の行に数字があれば同じように繰り返し) 隣のB列にも同じように、 B1×E1の解・・・というように計算をしていき表をつくりたいのですが、関数ではどうがんばってもうまくいきません。 VBAでやればなんとかできるかと思うのですが、本を読んでもさっぱりわかりません。。。 誰か詳しい方、教えてくだされば幸いです。 説明が足りなければご指摘ください。 よろしくお願いいたします。

  • チェックボックス、セレクトボックスを組み合わせた複雑な計算表を作りたい

    下記のような条件を満たす計算表を作りたいのですが、どのように作っていけばいいのか、さっぱり分かりません。 殆ど初心者に近い状態で、このような複雑な計算表を作るのは不可能に近いのは分かっているのですが、是非、ご教授願いたいと思い、質問させて頂きたいです。 <html> <head> <title></title> </head> <body> <form name=all> <table> <tr> <td colspan=2>a</td> <td colspan=7> <input name=AA type=checkbox>AA <input name=BB type=checkbox>BB </td> </tr> <tr> <td colspan=2>b</td> <td colspan=7> <input name=CC type=checkbox>CC <input name=DD type=checkbox>DD </td> </tr> <tr> <td colspan=2>c</td> <td colspan=7><input name=nn type=text></td> </tr> <tr> <td colspan=2>d</td> <td colspan=7> <input name=EE type=checkbox>EE <input name=FF type=checkbox>FF <input name=GG type=checkbox>GG <input name=HH type=checkbox>HH </td> </tr> <tr> <td colspan=2>eA</td> <td colspan=7><input name=PP type=checkbox>PP</td> </tr> <tr> <td rowspan=5>eB</td> <td>e1</td> <td>i1</td> <td colspan=3> <select name=i1> <option>1</option> <option>2</option> </select> </td> <td>I2</td> <td colspan=2> <select name=i2> <option>1</option> <option>2</option> </select> </td> </tr> <tr> <td>e2</td> <td>J1</td> <td colspan=3> <select name=j1> <option>1</option> <option>2</option> </select> </td> <td>J2</td> <td colspan=2> <select name=j2> <option>1</option> <option>2</option> </select> </td> </tr> <tr> <td>e3</td> <td>K1</td> <td colspan=3> <select name=k1> <option>1</option> <option>2</option> </select> </td> <td>K2</td> <td colspan=2> <select name=k2> <option>1</option> <option>2</option> </select> </td> </tr> <tr> <td>e4</td> <td colspan=7> <select name=l1> <option>1</option> <option>2</option> </select> </td> </tr> <tr> <td>f5</td> <td colspan=7> <select name=m1> <option>1</option> <option>2</option> </select> </td> </tr> <tr> <td colspan=2>f</td> <td>f1</td> <td colspan=3><input name=oo type=text></td> <td>f2</td> <td colspan=2><input name=pp type=text></td> </tr> </table> <br> <input name=keisan1 type=submit value=計算1>  <input name=clear1 type=reset value=クリア1> </form> <br> <table><tr> <td colspan=9> a~dの計<input type=text name=qq>-f1<input type=text name=rr>=ABC<input type=text name=ss> </td> </tr> <tr> <td colspan=9> eA+eBの計<input type=text name=tt>-f2<input type=text name=uu>=DEF<input type=text name=vv> </td> </tr> <tr> <td colspan=9>ABC+DEFの計<input type=text name=ww>×dで選択したときの代入数字=<input type=text name=xx></td> </tr> </table> <br> <input name=kei2 type=submit value=計算2> <input name=clear2 type=reset value=クリア2> </center> </body> </html> 条件として、 ・「a~d」は、必ず入力 ・「e~f」は、該当する場合にのみ ・チェックボックスの行は、どれか1つだけを必ず選択(複数選択した場合、注意を促す) ・セレクトボックスの行は、 該当する場合のみ ・最後に「計算」ボタンを押した時に、未入力の部分(a~d)の注意を促す 計算なのですが、 1.「a」のAAを選択、「b」のCCを選択、「c」に20を入力、「d」のEEを入力したときの場合の計算 その時、「d」のEEには10を代入という形で計算したい。(他のFF=20,GG=30,HH=40) ※「a」のBBを選択した場合は、「d」のEE=15,FF=17,GG=22,HH=27となった場合も 2.上記の条件に加え、「eB」の「e1」は1、「e2」も1を選択、「e4」は2を選択した時の計算 その時、「e1」には「100」を代入、「e2」は「150」を代入、「e4」には「80」を代入で計算したい 3.上記「2」の条件に加え、「f1」に150、「f2」に70と入力した場合、「a~d」の計算合計から「f1」を引き、「e」のAとBの計算合計から「f2」を引く 長くて条件等も分かりづらいかもしれませんが、宜しくお願いします。

  • エクセルに以下のような複雑な計算をさせたいです。

    エクセルに以下のような条件の計算をさせたいです。 「2a , 3b , 5c , 6d , 8e , 10f」 a+b+c+d+e+fが上のどれよりも小さくなる場合の、 a,b,c,d,e,fの数字の組みわせで最も小さいものを求めたいです。 2a ≧ a+b+c+d+e+f 3b ≧ a+b+c+d+e+f 5c ≧ a+b+c+d+e+f 6d ≧ a+b+c+d+e+f 8e ≧ a+b+c+d+e+f 10f ≧ a+b+c+d+e+f (ただし、a,b,c,d,e,fは正の数) ※分かりやすいように、これらの数字は適当に入れたので、答えが無いかと思います。 実際は別の数字に置き換えます。 ※また、コンピュータが無限に計算し続けることを防ぐために上限を決めてもいいです 関数かマクロで計算させる方法を教えて下さい。 わかりやすくなるようにシンプルに説明しましたが、 実際は最大13組まで計算することになり、 自力でも計算してみましたが、とてつもなく時間がかかりました。 出来ればコンピューターに計算させたいと思い質問しました。

  • 条件に合ったデータを抜き出す

      A   B   C   D 1 あ   AA   VV   FF 2 い   CC   FF   HH 3 あ   SS   FF   DD 4 う   SS   EE   AA 以上のようなデータが有るときに、別シートに A列のデータを条件に以下のように抜き出したいのです。 別シートの各セルに式が入っていて、上記データを 変更しても別シートの抽出結果が自動で変わるようにしたいです。 ”あ”の抽出   あ   AA   VV   FF   あ   SS   FF   DD ”い”の抽出   い   CC   FF   HH ”う”の抽出   う   SS   EE   AA

  • ACCESS レポートで同じ値のときは先頭のみ表示したい

    いつもお世話になっております。また教えてください。 下記のようなレポートがあります。 (番号+日付+名前順、番号でグループ化) 番号 日付 名前 金額 1000 0820 AA 1000 1000 0820 BB 2000 1000 0821 CC 3000 1000 0821 DD 4000 1000 0822 EE 5000 1000計      15000 2000 0820 FF 10000 2000 0820 GG 20000 2000 0821 HH 30000 2000 0821 II 40000 2000 0821 JJ 50000 2000計      150000 これを下記のようにしたいのです。 番号 日付 名前 金額 1000 0820 AA 1000       BB 2000    0821 CC 3000       DD 4000    0822 EE 5000 1000計 3件   15000 2000 0820 FF 10000       GG 20000    0821 HH 30000       II 40000       JJ 50000 2000計 2件   150000 1.同じ値は先頭のみ表示する 2.番号グループ内の日付の個数を数える この方法を教えてください。Access2000です。 よろしくお願いします。

  • エクセルの集計計算について教えてください

    期間を指定するとデータを引っ張ってきます データは1000~2000件程存在します Aセル=名前 Bセル=略号 Cセル=日時 Dセル=場所 Eセル=不良合計 名前    略号       日時            場所    不良合計 A0001     AA   2014/06/01 00:04:28   1     7 A0010     BB   2014/06/01 00:18:10   2     3 A0011     DD   2014/06/01 00:29:35   4     8 A0001     EE   2014/06/01 00:24:55   2     9 A0005     CC   2014/06/01 00:29:35   3     4 A0010     BB   2014/06/01 00:27:09   2     6 A0020     AA   2014/06/01 00:32:13   1     4 A0001     AA   2014/06/01 00:33:26   3   3 A0020     EE   2014/06/01 00:37:31   5  17 A0016     FF   2014/06/01 00:47:22   6   7 A0030     BB   2014/06/01 00:54:35   2   3 A0015     AA   2014/06/01 01:01:11   1   2 A0001     DD   2014/06/01 01:03:01   4   8 A0020     EE   2014/06/01 01:06:21   5   11 A0011     BB   2014/06/01 01:08:19   2   4 A0005     DD   2014/06/01 01:17:20   4     13 A0011     BB   2014/06/01 01:22:41   2   8 A0016     AA   2014/06/01 01:23:47   1   2 A0010     CC   2014/06/01 01:25:08   3   11 .... 名前が同じ物でも、場所が異なると略号が変わってしまいます。 流れとしてはA001の物が場所1→2→3と進んで行きます。    名前   略号         日時         場所      不良合計 A0001   AA   2014/06/01 00:04:28   1   2 A0001   BB   2014/06/01 01:04:28   2   4 A0001   CC   2014/06/01 02:04:28   3   8 A0001   DD   2014/06/01 03:04:28   4   10 不良合計に関しては、前の物が加算されていく形になっています。 数千あるこのようなデータを今手計算で、場所毎の不良数を求めています。 例を挙げますと、上の4つのデータの場合 DDの不良合計とCCの不良合計を引いて、DDの不良合計は2 CCの不良合計とBBの不良合計を引いて、CCの不良合計は4 BBの不良合計とAAの不良合計を引いて、BBの不良合計は2 A0001   AA   2014/06/01 00:04:28   1   2 A0001   BB   2014/06/01 01:04:28   2   2 A0001   CC   2014/06/01 02:04:28   3   4 A0001   DD   2014/06/01 03:04:28   4   2 と言う形に手計算で置き換えてします。 ただ、数が膨大であり、名前に関しても同じ名前が1つではなく複数使われている事もあり計算が大変です。 何とか楽に計算する方法はないでしょうか? VBA?を使用してでもいいので、短時間で出来る集計方法があれば教えてください。

  • 複雑なテキスト変換

    テキストのログがあるんですが、これをある規則にしたがっていらない部分を削除したいのですが、効率的にする方法はあるでしょうか? したい事は、↓↓.↓から、↓↓--↓↓の間に挟まっている文章をすべて、↓↓.↓↓に変換することです。 改行を↓であらわしています。 例えば、 aa bb . ccc ddd -- ee ff というものを aa bb . ee ff のように変換したいのです。 だいたい500~1000箇所ほどの変換です。 やり方がわからず非常に困っています。どうぞよろしくお願いします。 ちなみに、OSは、windowsXPを使っています。

  • 添え字が表示できない

    simplexml_load_fileでXMLデータを解析して、ある添え字を表示したいのですが上手く表示されません。 (PHPバージョンは5です) 解析結果 ++++++++++++++++++++ SimpleXMLElement Object (  [A] => SimpleXMLElement Object   (    [B] => Array     (      [0] => SimpleXMLElement Object       (        [aa] => あいうえお        [bb] => かきくけこ        [cc] => さしすせそ       )      [1] => SimpleXMLElement Object       (        [dd] => たちつてと        [ee] => なにぬねの        [ff] => はひふへほ       )      [2] => SimpleXMLElement Object       (        [gg] => まみむめも        [hh] => やゆよ        [ii] => らりるれろ       )   <以下省略> ++++++++++++++++++++++++++++++++++++++++ この、0,1,2,・・・を表示させたくて foreach($xml->A->B as $key => $val){   echo "[$key},"; } としても、「0,1,2,」ではなく 「B,B,B,」と表示されてしまいます。 「0,1,2,」と表示させるにはどう記述すればよいのでしょうか??

    • ベストアンサー
    • PHP
  • EXCELで指定した範囲の値を検索し、範囲内に対応する行の見出しを調べるには

    EXCEL2003で、シート内に以下のように値が設定されている場合に、 B1からD4の範囲を検索して値が一致した行のA列の値を求めるには どのようにすればよろしいでしょうか。 たとえば、文字列「EE」で検索して「いいい」を求めたいのです。 A B C D 1 あああ AA CC FF 2 いいい BB EE 3 ううう DD 4 えええ GG HH VLOOKUP関数を使用すれば列内や行内での検索は出来ますが、 複数行列内の検索は出来ないようです。 よろしくお願いします。

専門家に質問してみよう