JavaScriptで計算表を作成する方法
- JavaScriptを使用して、AA項目とBB項目を掛け合わせた結果をCC項目に表示する計算表を作成する方法を教えてください。
- また、CC項目とDD項目を掛けた数字をすべて足した結果を「FF」とし、CC項目とDD項目にEE項目で選択した数字を掛け合わせた結果をすべて足した結果を「GG」として表示する方法も教えてください。
- さらに、計算ボタンをクリックすると「FF」と「GG」を計算し、クリアボタンをクリックすると全ての入力項目をクリアする機能も実装したいです。
- ベストアンサー
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項目 「か」を選択 分かりづらい説明で申し訳ございませんが、宜しくお願いいたします。
- ayane007
- お礼率50% (13/26)
- JavaScript
- 回答数5
- ありがとう数2
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは >EE「か」を選択---AA「あ」---20.2・・・(略)・・・という計算にしたいのですが。 これは可能ですが >FF項目に、EE項目の選択とAA項目の選択によって掛ける値が違うようにしたいのですが。(FF項目*倍率) これはできません 例えば A(1)あ A(2)え A(3)い E(1)か と選択していたとすると A(1)-E(1)で20.2、A(2)-E(1)で10.5、A(3)-E(1)で15.8、という風に3種類数値が出てきます なのでどの数値を使用してFF項目に掛けるのか?という問題が出てきます これが >>>※AA項目のどれを基準にするか決めれないので『 1つ 』は無理です と書いた理由です とりあえず今までの質疑から ・AA項目 あ(=40)い(=30)う(=20)え(=10)お(=5)のセレクトボックス『 5つ 』 ・BB項目 ユーザー入力 テキストボックス『 5つ 』 ・CC項目 C(1)=A(1)*B(1)、C(2)=A(2)*B(2)・・・のAA項目*BB項目のテキストボックス『 5つ 』 ・DD項目 「2割~8割」のセレクトボックス『 1つ 』 ・EE項目 「か~こ」のセレクトボックス『 1つ 』 ・FF項目 CC項目5つの合計*DD項目のテキストボックス『 1つ 』 DD(1)*○割になってるけどCC(1)*○割の間違いです?? ・GG項目 A(1)*B(1)*DD*{EE項目に対するA(1)選択の値} + A(2)*B(2)*DD*{EE項目に対するA(2)選択の値} + ・・・ という感じにしてます (例) A(1)あ A(2)う B(1)5 B(2)3 DD 0.5 EE か GG = { 40*5*0.5*20.2 } + { 20*3*0.5*13.7 } = 2020 + 411 = 2431 ※今回のEEsは EEs = [[""],[EE(か)を選択したときのAの選択による倍率],[EE(き)を選択したときのAの選択による倍率],・・・ になっています <style type="text/css"><!-- select { width:106px; } input { width:100px; } --></style> <script type="text/javascript"><!-- document.getElementsByClassName = function (className) { var i, j, eltClass; var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all; var objCN = new Array(); for (i = 0; i < objAll.length; i++) { eltClass = objAll[i].className.split(/\s+/); for (j = 0; j < eltClass.length; j++) { if (eltClass[j] == className) { objCN.push(objAll[i]); break; } } } return objCN; } window.onload = function() { obj1 = obj2 = obj4 = obj5 = EEs = new Array(); obj1 = document.getElementsByClassName("AA"); obj2 = document.getElementsByClassName("BB"); obj3 = document.getElementsByClassName("CC"); obj4 = document.getElementsByClassName("DD"); obj5 = document.getElementsByClassName("EE"); obj6 = document.getElementsByClassName("FF"); obj7 = document.getElementsByClassName("GG"); EEs = [[""],["","20.2","15.8","13.7","10.5","8.2"],["","31.6","28.1","22.4","17.2","14.7"],["","?","?","?","?","?"],["","?","?","?","?","?"],["","?","?","?","?","?"]]; for(i=0;i<obj1.length;i++) { obj1[i].onchange = function() { col1(); } } for(i=0;i<obj2.length;i++) { obj2[i].onkeyup = function() { col1(); } } } function col1() { for(i=0;i<obj1.length;i++) { obj3[i].value = obj1[i].value * obj2[i].value; if(obj3[i].value == "0") obj3[i].value = ""; } } function col2() { num=0; for(i=0;i<obj3.length;i++) { if(obj3[i].value == "") { n=0; } else { n = eval(obj3[i].value); } num += n; } obj6[0].value = num; } function col3() { total = 0; for(i=0;i<obj1.length;i++) { m = obj5[0].selectedIndex; n = obj1[i].selectedIndex; val = EEs[m][n]; nums = obj1[i].value * obj2[i].value * obj4[0].value * val; total += nums; } obj7[0].value = total; } //--></script> <form> <div> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> </div> <div> <input type="text" class="BB"> <input type="text" class="BB"> <input type="text" class="BB"> <input type="text" class="BB"> <input type="text" class="BB"> </div> <div> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> </div> <div> <select class="DD"> <option value="">選択</option> <option value="0.2">2割</option> <option value="0.3">3割</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> </div> <div> <select class="EE"> <option value="">選択</option> <option value="">か</option> <option value="">き</option> <option value="">く</option> <option value="">け</option> <option value="">こ</option> </select> </div> <div> <input type="text" class="FF" readonly> </div> <div> <input type="text" class="GG" readonly> </div> <input type="button" value="計算" onclick="col2();col3();"> <input type="reset" value="クリア"> </form>
その他の回答 (4)
- leap_day
- ベストアンサー率60% (338/561)
こんにちは EE項目の選択肢の判別方法とEEsの参照の仕方が異なるだけで#2のやりかたでできますが? 【#4変更部位】 function col3() { total = 0; for(i=0;i<obj1.length;i++) { m = obj5[0].selectedIndex; n = obj1[i].selectedIndex; val = EEs[m][n]; obj7[i].value = obj1[i].value * obj2[i].value * obj4[0].value * val; if(obj7[i].value == "0") obj7[i].value = "";} } <div> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> </div> それともAA1 { A(1),A(2),A(3) } , AA2 { A(4),A(5) }という風に分けるということ? これは#4を少し変える(場合分けする)だけでできます function col3() { m = obj5[0].selectedIndex; total = 0; for(i=0;i<3;i++) { n = obj1[i].selectedIndex; val = EEs[m][n]; nums = obj1[i].value * obj2[i].value * obj4[0].value * val; total += nums; } obj7[0].value = total; total = 0; for(i=3;i<5;i++) { n = obj1[i].selectedIndex; val = EEs[m][n]; nums = obj1[i].value * obj2[i].value * obj4[0].value * val; total += nums; } obj7[1].value = total; } <div> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> </div> FF項目は・・・ >「AA1」グループ合計 + 「AA2」グループ合計・・・ ということはそのまま? 違うようであれば上記を参考に function col2() { } をつついてみてください
お礼
申し訳ありませんm(_ _)m 私の勘違いでした。 自分から、GG項目を二つで出したいと質問しておいて、 誠に申し訳ありませんでした。 また、ご教授願うことがあると思いますが、 宜しくお願いします。 本当にありがとうございました。
補足
leap_dayさん、ありがとうございます。 FF項目は、 CC項目AA1グループ×DD項目で選択した割合+CC項目AA2グループ×DD項目 で表示させることはできましたが、(多分) GG項目は、計算方式は変わらないのですが、 その合計を1つに表示させたいのですが、上手くできません(泣) 何度も申し訳ありませんが、ご教授の程宜しくお願いします。
- leap_day
- ベストアンサー率60% (338/561)
こんにちは 質問から理解しているのと補足とでちょっと違うようなので整理したいのですが・・・ AA項目・・・「あ~お」のセレクトボックスが『 5つ 』(#2のような感じ) BB項目・・・ユーザー入力のテキストボックスが『 5つ 』(#2のような感じ) CC項目・・・計算結果表示のテキストボックスが『 5つ 』 >{A(1)×B(1)×ユーザ入力(1)}を表示 とありますがB(1)=ユーザー入力(1)では? もしかして A(1) * D(1) * ユーザー入力(1) ? DD項目・・・「2割~8割」のセレクトボックスが『 5つ 』(#2のような感じ) ※補足からでは『 1つ 』のようにも思われる EE項目・・・AA項目の選択によってvalue値が変化するセレクトボックスが『 5つ 』(#2のような感じ) ※AA項目のどれを基準にするか決めれないので『 1つ 』は無理です FF項目・・・計算結果表示のテキストボックスが『 1つ 』 計算 → CC項目のテキストボックス『 5つ 』の合計 GG項目・・・計算結果表示のテキストボックスが『 1つ 』 計算 → それぞれのCC項目 * EE項目の合計{C(1)*E(1) + C(2)*E(2) + ・・・) CC項目の計算結果は自動計算 FF項目、GG項目の計算結果は『計算』ボタンを押すことによって計算 ということですか?
補足
leap_dayさん、ありがとうございます。 拙い説明で申し訳ありません。 >AA項目・・・「あ~お」のセレクトボックスが『 5つ 』(#2のような感じ) おっしゃる通りです。 >BB項目・・・ユーザー入力のテキストボックスが『 5つ 』(#2のような感じ) これも、おっしゃる通りです。 >CC項目・・・計算結果表示のテキストボックスが『 5つ 』 こちらの入力ミスでした。申し訳ありません。 「{A(1)×B(1)}を表示}」でした。 >DD項目・・・「2割~8割」のセレクトボックスが『 5つ 』(#2のような感じ) これは、『1つ』です。 その際に、DD項目は1つですが、FF項目に計算結果を表示する時に、 DD(1)×○割+DD(2)×○割……という計算合計をFF項目に表示するというふうにしたいのですが。 >EE項目・・・AA項目の選択によってvalue値が変化するセレクトボックスが『 5つ 』(#2のような感じ) >※AA項目のどれを基準にするか決めれないので『 1つ 』は無理です。 EE「か」を選択---AA「あ」---20.2 〃 ---〃「い」---15.8 〃 ---〃「う」---13.7 〃 ---〃「え」---10.5 〃 ---〃「お」---8.2 EE「き」を選択---AA「あ」---31.6 〃 ---〃「い」---28.1 〃 ---〃「う」---22.4 〃 ---〃「え」---17.2 〃 ---〃「お」---14.7 という計算にしたいのですが。 やはり、1つのセレクトボックスでは無理でしょうか? >FF項目・・・計算結果表示のテキストボックスが『 1つ 』 計算は、CC項目の内容の通りの計算でできますか? >GG項目・・・計算結果表示のテキストボックスが『 1つ 』 FF項目に、EE項目の選択とAA項目の選択によって掛ける値が違うようにしたいのですが。 (例) FF項目×15.8(EE項目「か」を選択--AA項目「い」を選択した場合) >CC項目の計算結果は自動計算 >FF項目、GG項目の計算結果は『計算』ボタンを押すことによって計算 はい。 何度も申し訳ありませんが、ご教授の程宜しくお願いします。
- leap_day
- ベストアンサー率60% (338/561)
こんにちは ※『計算ボタン』で計算させることもできたのですがついでなので自動処理にしました ※EEsには EEs = [[""],[AA項目「あ」に対する「か」~「こ」の値],[AA項目の「い」に対する「か」~「こ」の値],・・・となってます 「?」の部分を書き換えてください ※計算値が『0』の時には計算結果には何も表示されませんので・・・ CC = AA * BB; FF = CC * DD; GG = FF * EE; ということですよね? <style type="text/css"><!-- select { width:106px; } input { width:100px; } --></style> <script type="text/javascript"><!-- document.getElementsByClassName = function (className) { var i, j, eltClass; var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all; var objCN = new Array(); for (i = 0; i < objAll.length; i++) { eltClass = objAll[i].className.split(/\s+/); for (j = 0; j < eltClass.length; j++) { if (eltClass[j] == className) { objCN.push(objAll[i]); break; } } } return objCN; } window.onload = function() { obj1 = obj2 = obj4 = obj5 = EEs = new Array(); obj1 = document.getElementsByClassName("AA"); obj2 = document.getElementsByClassName("BB"); obj3 = document.getElementsByClassName("CC"); obj4 = document.getElementsByClassName("DD"); obj5 = document.getElementsByClassName("EE"); obj6 = document.getElementsByClassName("FF"); obj7 = document.getElementsByClassName("GG"); EEs = [[""],["","20.2","31.6","?","?","?"],["","15.8","28.1","?","?","?"],["","13.7","22.4","?","?","?"],["","10.5","17.2","?","?","?"],["","8.2","14.7","?","?","?"]]; for(i=0;i<obj1.length;i++) { obj1[i].onchange = function() { col1();col2();col3(); } } for(i=0;i<obj2.length;i++) { obj2[i].onkeyup = function() { col1();col2();col3(); } } for(i=0;i<obj4.length;i++) { obj4[i].onchange = function() { col1();col2();col3(); } } for(i=0;i<obj5.length;i++) { obj5[i].onchange = function() { col1();col2();col3(); } } } function col1() { for(i=0;i<obj1.length;i++) { obj3[i].value = obj1[i].value * obj2[i].value; if(obj3[i].value == "0") obj3[i].value = ""; } } function col2() { for(i=0;i<obj3.length;i++) { obj6[i].value = obj3[i].value * obj4[i].value; if(obj6[i].value == "0") obj6[i].value = ""; } } function col3() { for(i=0;i<obj5.length;i++) { m = obj1[i].selectedIndex; n = obj5[i].selectedIndex; val = EEs[m][n]; obj7[i].value = obj3[i].value * obj4[i].value * val; if(obj7[i].value == "0") obj7[i].value = ""; } } //--></script> <form> <div> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> <select class="AA"> <option value="">選択</option> <option value="40">あ</option> <option value="30">い</option> <option value="20">う</option> <option value="10">え</option> <option value="5">お</option> </select> </div> <div> <input type="text" class="BB"> <input type="text" class="BB"> <input type="text" class="BB"> <input type="text" class="BB"> <input type="text" class="BB"> </div> <div> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> <input type="text" class="CC" readonly> </div> <div> <select class="DD"> <option value="">選択</option> <option value="0.2">2割</option> <option value="0.3">3割</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> <select class="DD"> <option value="">選択</option> <option value="0.2">2割</option> <option value="0.3">3割</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> <select class="DD"> <option value="">選択</option> <option value="0.2">2割</option> <option value="0.3">3割</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> <select class="DD"> <option value="">選択</option> <option value="0.2">2割</option> <option value="0.3">3割</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> <select class="DD"> <option value="">選択</option> <option value="0.2">2割</option> <option value="0.3">3割</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> </div> <div> <select class="EE"> <option value="">選択</option> <option value="">か</option> <option value="">き</option> <option value="">く</option> <option value="">け</option> <option value="">こ</option> </select> <select class="EE"> <option value="">選択</option> <option value="">か</option> <option value="">き</option> <option value="">く</option> <option value="">け</option> <option value="">こ</option> </select> <select class="EE"> <option value="">選択</option> <option value="">か</option> <option value="">き</option> <option value="">く</option> <option value="">け</option> <option value="">こ</option> </select> <select class="EE"> <option value="">選択</option> <option value="">か</option> <option value="">き</option> <option value="">く</option> <option value="">け</option> <option value="">こ</option> </select> <select class="EE"> <option value="">選択</option> <option value="">か</option> <option value="">き</option> <option value="">く</option> <option value="">け</option> <option value="">こ</option> </select> </div> <div> <input type="text" class="FF" readonly> <input type="text" class="FF" readonly> <input type="text" class="FF" readonly> <input type="text" class="FF" readonly> <input type="text" class="FF" readonly> </div> <div> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> <input type="text" class="GG" readonly> </div> <input type="reset" value="クリア"> </form>
補足
leap_dayさん、ありがとうございます。 上手く説明できていないかも知れませんが、 AA---あ~お(1) BB---ユーザ入力(1) | | -- 〃 (2) -- 〃 (2) | | -- 〃 (3) -- 〃 (3) | | -- 〃 (4) -- 〃 (4) | | -- 〃 (5) -- 〃 (5) CC---{A(1)×B(1)×ユーザ入力(1)}を表示-- | | --{A(2)×B(2)×ユーザ入力(2)} 〃 | | | --{A(3)×B(3)×ユーザ入力(3)} 〃 | × 割合選択 | | --{A(4)×B(4)×ユーザ入力(4)} 〃 | ※ 1項目合計ごとに割合を掛ける | | --{A(5)×B(5)×ユーザ入力(5)} 〃 -- (例)割合を2割としたら {A(1)×B(1)×ユーザ入力(1)}×2割 {A(2)×B(2)×ユーザ入力(2)}×2割 DD---か~こ------AA項目で「あ」を選択したときに計算する数値 | | -- 〃 --- 〃 「い」 〃 | | -- 〃 --- 〃 「う」 〃 | | -- 〃 --- 〃 「え」 〃 | | -- 〃 --- 〃 「お」 〃 FF → CC項目を全部足した合計 GG → FF × DD(AA項目で選択したものによって、数値が違う) という感じなのですが…。 後、出来れば、計算ボタンは欲しいのですが、ボタンをクリックすると計算という形はできますか?
- VCAT
- ベストアンサー率20% (16/79)
これそっくりウェブ屋にもっていくと結構な料金で作ってくれる シロモノだよね(まさか、ウェブ屋が丸投げしてたりして)。 そうするともっといいのは、メンテまでしてくれるんだけど、 せっかく書いてあげても自分で修正やらできるのかなあ。 自分である程度勉強してからの方がよくないですか?
補足
VCATさん ウェブ屋ではありません。 計算シミュレーションとして使いたいと思っています。 自分で1から作成することは出来ませんが、 「ここをこうすれば、こうなるんじゃないか」ぐらいは分かると思っています。 やはり、質問しているような内容は、無謀なことなのでしょうか? ********** 1つ訂正です。 DD項目の割合は、一律での計算でできませんでしょうか?
関連するQ&A
- 選択による表示の可否を含めた複雑な計算表について
下記のような計算表を作りたいのですが… 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 という感じになります。 大変分かりにくいとは思いますが、ご教授の程よろしくお願いします。
- ベストアンサー
- JavaScript
- No.3909621の「JavaScriptで計算表」について追加の質問です
No.3909621で「JavaScriptで計算表」というタイトルで質問したのですが、 書き込めなくなりましたので、新たに質問させていただきます。 AA項目を「AA1」「AA2」のグループに分けています。 CC項目の表示も同じようにグループ分けで表示するようにしていただきましたが、 DD項目も例えば「AA1」グループが1~3、「AA2」グループが4~5で区切っているとした場合に、 「AA1」グループにDD項目の割合を掛ける 「AA2」グループにDD項目の割合をかける ※ グループごとに異なった割合を選択できる という具合にしたいのです。 バラバラに質問して、大変申し訳ないとは思いますが、 ご教授の程宜しくお願いします。
- ベストアンサー
- JavaScript
- selectのoptionを操作する
A、Bという2つのプルダウンメニューがあります。 Aにはaa、bb、ccという項目があらかじめ固定値で入っています。 Bは初期状態ではなにも表示されません。 Aのメニューからaaを選ぶと、Bにdd、eeという項目が表示されます。 Aのメニューからbb、ccを選んだ時はBのプルダウンメニューには何も表示されません。 Aからaaが選ばれたか判定するところまではできたのですが、Bのプルダウンメニューにdd、eeを表示させる方法がわかりません。 どのようにすればうまくいくでしょうか? HEAD部>> function GetMenu() { var index = tstFrm.menuA.selectedIndex; var str = tstFrm.menuA.options[index].value; if (str == "aa") { /************************************************/ /ここがわかりません /************************************************/ } } BODY部>> <form name="tstFrm" onChange="GetMenu()"> <select name="menuA"> <option value="aa">aa <option value="bb">bb <option value="cc">cc </select> <select name="menuB"> /************************************************/ /ここもわかりません /************************************************/ </select> menuAのvalueがaaの時に、menuBが <option value="dd">dd <option value="ee">ee menuAのvalueがbbまたはccの時に、menuBが <option value=""> となるようにしたいのです。 アドバイスお願い致します。 わかりにくくてすみません。
- ベストアンサー
- JavaScript
- SQL構文を手助けしてください
(1)のようなテーブルデータを(2)のように表示したいと思います。 AA,BB,CC,DD,EEは列名としてください。 (1) AA BB CC DD EE __________________________ 00 01 2004/01/01 XX YY 01 00 2004/01/01 XE YD 01 00 2004/01/05 XZ YZ 02 01 2004/01/10 X2 YE 02 02 2004/01/05 XW YI 02 02 2004/01/06 XF YL (2) AA BB CC DD EE __________________________ 00 01 2004/01/01 XX YY 01 00 2004/01/05 XZ YZ 02 01 2004/01/10 X2 YE 02 02 2004/01/06 XF YL <条件> AAとBBでキーを作り、CCのMAXの該当レコードを表示したい。 SELECT AA,BB,MAX(CC),DD,EE FROM TEST_TABLE GROUP BY AA,BB というような感じかなと思ったのですが、「GROUP BY の式ではありません」と怒られてしまいます。 どなたか簡単なやり方をご存知で無いでしょうか?
- ベストアンサー
- Oracle
- Accessで2つのカラムからユニークに抽出
inusrとoutusrからメールアドレスの一覧として aa@aa.com bb@bb.com cc@cc.com dd@dd.com ee@ee.com が取得できるようにするためのSQLを教えてください。 select b,c from inusr left join outusr on b=c ? に似たようなSQLになると思います。 テーブルは以下のようなものです。 できれば上に書きましたSQLのようにbとcに分かれてしまうのではなく 1つの変数で結果を取得したいです。 inusr a b 1 aa@aa.com 2 bb@bb.com 3 aa@aa.com 4 dd@dd.com 5 ee@ee.com outusr a c 1 cc@cc.com 2 bb@bb.com 3 ee@ee.com 4 aa@aa.com 5 ee@ee.com
- 締切済み
- その他(データベース)
- エクセルの集計計算について教えてください
期間を指定するとデータを引っ張ってきます データは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?を使用してでもいいので、短時間で出来る集計方法があれば教えてください。
- ベストアンサー
- Excel(エクセル)
- エクセルのセル分けについて教えてください。
エクセルで、1つのセルに aa,"bb","cc,"dd","ee" というように入力されています。 それをaa bb cc のようにそれぞれのセルに分けたいのですが、方法が分かりません。 ご存知の方がいらっしゃいましたら、教えてください。宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelで行を切り貼りをすると上書きされてしまうのでしょうか?
5行ある下2行を切り取って、1行目に移動したいのですが、 AA BB CC DD EE ↓こうならず、 DD EE AA BB CC ↓こうなります。 DD EE CC 上書きされるようです。 行のコピー&ペーストは挿入されないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel2003で他の列のデータをドロップダウンリストに
質問のし直しです。 下記の場合、B列でのドロップダウンリストに(aa bb cc dd ee)と表示させるには、どうしたら良いのでしょうか? A列 B列 bb dd aa ee bb ee cc dd aa bb 実際には文字列なのですが、1300行で、A列のデータは300個位在ります。 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 1セル内の複数データと表を一致させる
非常に難儀しております。 ご存知の方お教えください。 前提として表にそれぞれにコードがついています。 (|は別セルを表現) 肉まん | aa01 あんまん | bb01 カスタードマン | cc01 ピザマン | ee01 そして1つのセル内に複数のデータをランダムで 入力します。(最低でも二文字はあります) こんな感じ↓ 1)肉まん・あんまん・カスタードマン・ピザマン 2)カスタードマン・あんまん この時、結果を 1)aa01・bb01・cc01・ee01 2)cc01・bb01 と自動計算で表示することは可能でしょうか。 できれば計算式を含めてお教え願えませんでしょうか。 よろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
補足
leap_dayさん 何度も申し訳ありません。 >FF項目 >DD(1)*○割になってるけどCC(1)*○割の間違いです?? 申し訳ありません、leap_dayさんのおっしゃる通りです。 追加でお尋ねしても宜しいでしょうか? 現在、AA項目を1つのグループとして考えていますが、 ・AA項目を「AA1」と「AA2」に分ける。 ・FF項目の計算もグループ分けしたしたグループ毎に計算する (例) 「AA1」のグループ合計+「AA2」のグループ合計の計をFF項目に ※ 計算方法は変わらず ・GG項目 「AA1」グループの計算結果表示 「AA2」グループの計算結果表示 という具合に出来ますでしょうか? 何度も申し訳ありませんが、よろしくお願いします。