10秒目をつむったら…

エクセル初心者です。よろしくお願いします。

関数など全く分からない素人です。


今、制作している表は株式の収支表なのですが株には買う場合と売る場合があります。
株を買って売却した場合の関数はここで教えてもらい無事出来ました。

今回は株式収支表の売り設定なので、空売りの説明もしたいのですが出来るだけ
簡素に説明しているのでわかりにくい場合があると思います。
そのあたりは株取引のご経験がない方には申し訳ないと思っています。



【質問・なにがしたいのか】

今回は売りで取引があった場合にその関数を教えて頂きたいのです。

買いの場合は図の左端にあります青字で買とある列には関数は下記のように入れています。【これはここで教えて頂きました。】

画像リンクは避けたかったのですがここにアップすると詳細が見えないとの回答がありましたのでご理解ください。


http://or2.mobi/index.php?mode=image&file=7969.jpg

約定合計    =IF(ISBLANK(H4),"",G4*H4)

決算合計    =IF(ISBLANK(I4),"",G4*I4)

利益合計    =IF(ISBLANK(I4),"",M4-L4)

個別収益率% =IF(OR(H4="",I4=""),"",(M4-L4)/(G4*H4))

上記のように買の場合には教えて頂いた関数を入れています。

これを売りで取引する場合に画像(1)~(4)にはどのような関数を入れたらよいでしょうか。





株式売買の空売りとは

100円で売り建て(証券会社から一時的に借りて)売った株が値下がりして90円になったとします。

計算すると

100円-10円=90円

株価が90円になったわけですので売りの場合には証券会社に返済する金額は90円なので10円の利益となります。



今回は売りの場合の関数設定をドロップダウンリストを使って(1)~(4)の関数変更できるか教えて頂きたく思います。

また画像の左端には買、売、買越、売越、とあります。(買越、売越は前月をまたいで決算した場合に使います。)

株式取引には買から入る場合と売りから入る場合がありますので

左端でドロップダウンリストを買か売りを選択してから数値を入力していきたいのですが

このリストを買、売り、買越、売越と選択することで関数を変更できるようにするにはどの様にしたらいいでしょうか?


ドロップダウンリスト設定の方法は条件付き書式→セルの強調表示ルール→指定の値に等しい、にて設定しています。

買を選択した場合には買いの関数に、売を選択した場合には売りの関数の場合に変更するにはどの様に設定手順をしたらよいか

ご指導お願いいたします。


今回の質問はややこしくて回答者様が困惑しないか不安なのですが
あまり長文で説明するのも余計わかりにくいと思いましたので簡素に書いています。
ご不明な点があると思いますが

どうぞよろしくお願いいたします。

「エクセル2010のドロップダウンリストに」の質問画像

A 回答 (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が自動的に関数を修正してくれます。
    • good
    • 0
この回答へのお礼

kagakusukiさん、ANo.3で教えて頂いた通りの関数を全て入れて試しましたら
完全に作動しました。

買越、売越にも対応しており、完全な関数です。
サポートエンジニアさんの関数は買、売のみでしか計算されないようです。


ですのでkagakusukiさんのANo.3で教えて頂いた関数が正解です。有難うございました。

という事でベストアンサーに選ばせて頂きます。

本当にありがとうございました。<(_ _)>

お礼日時:2011/07/08 03:02

まさか自分の質問が何処にいったか判らなくなったわけではないでしょうに。


最初からやり直しという事でしょうか。
他の方に参考にして頂くまでもないでしょうけど
取り敢えず今までの質疑履歴。
http://oshiete.goo.ne.jp/qa/6835431.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

本当にエクセルは初心者で本当の素人なので
適切な関数を調べる事すら自分にとって難題ですので
皆様にご相談させて頂いております。

自分のような初心者というレベルの理解度はこんなに低いという事を
ご理解頂けましたらありがたく思います。

補足日時:2011/07/06 13:43
    • good
    • 0
この回答へのお礼

ご回答有難うございます。
参考にさせて頂きます。

お礼日時:2011/07/06 22:19

 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,"")),"")

この回答への補足

詳しいご回答有難うございます。当方、エクセルは初心者ですので

どこにどれを設定するかまで教えて頂かないと全く分かりませんでしたが
何とか今晩、試してみます。(只今仕事中なもので・・・)

今晩にまたわからない所があれば教えて下さい。
よろしくお願いします。

補足日時:2011/07/06 10:47
    • good
    • 0
この回答へのお礼

詳しい説明有難うございます。

サポートエンジニアさんからメールが来ましてアドバイスがあり
下記の関数を利益合計のセルに入れて試したところ買、売の設定が出来ました。

=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,"")),"")

聞いてばかりで申し訳ないですがよろしくお願いいたします。

お礼日時:2011/07/06 22:07

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)

この回答への補足

こんにちはご回答有難うございます。

このようなやり方もあるようですね。

ただ当方、初心者なものでどこのセルにどの関数を一個ずつ説明して頂けないと
わからない程の初心者です。<(_ _)>

宜しければ、もう少し具体的に説明して頂ければ大変助かります。

関数に漢字が入っているものもよく見かけますので興味がありますが
今の自分の知識では設定が出来ないのでご足労おかけいたしますが
補足して頂ければありがたく思います。

補足日時:2011/07/06 10:53
    • good
    • 0
この回答へのお礼

初心者にご回答有難うございます。

初心者の自分は下記のその時の計算式がわからなく申し訳ありません。


=IF(I4="","",IF(B4="買",M4-L4,IF(B4="売",L4-M4,IF(B4="買越",その時の計算式,IF(B4="売越",その時の計算式,"")))))

色んな方法があるようで初心者には理解が大変です。(^_^;)

もしよろしければ追加補足がありましたらお願いします。

お礼日時:2011/07/06 22:13

>今回は売りの場合の関数設定をドロップダウンリストを使って(1)~(4)の関数変更できるか教えて頂きたく思います。



式は IF文を使って、それぞれの計算式を記述することになります。
例えば 
約定合計    =IF(ISBLANK(H4),"",G4*H4)
では
=IF(ISBLANK(H4),"",IF(B4="買",ここに買の場合の式,IF(B4="売",ここに売りの場合の式,IF(B4="買超",ここに買超の場合の式,最後にそれ以外の場合の式))))
といった具合で関数式を記入すると B列で選択した文字に応じて計算がなされます。

この回答への補足

敏速にご回答、大変ありがたく思います。

当方、初心者なためにもう少し、具体的にどこのセルにどの関数を入れたら
どうなるかの補足がありましたら大変助かります。<(_ _)>

エクセルの設定も色々とあるようですし、どれを使おうか非常に迷っています。

補足頂けましたら、私のような初心者でもできるかと思います。

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

補足日時:2011/07/06 11:00
    • good
    • 0
この回答へのお礼

回答、有難うございました。

今、色々と試しています。

教えて頂きました関数ですが

=IF(ISBLANK(H4),"",IF(B4="買",ここに買の場合の式,IF(B4="売",ここに売りの場合の式,IF(B4="買超",ここに買超の場合の式,最後にそれ以外の場合の式))))

ここに買の場合の式の所等が初心者にはわかりません。理解不足でごめんなさい。

補足ありましたらお願いいたします。

お礼日時:2011/07/06 22:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!