- ベストアンサー
エクセル2010のドロップダウンリストの設定方法と関数について
- エクセル2010でドロップダウンリストを使い関数を設定する方法について説明します。
- 売りの場合の関数設定や空売りの利益計算についても解説します。
- ドロップダウンリストを使って関数を変更する方法を具体的に説明します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
回答番号ANo.3です。 >サポートエンジニアさんからメールが来ましてアドバイスがあり 下記の関数を利益合計のセルに入れて試したところ買、売の設定が出来ました。 >=IF(ISBLANK(I5),"",IF(B5="買",M5-L5,IF(B5="売",L5-M5))) その関数は、本当に一字一句間違いなく、サポートエンジニアの方のメールに書いておられた関数と同じなのでしょうか?(もし、間違いが無いのでしたら、その様な不完全な関数を教える様な方は、Excelの教えを乞うの際の当てにはされない方が宜しいかと思います) その関数は、Excelの関数としては不完全で、B5セルの値が、「買」でも「売」でもない場合に、何と表示させるのかが記述されていません。 又、G5セル(株数量欄)に何も入力されていない場合には、本来であればM5セルやL5セルは空欄となっているため、「利益合計」を計算出来ない筈であるにも関わらず、計算処理を行って、「0」と表示してしまう関数となっています。 >また教えて頂きました下記の関数に買越、売越の設定まで入れた場合にはどうなりますか? >=IF(AND(ISNUMBER(L4),ISNUMBER(M4)),IF(ISNUMBER(FIND("買",B4)),M4-L4,IF(ISNUMBER(FIND("売",B4)),L4-M4,"")),"") この関数は、B4セルの値が、「買」や「買越」の場合の様に、B4セルに入力されている文字列の中に、「買」の文字が含まれている場合には、「買」の場合と全く同様に、M4セル(決算合計欄)の値からL4セル(約定合計欄)の値を引き算した結果が表示されます。 B4セルの値が、「売」や「売越」の場合の様に、B4セルに入力されている文字列の中に、「売」の文字が含まれている場合には、「売」の場合と全く同様に、L4セル(約定合計欄)の値からM4セル(決算合計欄)の値を引き算した結果が表示されます。 そして、B4セルに入力されている文字列の中に、「買」と「売」のどちらも含まれていない場合には、何も表示しない様になっています。 ですから、例えばB4セルに「買いに非ず」等と入力しても、「買」として計算してしまいますから、注意して下さい。 それから、ANo.3では書き忘れておりましたが、ANo.3で述べた各関数を、4行目の中の、各所定のセルに入力してから、L4~O4の範囲をコピーして、5行目以下に貼り付ければ、貼り付けた関数が5行目以下の各行ごとに合う様に、Excelが自動的に関数を修正してくれます。
その他の回答 (4)
- end-u
- ベストアンサー率79% (496/625)
まさか自分の質問が何処にいったか判らなくなったわけではないでしょうに。 最初からやり直しという事でしょうか。 他の方に参考にして頂くまでもないでしょうけど 取り敢えず今までの質疑履歴。 http://okwave.jp/qa/q6835431.html?order=asc ワタシはこれでドロップアウトして、 現段階では以下のアドバイスで終わりにします。 N4セルに下記の数式をコピーペーストして、 N4セルをコピーして、N4以下、必要なセルまで貼り付けです。 =IF(ISBLANK(I4),"",(M4-L4)*IF(LEFT(B4,1)="売",-1,1)) >これが【売の場合】どう変わるのですか? この答えが『変わらない』であれば 変更する数式は「利益合計」だけで、 「個別収益率%」の数式はこの「利益合計」セルを参照させるだけで良いはずです。 #既に他の方も書かれてますが。 前スレッドの延長としての流れで-1を掛けてますが 他の方のアドバイスのように、条件によって 「約定合計」-「決算合計」なのか 「決算合計」-「約定合計」なのか 数式を変更する方針のほうが解かり易くて良いでしょうね。 「関数設定」..なんて難しく考えずに、 表の情報を元にどの項目がどういう条件の時に、 どの項目とどの項目を『どう計算させたいか』 それは貴方自身が解かってる事でしょうから、まずは 『もし「売買選択」の1文字目が"売"だったら「約定合計」-「決算合計」で それ以外だったら「決算合計」-「約定合計」とする』 ..というように考えて、適切な関数を調べるだけです。 必要なのはIF関数とLEFT関数で。あとは基本的な四則計算だけですよね。
お礼
ご回答有難うございます。 参考にさせて頂きます。
補足
こちらで返信を数日お待ちしておりましたが ご返信がなかったので再度、お聞きいたしました。 http://questionbox.jp.msn.com/qa6835431.html 本当にエクセルは初心者で本当の素人なので 適切な関数を調べる事すら自分にとって難題ですので 皆様にご相談させて頂いております。 自分のような初心者というレベルの理解度はこんなに低いという事を ご理解頂けましたらありがたく思います。
- kagakusuki
- ベストアンサー率51% (2610/5101)
ISBLANK関数で判定を行うと、参照先のセルに何らか関数が入力されていて、その計算結果としてセルの表示が空欄となっている場合等には、正しい判定が出来ません。 ですから、例えば、L4セルに数値が入力されている場合のみに、M4セルの値からL4セルの値を差し引いた値を表示し、L4セルが空欄か、或いは文字列が入力されている場合には何も表示しないようにする際に、 =IF(ISBLANK(L4),"",M4-L4) という関数としてしまうと、H4セルが空欄である場合にはL4セルには何も表示されないにも関わらず、L4セルには関数が入力されているために、ISBLANK関数では空欄とは見做されず、M4-L4の計算結果が表示されてしまいます。 又、L4セルに関数ではなく、何らかの文字が入力されている場合には、引き算を計算する事は出来ませんから、エラーが発生してしまいます。 それに、L4セルに数値が入力されているのか否かだけで判定を行ったのでは、L4セルにだけ数値が入力されていて、Mセルに数値が入力されていない場合でも、計算が行われてしまいます。 ですから、L4セルとM4セルの両方に数値が入力されている場合にのみ、M4セルの値からL4セルの値を差し引いた値を表示し、それ以外の場合には何も表示しない様にする場合には、 =IF(AND(ISNUMBER(L4).ISNUMBER(M4)),M4-L4,"") という関数とした方が良いと思います。 又、O4セルに入力されている関数である =IF(OR(H4="",I4=""),"",(M4-L4)/(G4*H4)) の中の (M4-L4)/(G4*H4) という部分に関してですが、 M4-L4 の値は、既にN4セルで計算されていますし、 G4*H4 の値も、既にM4セルで計算されていますから、再度計算する事は二度手間になります。 ですから、 (M4-L4)/(G4*H4) の部分は、 N4/M4 とする方が、一般的です。 これらの事を勘案しますと、L4セルの数式は次の様になります。 =IF(AND(ISNUMBER(G4),ISNUMBER(H4)),G4*H4,"") M4セルの数式は次の様になります。 =IF(AND(ISNUMBER(G4),ISNUMBER(I4)),G4*I4,"") O4セルの数式は次の様になります。 =IF(AND(ISNUMBER(L4),ISNUMBER(N4)),N4/L4,"") そして、上記の式であれば、L列、M列、O列の数式は、B列の入力値が「売」の場合と、「買」の場合のどちらであっても、同じ計算式となりますから、B列の入力値に応じて、計算式を変更する必要はありません。 但し、N列だけは、B列の入力値が「売」の場合と、「買」の場合では、値のプラスとマイナスが逆転しますから、IF関数をE;入れ子にして使用し、次の様な数式となります。 =IF(AND(ISNUMBER(L4),ISNUMBER(M4)),IF(ISNUMBER(FIND("買",B4)),M4-L4,IF(ISNUMBER(FIND("売",B4)),L4-M4,"")),"")
お礼
詳しい説明有難うございます。 サポートエンジニアさんからメールが来ましてアドバイスがあり 下記の関数を利益合計のセルに入れて試したところ買、売の設定が出来ました。 =IF(ISBLANK(I5),"",IF(B5="買",M5-L5,IF(B5="売",L5-M5))) ただこの関数には売越、買越の設定がないので売越、買越を選択するとFALSEとなります。 ですので上記の関数に売越、買越を設定すれば完全な関数となるようです。 また教えて頂きました下記の関数に買越、売越の設定まで入れた場合には どうなりますか? =IF(AND(ISNUMBER(L4),ISNUMBER(M4)),IF(ISNUMBER(FIND("買",B4)),M4-L4,IF(ISNUMBER(FIND("売",B4)),L4-M4,"")),"") 聞いてばかりで申し訳ないですがよろしくお願いいたします。
補足
詳しいご回答有難うございます。当方、エクセルは初心者ですので どこにどれを設定するかまで教えて頂かないと全く分かりませんでしたが 何とか今晩、試してみます。(只今仕事中なもので・・・) 今晩にまたわからない所があれば教えて下さい。 よろしくお願いします。
- KURUMITO
- ベストアンサー率42% (1835/4283)
L4セルには次の式を入力し下方にオートフィルドラッグします。 =IF(H4="","",G4*H4) M4セルには次の式を入力し下方にオートフィルドラッグします。 =IF(I4="","",G4*I4) N4セルには次の式を入力し下方にオートフィルドラッグします。 =IF(I4="","",IF(B4="買",M4-L4,IF(B4="売",L4-M4,IF(B4="買越",その時の計算式,IF(B4="売越",その時の計算式,""))))) O4セルには次の式を入力し下方にオートフィルドラッグします。 =IF(OR(N4="",L4=""),"",N4/L4)
お礼
初心者にご回答有難うございます。 初心者の自分は下記のその時の計算式がわからなく申し訳ありません。 =IF(I4="","",IF(B4="買",M4-L4,IF(B4="売",L4-M4,IF(B4="買越",その時の計算式,IF(B4="売越",その時の計算式,""))))) 色んな方法があるようで初心者には理解が大変です。(^_^;) もしよろしければ追加補足がありましたらお願いします。
補足
こんにちはご回答有難うございます。 このようなやり方もあるようですね。 ただ当方、初心者なものでどこのセルにどの関数を一個ずつ説明して頂けないと わからない程の初心者です。<(_ _)> 宜しければ、もう少し具体的に説明して頂ければ大変助かります。 関数に漢字が入っているものもよく見かけますので興味がありますが 今の自分の知識では設定が出来ないのでご足労おかけいたしますが 補足して頂ければありがたく思います。
- hallo-2007
- ベストアンサー率41% (888/2115)
>今回は売りの場合の関数設定をドロップダウンリストを使って(1)~(4)の関数変更できるか教えて頂きたく思います。 式は IF文を使って、それぞれの計算式を記述することになります。 例えば 約定合計 =IF(ISBLANK(H4),"",G4*H4) では =IF(ISBLANK(H4),"",IF(B4="買",ここに買の場合の式,IF(B4="売",ここに売りの場合の式,IF(B4="買超",ここに買超の場合の式,最後にそれ以外の場合の式)))) といった具合で関数式を記入すると B列で選択した文字に応じて計算がなされます。
お礼
回答、有難うございました。 今、色々と試しています。 教えて頂きました関数ですが =IF(ISBLANK(H4),"",IF(B4="買",ここに買の場合の式,IF(B4="売",ここに売りの場合の式,IF(B4="買超",ここに買超の場合の式,最後にそれ以外の場合の式)))) ここに買の場合の式の所等が初心者にはわかりません。理解不足でごめんなさい。 補足ありましたらお願いいたします。
補足
敏速にご回答、大変ありがたく思います。 当方、初心者なためにもう少し、具体的にどこのセルにどの関数を入れたら どうなるかの補足がありましたら大変助かります。<(_ _)> エクセルの設定も色々とあるようですし、どれを使おうか非常に迷っています。 補足頂けましたら、私のような初心者でもできるかと思います。 よろしくお願いいたします。
お礼
kagakusukiさん、ANo.3で教えて頂いた通りの関数を全て入れて試しましたら 完全に作動しました。 買越、売越にも対応しており、完全な関数です。 サポートエンジニアさんの関数は買、売のみでしか計算されないようです。 ですのでkagakusukiさんのANo.3で教えて頂いた関数が正解です。有難うございました。 という事でベストアンサーに選ばせて頂きます。 本当にありがとうございました。<(_ _)>