• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:夏・冬時間による日本時間の表示)

夏・冬時間による日本時間の表示

このQ&Aのポイント
  • Excel2010で、夏時間と冬時間による日本時間を表示する方法について教えてください。
  • 「損益計算」シートの開始日時と終了日時を日本時間で表示したいのですが、計算式が分かりません。夏時間と冬時間を考慮して表示する方法を教えてください。
  • 具体的な手順として、夏時間のGMTと開始日時、終了日時を「設定」シートに入力し、「損益計算」シートの開始日時と終了日時を日本時間で表示するための計算式を教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.37

>補足情報があります。 >> そうですか、では「月別結果」シートのV3セルに入力する関数は前回の回答で御伝えした通りで良いという事ですね。 > それでは必要ないかも知れませんが、日本時間における取引開始日時と取引終了日時の日付が異なる場合には取引日数を2日とカウントする場合の関数も、一応念のために御伝え致しておきます。 >>=IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMPRODUCT(NOT(ISERROR(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))*(COUNTIFS(損益計算!$B:$B,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$B:$B,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)+COUNTIFS(損益計算!$D:$D,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$D:$D,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)>0)),"") >この計算式で、「設定」シートの、 >「サーバー時間(GMT±)」「夏時間」(D3)を「3」、「冬時間」(E3)を「2」、 >「夏時間の開始・終了日時」「開始日時」(F3)を「3月第2日曜日2:00」、「終了日時」(G3)を「11月第1日曜日2:00」 とした場合しか確認していないのですが、2011年7月は最長でも21日しかありませんでしたが、表示結果が「22」となっておりました。 >「損益計算」シートで調べた結果、2011年7月分の「取引日数」は「21」日でした。  こちらで確認致しました処、2011年7月において取引が行われた日は2011/7/1、2011/7/4、2011/7/5、2011/7/6、2011/7/7、2011/7/8、2011/7/11、2011/7/12、2011/7/13、2011/7/14、2011/7/15、2011/7/18、2011/7/19、2011/7/20、2011/7/21、2011/7/22、2011/7/23、2011/7/25、2011/7/26、2011/7/27、2011/7/28、2011/7/29、の計22日でした。  又、前回の回答に対して頂いたお礼欄の中に記述されている >>=IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMPRODUCT(NOT(ISERROR(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))*(COUNTIFS(損益計算!$B:$B,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$B:$B,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)+COUNTIFS(損益計算!$D:$D,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$D:$D,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)>0)),"") という関数に関しましても、当方が試作したファイルに入力されているものと同一の関数である事を確認致しました。  又、当方が試作したファイルの「元データ」シートに入力されている「開始時刻」及び「終了時刻」のデータに関しましても、質問者様がアップロードされた「MT損益計算用データ」というファイルの中の「開始時刻」及び「終了時刻」のデータと同一のデータとなっている事を確認致しました。  ですから、 >2011年7月は最長でも21日しかありませんでした という話に間違いが無いかどうか、再度御確認願います。

miya_HN
質問者

お礼

回答ありがとうございます。 申し訳ありません。 回答者様のおっしゃる通り、「損益計算」シートで再度調べたところ22日でした。 焦って確認したせいか抜けていた部分がありました。 日本時間では、2011年7月23日 0:31:00(開始日時)~2011年7月23日 1:06:00(終了日時)となっており、土曜日に行われていました。 土・日・元日は、取り引きが行われていないというのが一般的に言われていることなんですが、土曜日に限っては厳密に金曜日の23:59:59に終了というわけではなく、土曜日の早朝まで取り引きが行われていまして、本来ならそこまで計算に入れなければならなかったんです。 ですが、ここではもうそれができないため、新規の質問を検討したいと思います。 正しいご指摘、ありがとうございます。 また、この件に関しまして質問する際には是非とも回答をいただけたら大変ありがたいです。 ありがとうございました。

その他の回答 (36)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.36

>厳密に言うと「取引が日をまたいでいること」で「開始日」、「取引日数」ともに異なる部分はあるのですが、計算式としましては、「開始日」、「取引日数」、いずれも完璧に合っていました。 >これは自分の落ち度でありますが、誤差範囲とし、当分この計算式でいこうと思います。  そうですか、では「月別結果」シートのV3セルに入力する関数は前回の回答で御伝えした通りで良いという事ですね。  それでは必要ないかも知れませんが、日本時間における取引開始日時と取引終了日時の日付が異なる場合には取引日数を2日とカウントする場合の関数も、一応念のために御伝え致しておきます。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMPRODUCT(NOT(ISERROR(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))*(COUNTIFS(損益計算!$B:$B,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$B:$B,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)+COUNTIFS(損益計算!$D:$D,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$D:$D,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)>0)),"")

miya_HN
質問者

お礼

回答ありがとうございます。 再び回答を頂けて非常に感謝しております。 質問の締切期限まで残り少ないため、回答者の方々に評価せずそのまま締め切りになっては申し訳ないので、新規に質問しようと考えていました。 ですが、回答者様からせっかく新たな回答を頂いたため、自分もそれなりに考えました。 あまり考える時間がないため、2011年1月分のみの「取引日数」(V3)しか考えていないのですが、 「損益計算」シートの「取引開始日時(日本時間)」(B3以下)、「取引終了日時(日本時間)」(D3以下)での2011年1月分のみなのですが、開始日時~終了日時(年・月省略、カッコ内「()」は「取引日数」)を簡単に表示しますと、 3日~4日(2日分) 4日(重複によりカウントせず) 5日(1日分) 6日~7日(2日分) 7日(重複によりカウントせず) 11日(1日分) 12日(1日分) 13日(1日分) 14日~15日(2日分) 17日(1日分) 18日(1日分) 19日(1日分) 20日(1日分) 21日(1日分) 24日(1日分) 24~25日(24日は重複するため、1日分) 26日(1日分) 27日(1日分) 29日(1日分) と、2011年1月分の取引日数は20日間となり、その期間内しか確認していないのですが、回答者様の回答では合っていました。 なお、月をまたぐ場合はありますが、2日間以上またぐ(あくまで1日間)場合は考えておりません。 あまり時間がなかったため全て確認する余裕がなかったのですが、ありがとうございます。 また、回答者様の計算式の表示結果を確認するためにある程度時間を要します。 これに対して新たに回答を頂いても構わないのですが、締め切りが迫っているため、お礼できるか分かりません。できる限りしようとは思いますが。 前述の通り、締め切りまでに回答者の方々に評価せずそのまま締め切りになっては大変申し訳ないため、その場合、新規に質問させていただきます。 何度も自分の質問以上のことを考え、回答を頂けたことに対しましては、感謝しても感謝しきれません。 ありがとうございました。

miya_HN
質問者

補足

補足情報があります。 > そうですか、では「月別結果」シートのV3セルに入力する関数は前回の回答で御伝えした通りで良いという事ですね。  それでは必要ないかも知れませんが、日本時間における取引開始日時と取引終了日時の日付が異なる場合には取引日数を2日とカウントする場合の関数も、一応念のために御伝え致しておきます。 >=IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMPRODUCT(NOT(ISERROR(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))*(COUNTIFS(損益計算!$B:$B,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$B:$B,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)+COUNTIFS(損益計算!$D:$D,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$D:$D,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)>0)),"") この計算式で、「設定」シートの、 「サーバー時間(GMT±)」「夏時間」(D3)を「3」、「冬時間」(E3)を「2」、 「夏時間の開始・終了日時」「開始日時」(F3)を「3月第2日曜日2:00」、「終了日時」(G3)を「11月第1日曜日2:00」 とした場合しか確認していないのですが、2011年7月は最長でも21日しかありませんでしたが、表示結果が「22」となっておりました。 「損益計算」シートで調べた結果、2011年7月分の「取引日数」は「21」日でした。 これに関しまして、「設定」シートの各項目を変更し確認後、新規の質問にて近々回答者様に個別に質問したいと考えております。 確認には少し時間がかかるため、新規の質問としたいのですがお手数ですが、そのときはどうぞよろしくお願いします。 本質問にここまで回答してくださり、ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.35

>「月別結果」シートのT1に「取引開始・終了日」と入力し、T1、U1のセルを結合、T2に「開始日」とし、T3以下にその「開始日」の計算式を入れ、「最終日」の項目であったT行をU行に移動し(こっちが先の作業となりますが)、「最終日」の文字を「終了日」に変更、「終了日」の文字をU2に入力、V1に「取引日数」の文字を入れ、V1、V2のセルを結合、V3以下に取引日数の計算式を入れたいのですが、どのようにすればいいでしょうか?  確認したい事が御座います。 >集計基準は前述の通り、日本時間としての取引終了日時です。 との事ですが、T列の「開始日」を求める際の集計基準は「日本時間としての取引終了日時」(「損益計算」シートのD列の値)ではなく「日本時間としての取引開始日時」(「損益計算」シートのB列の値)という事で宜しいでしょうか?  それで宜しければ「月別結果」シートのT3セルに入力する関数の一例は次の様なものとなります。(4行目以下の関数に関しては、3行目の関数をコピー&貼り付けて下さい) =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SMALL(損益計算!$B:$B,COUNTIF(損益計算!$B:$B,"<"&DATE($A3,$B3,1))+1),"")  それから、日本時間を基準とした場合、取引が日をまたいでいる時間帯に行われる事で、(単独の取引における)取引開始日と取引終了日が異なる日付となってしまう例が出て来る恐れがありますが、その様な場合も「集計基準は前述の通り、日本時間としての取引終了日時」という条件を優先して、取引に要した日数を1日と見做すのでしょうか?  取りあえず、取引が日本時間で日をまたいでいる場合においても取引日数は1日と見做す場合には、V3セルに入力する関数は次の様なものとなります。(4行目以下の関数に関しては、3行目の関数をコピー&貼り付けて下さい) =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMPRODUCT(NOT(ISERROR(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))*(COUNTIFS(損益計算!$D:$D,">="&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,))))),損益計算!$D:$D,"<"&DATE($A3,$B3,ROW(INDIRECT("Z1:Z"&DAY(DATE($A3,$B3+1,)))))+1)>0)),"")

miya_HN
質問者

お礼

回答ありがとうございます。 >との事ですが、T列の「開始日」を求める際の集計基準は「日本時間としての取引終了日時」(「損益計算」シートのD列の値)ではなく「日本時間としての取引開始日時」(「損益計算」シートのB列の値)という事で宜しいでしょうか?  それで宜しければ「月別結果」シートのT3セルに入力する関数の一例は次の様なものとなります。(4行目以下の関数に関しては、3行目の関数をコピー&貼り付けて下さい) 大変申し訳ありません。 「開始日」の場合は、「日本時間としての取引終了日時」ではなく回答者様のおっしゃる通り、「日本時間としての取引開始日時」でした。 > それから、日本時間を基準とした場合、取引が日をまたいでいる時間帯に行われる事で、(単独の取引における)取引開始日と取引終了日が異なる日付となってしまう例が出て来る恐れがありますが、その様な場合も「集計基準は前述の通り、日本時間としての取引終了日時」という条件を優先して、取引に要した日数を1日と見做すのでしょうか?  取りあえず、取引が日本時間で日をまたいでいる場合においても取引日数は1日と見做す場合には、V3セルに入力する関数は次の様なものとなります。(4行目以下の関数に関しては、3行目の関数をコピー&貼り付けて下さい) 取引が日をまたいでいることを見落としていました。 「設定」シートの「サーバー時間(GMT±)」「夏時間」(D3)、「冬時間」(E3)、「夏時間の開始・終了日時」「開始日時」(F3)、「終了日時」(G3)を全て変更し、合っているか全て確認しました。 厳密に言うと「取引が日をまたいでいること」で「開始日」、「取引日数」ともに異なる部分はあるのですが、計算式としましては、「開始日」、「取引日数」、いずれも完璧に合っていました。 これは自分の落ち度でありますが、誤差範囲とし、当分この計算式でいこうと思います。 もしかしたら、この部分を変更することになるかもしれませんが、そのときはよろしくお願いします。 長期間に渡り回答を頂き、自分の質問の誤りにも察していただき的確な回答をしてくださり、非常に感謝しております。 また、ここまで長くなってしまったことを深くお詫び申し上げます。 そして、Excel関数にはほとんど知識がないのでほぼ分からない式ばかりだったのですが、IS関数の使い方は基本中の基本なんでしょうけど初めて分かりました。非常に勉強になりました。 Excelファイル自体は100%完成というわけではありませんが、ほぼ完成に近い状態となりました。 また改めてこのExcelファイルについて新規に質問するときがあるかもしれませんが、そのときはどうぞよろしくお願いします。 今まで本当にありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.34

>●確定時の日時 > 「月別結果」シートの、 > 「Pips」の「利益」(C3以下)、「損失」(D3以下)、 > 「エントリー回数」の「勝ち」(H3以下)、「負け」(I3以下)、「引分」(J3以下)、 > 「金額」の「利益」(M3以下)、「損失」(N3以下)、 >の場合、日をまたぐ場合があります。 >C3のみではなく上記で記載した「●確定時の日時」の項目のセルを全て「損益計算!$B:$B」から「損益計算!$D:$D」に変更しました。 > 各項目の数値を確認し、全て合っていることは確認しました。 > 「損益計算!$D:$D」に変更した計算式は合っているのでしょうか?  はい、単純に月別の集計の基準となる日付として、修正前は日本時間における取引開始日時を使っていた所を、日本時間における取引終了日時を基準にする様に変更しているだけという事になりますので、関数としては合っています。  只、念のために申し上げておきますが、「合っている」というのはあくまで「『日本時間における取引終了日時を基準にする様にする場合』における関数の構造としては」の話という意味であって、集計の基準となる日時としてどの日時を使えば良いのかという事の方に関しましては、質問者様が決めるべき事柄であり、私がどうこう言える様なものではない事は念頭に置いておかれるよう願います。  後、日本時間における取引終了日時を月別の集計の基準となる日付とされるのであれば、「月別結果」シートの「年」や「月」を求める際にも、日本時間における取引終了日時を基準に求める様にすべきではないかと思われますので、「月別結果」シートのA3以下の関数と、B3以下の関数に関しましても、関数中で「損益計算!$B:$B」となっている箇所を「損益計算!$D:$D」に変更すべきかと思います。

miya_HN
質問者

お礼

回答ありがとうございます。 >只、念のために申し上げておきますが、「合っている」というのはあくまで「『日本時間における取引終了日時を基準にする様にする場合』における関数の構造としては」の話という意味であって、集計の基準となる日時としてどの日時を使えば良いのかという事の方に関しましては、質問者様が決めるべき事柄であり、私がどうこう言える様なものではない事は念頭に置いておかれるよう願います。 「『日本時間における取引終了日時を基準にする様にする場合』における関数の構造としては」合っているという点につきましては了解しました。 集計の基準は、日本時間としての1ヶ月分ごとと考えておりますので、恐らく今後も変えることはありません。 回答者様の回答で確認できてよかったです。 > 後、日本時間における取引終了日時を月別の集計の基準となる日付とされるのであれば、「月別結果」シートの「年」や「月」を求める際にも、日本時間における取引終了日時を基準に求める様にすべきではないかと思われますので、「月別結果」シートのA3以下の関数と、B3以下の関数に関しましても、関数中で「損益計算!$B:$B」となっている箇所を「損益計算!$D:$D」に変更すべきかと思います。 う~ん、そうですか。 基本的には、月別の「年」と「月」は日本時間としての取引開始日時と考えていたんですが、集計の基準を取引終了日時(日本時間)に統一した方がいいですね。「月別結果」シートの「年」、「月」の結果も変わらないですし。 ありがとうございます。 最後にお願いがあります。 「月別結果」シートのT1に「取引開始・終了日」と入力し、T1、U1のセルを結合、T2に「開始日」とし、T3以下にその「開始日」の計算式を入れ、「最終日」の項目であったT行をU行に移動し(こっちが先の作業となりますが)、「最終日」の文字を「終了日」に変更、「終了日」の文字をU2に入力、V1に「取引日数」の文字を入れ、V1、V2のセルを結合、V3以下に取引日数の計算式を入れたいのですが、どのようにすればいいでしょうか? 「取引日数」は、一応念のためその月に取り引きした日数であって件数ではありません。 集計基準は前述の通り、日本時間としての取引終了日時です。 「開始日」は、回答者様の計算式を利用し、検索してどうにか開始日を導き出したかったのですが結局うまくいきませんでした。 何度も言いますが本質問を大幅に逸脱してしまい、本当に申し訳ありません。 ここでの質問はこれで最後とさせていただきます。 大変恐縮ですが、回答よろしくお願いします。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.33

 回答No.32の続きです。  次に、「損益計算」シートのD3セルに入力されている関数を次の様に変更して下さい。 =IF(ISNUMBER($C3),IF(OR(設定!$I$3="無",AND(IF(ISNUMBER(設定!$K$3),MONTH(DATE(YEAR($C3),設定!$J$3,8-WEEKDAY(YEAR($C3)&"/"&設定!$J$3,FIND(設定!$L$3,"日月火水木金土")+10)+(設定!$K$3-1)*7))=設定!$J$3,設定!$K$3="最終"),IF(ISNUMBER(設定!$P$3),MONTH(DATE(YEAR($C3),設定!$O$3,8-WEEKDAY(YEAR($C3)&"/"&設定!$O$3,FIND(設定!$Q$3,"日月火水木金土")+10)+(設定!$P$3-1)*7))=設定!$O$3,設定!$P$3="最終"))),TEXT($C3+(9-IF(IF(設定!$I$3="有",COUNTIF($C3,">"&DATE(YEAR($C3),設定!$J$3+(設定!$K$3="最終"),8-WEEKDAY(DATE(YEAR($C3),設定!$J$3+(設定!$K$3="最終"),1),FIND(設定!$L$3,"日月火水木金土")+10)+(SUM(設定!$K$3)-1)*7)+設定!$M$3)+COUNTIF($C3,"<"&DATE(YEAR($C3),設定!$O$3+(設定!$P$3="最終"),8-WEEKDAY(DATE(YEAR($C3),設定!$O$3+(設定!$P$3="最終"),1),FIND(設定!$Q$3,"日月火水木金土")+10)+(SUM(設定!$P$3)-1)*7)+設定!$R$3)-(設定!$N$3<>"翌年"),FALSE),設定!$D$3,設定!$E$3))/24+0.000001,"yyyy/m/d h:m:s")+0,"変換不能"),"")  次に、「損益計算」シートのD3セルをコピーして、「損益計算」シートのD4以下に貼り付けて下さい。  後、元データが存在しない場合において、「ストラテジー評価」シートで表示を行わない様にする件ですが、まず、「トレード」の「エントリー回数」の「総数」を表示するD1セルに入力されている関数を次の様に変更して下さい。 =IF(COUNT(損益計算!$I:$I),COUNT(損益計算!$I:$I),"")  次に、「トレード」の「エントリー回数」の「勝ち」を表示するD2セルに入力されている関数を次の様に変更して下さい。 =IF(SUM($D$1),COUNTIF(損益計算!$I:$I,">0"),"")  次に、「トレード」の「エントリー回数」の「負け」を表示するD3セルに入力されている関数を次の様に変更して下さい。 =IF(SUM($D$1),COUNTIF(損益計算!$I:$I,"<0"),"")  次に、「トレード」の「エントリー回数」の「引分」を表示するD4セルに入力されている関数を次の様に変更して下さい。 =IF(SUM($D$1),COUNTIF(損益計算!$I:$I,0),"")  次に、「トレード」の「最大利益(pips)」を表示するD7セルに入力されている関数を次の様に変更して下さい。 =IF(SUM($D$2),MAX(損益計算!$I:$I),"-")  次に、「トレード」の「最大損失(pips)」を表示するD8セルに入力されている関数を次の様に変更して下さい。 =IF(SUM($D$3),MIN(損益計算!$I:$I),"-")  次に、「収益」の「損益(円)」を表示するD14セルに入力されている関数を次の様に変更して下さい。 =IF(COUNT(損益計算!$J:$J),SUM(損益計算!$J:$J),"")  以上です。

miya_HN
質問者

お礼

回答ありがとうございます。 8月2日は、恐らく休日だったのではないでしょうか? 日曜日にも関わらず、貴重な時間を割いていただき申し訳ありません。 >済みませんこれは私が間違っておりました。  「NETWORKDAYS(開始日,終了日,祭日)」の祭日の部分には、「祭日のリストを記入したセル範囲」を指定するのが一般的なやり方であるため、シリアル値を直接入れても動作するとは存じませんでした。  因みに、各月の土日を除いた日数を求める際に、1月のみ1日からではなく2日から月末までの日数を求めるのでしたら、次の様にする方法もあります。 >=IF(ISNUMBER(($A3&"/"&$B3&"/1")+0),NETWORKDAYS(DATE($A3,$B3,1+($B3=1)),DATE($A3,$B3+1,)),"") 「祭日のリストを記入したセル範囲」を指定するのが一般的な方法なんですね。 1月だけ1日を除いた計算式を教えて頂きありがとうございます。 >それでしたら「ストラテジー評価」シートのD22セルの関数は次の様に変更して下さい。 >=IFERROR(-SUMIF(損益計算!$I:$I,">0")/SUMIF(損益計算!$I:$I,"<0"),"-") > 同様に、「ストラテジー評価」シートのD24セルの関数は次の様に変更して下さい。 >=IFERROR((SQRT($D$2)-$D$2)*$D$15/($D$3+SQRT($D$3))/$D$16,"-") ありがとうございます。 上記の関数により絶対値となりました。 >申し訳御座いません。質問者様がアップロードされたファイルを基に、バックアップとして「損益計算」シート~「ストラテジー評価」シートのコピーシートを作成した上で、改良点を探るという方法を採っていたのですが、ファイルが重くなり過ぎたためなのか、或いは確認のために同時に開いていたOKWaveを始めとするネットのページが悪かったのか、しばしばフリーズを起したため、止む無くタクスマネージャーでExcelを強制終了してやり直さねばならない事が何回か御座いました。  「損益計算」シートのD列の関数に関しては、おそらく、強制終了前に自動保存されたファイルを使った際に、改良が完全には終了していない段階の関数が紛れ込んでしまったのではないかと思います。 そうでしたか。 非常に時間がかかったのではないかと思います。 大変ご苦労をおかけしました。 >申し訳御座いません。「翌年」という表現に惑わされて、夏時間期間の設定を勘違いしておりました。  それで修正案ですが、まず「設定」シートのI3セルに入力されている関数を次の様に変更して下さい。 以下省略。 こちらこそ、申し訳ありません。 説明不足だったでしょうか。 記載の計算式により、正しい表示結果を確認できました。 >後、元データが存在しない場合において、「ストラテジー評価」シートで表示を行わない様にする件ですが、まず、「トレード」の「エントリー回数」の「総数」を表示するD1セルに入力されている関数を次の様に変更して下さい。 以下省略。 「元データ」シートのデータを全て削除したところ、記載の計算式により空白にできたことを確認できました。 ただ、回答者様が記載していただいた計算式のセル(「ストラテジー評価」シートのD1、D2、D3、D4、D7、D8、D14)以外にも「-」と表示されていた部分があったため、計算式にある「"-"」の部分を「""」に変更し全て空白としました。 そして、全ての確認ができました。 結果から言いますと全てにおいて正確な表示結果が出ました。 「設定」シートの「サーバー時間(GMT±)」「夏時間」(D3)、「冬時間」(E3)、「夏時間の開始・終了日時」「開始日時」(F3)、「終了日時」(G3)の値を変更し、 「損益計算」シート・「月別結果」シート・「ストラテジー評価」シートの全ての項目の確認をしました。 また、「元データ」シートにデータが存在しない場合、「損益計算」シート・「月別結果」シート・「ストラテジー評価」シートの全項目が空白になっていることも確認できました。 自分の不備や追加・変更、説明不足などがあり、また、本質問を超過する作業をしていただきまして長期にわたってしまったことに対しまして大変申し訳なく思うとともに、回答を頂きファイル自体の完成に近づき、非常に感謝しております。 しかし、確認しているうちに気付いたことがありまして「月別結果」シートのことなんですが、「年」(A3以下)、「月」(B3以下)は、日本時間としての開始日時(「損益計算」シートの「取引開始日時」「日本時間」(B3以下))を下記の計算式を基準としていいのですが、 A3: =IF(OR(ISNUMBER($A2),ROWS($A$3:$B3)=1),IF(COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)),YEAR(LARGE(損益計算!$B:$B,COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)))),""),"") B3: =IF(OR(ISNUMBER($B2),ROWS($A$3:$B3)=1),IF(COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)),MONTH(LARGE(損益計算!$B:$B,COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)))),""),"") ---------------------------------------------------------------------------------------------------- ●確定時の日時 「月別結果」シートの、 「Pips」の「利益」(C3以下)、「損失」(D3以下)、 「エントリー回数」の「勝ち」(H3以下)、「負け」(I3以下)、「引分」(J3以下)、 「金額」の「利益」(M3以下)、「損失」(N3以下)、 ---------------------------------------------------------------------------------------------------- の場合、日をまたぐ場合があります。 例えば、日本時間で開始日時が「2012年2月29日 23:01:00」で、終了日時が「2012年3月1日 2:38:00」のような場合です。 この場合、まだ2012年2月以内では損益が確定しておらず、2012年3月に確定したことになります。 そのため、上記の「Pips」の「利益」(C3以下)、「損失」(D3以下)などは2012年3月分に入れなければならないことに気付きました。 「Pips」の「利益」の項目であるC3は、回答者様の計算式では、 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMIFS(損益計算!$I:$I,損益計算!$I:$I,">0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"") となっておりました。 そこで、計算式にある「損益計算!$B:$B」の部分を全て「損益計算!$D:$D」に変更しました。 「Pips」の「利益」の項目であるC3は、下記のように計算式を変更しました。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMIFS(損益計算!$I:$I,損益計算!$I:$I,">0",損益計算!$D:$D,">="&$A3&"/"&$B3&"/1",損益計算!$D:$D,"<"&DATE($A3,$B3+1,1)),"") C3のみではなく上記で記載した「●確定時の日時」の項目のセルを全て「損益計算!$B:$B」から「損益計算!$D:$D」に変更しました。 各項目の数値を確認し、全て合っていることは確認しました。 「損益計算!$D:$D」に変更した計算式は合っているのでしょうか? 大変申し訳ありませんが、回答よろしくお願いします。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.32

>なぜ、元日を除外する式ではないのでしょうか?  済みませんこれは私が間違っておりました。  「NETWORKDAYS(開始日,終了日,祭日)」の祭日の部分には、「祭日のリストを記入したセル範囲」を指定するのが一般的なやり方であるため、シリアル値を直接入れても動作するとは存じませんでした。  因みに、各月の土日を除いた日数を求める際に、1月のみ1日からではなく2日から月末までの日数を求めるのでしたら、次の様にする方法もあります。 =IF(ISNUMBER(($A3&"/"&$B3&"/1")+0),NETWORKDAYS(DATE($A3,$B3,1+($B3=1)),DATE($A3,$B3+1,)),"") ■確認2: >・「収益」「プロフィットファクター(PF)」「pips」の項目(D22) >・「収益」「調整プロフィットファクター(APF)」「pips」の項目(D24) >につきましては回答者様ではなく、自分が作った計算式に誤りがありました。 >これらは、絶対値でありマイナスにはなりません。  それでしたら「ストラテジー評価」シートのD22セルの関数は次の様に変更して下さい。 =IFERROR(-SUMIF(損益計算!$I:$I,">0")/SUMIF(損益計算!$I:$I,"<0"),"-")  同様に、「ストラテジー評価」シートのD24セルの関数は次の様に変更して下さい。 =IFERROR((SQRT($D$2)-$D$2)*$D$15/($D$3+SQRT($D$3))/$D$16,"-") ■確認1: >「取引終了日時」の「日本時間」の項目のD行(D3以下)ですが、結果が異なります。  申し訳御座いません。質問者様がアップロードされたファイルを基に、バックアップとして「損益計算」シート~「ストラテジー評価」シートのコピーシートを作成した上で、改良点を探るという方法を採っていたのですが、ファイルが重くなり過ぎたためなのか、或いは確認のために同時に開いていたOKWaveを始めとするネットのページが悪かったのか、しばしばフリーズを起したため、止む無くタクスマネージャーでExcelを強制終了してやり直さねばならない事が何回か御座いました。  「損益計算」シートのD列の関数に関しては、おそらく、強制終了前に自動保存されたファイルを使った際に、改良が完全には終了していない段階の関数が紛れ込んでしまったのではないかと思います。 ■確認4: >変更例3: >「夏時間の開始・終了日時」「開始日時」(F3):10月第1日曜日2:00 >「夏時間の開始・終了日時」「終了日時」(G3):翌年4月第1日曜日3:00 >「変更例1~2」と同様、D行に誤りがある上、「取引開始日時」「日本時間」の項目(B3以下)が異なっていました。  申し訳御座いません。「翌年」という表現に惑わされて、夏時間期間の設定を勘違いしておりました。  それで修正案ですが、まず「設定」シートのI3セルに入力されている関数を次の様に変更して下さい。 =IF($D3&$E3&$F3&$G3="","",IF(AND($D3>=-12,$D3<=14,COUNTIF($F3,"*?月???曜日*?:??"),ISNUMBER(("1904年"&LEFT($F3,FIND("月",$F3)))+FIND(MID($F3,FIND("曜日",$F3)-1,1),"月火水木金土日")+1/(REPLACE($F3,1,FIND("曜日",$F3)+1,)+0>=0)/(REPLACE($F3,1,FIND("曜日",$F3)+1,)+0<1)),COUNTIF($G3,"*?月???曜日*?:??"),ISNUMBER(("1904年"&REPLACE(LEFT($G3,FIND("月",$G3)),1,2*COUNTIF($G3,"翌年*"),))+FIND(MID($G3,FIND("曜日",$G3)-1,1),"月火水木金土日")+1/(REPLACE($G3,1,FIND("曜日",$G3)+1,)+0>=0)/(REPLACE($G3,1,FIND("曜日",$G3)+1,)+0<1)/NOT(AND(LEFT($G3,2)="翌年",LEFT($F3,FIND("月",$F3)-1)*10+MATCH(MID($F3,FIND("月",$F3)+1,2),{"第1","第2","第3","第4","第5","最終"},0)<REPLACE(LEFT($G3,FIND("月",$G3)-1),1,2*COUNTIF($G3,"翌年*"),)*10+MATCH(MID($G3,FIND("月",$G3)+1,2),{"第1","第2","第3","第4","第5","最終"},0))))),"有",IF(AND($E3>=-12,$E3<=14,$D3&$F3&$G3=""),"無","無効な設定")))  次に、「設定」シートのN2セルに入力されている項目名を「年」に変更して下さい。  次に、「設定」シートのN3セルに入力されている関数を次の様に変更して下さい。 =IF($I3="有",IF(OR(LEFT($G3,2)="翌年",$J3+SUM($K3)+($K3="最終")*6>$O3+SUM($P3)+($P3="最終")*6),"翌年","同年"),"")  次に、「損益計算」シートのB3セルに入力されている関数を次の様に変更して下さい。 =IF(ISNUMBER($A3),IF(OR(設定!$I$3="無",AND(IF(ISNUMBER(設定!$K$3),MONTH(DATE(YEAR($A3),設定!$J$3,8-WEEKDAY(YEAR($A3)&"/"&設定!$J$3,FIND(設定!$L$3,"日月火水木金土")+10)+(設定!$K$3-1)*7))=設定!$J$3,設定!$K$3="最終"),IF(ISNUMBER(設定!$P$3),MONTH(DATE(YEAR($A3),設定!$O$3,8-WEEKDAY(YEAR($A3)&"/"&設定!$O$3,FIND(設定!$Q$3,"日月火水木金土")+10)+(設定!$P$3-1)*7))=設定!$O$3,設定!$P$3="最終"))),TEXT($A3+(9-IF(IF(設定!$I$3="有",COUNTIF($A3,">"&DATE(YEAR($A3),設定!$J$3+(設定!$K$3="最終"),8-WEEKDAY(DATE(YEAR($A3),設定!$J$3+(設定!$K$3="最終"),1),FIND(設定!$L$3,"日月火水木金土")+10)+(SUM(設定!$K$3)-1)*7)+設定!$M$3)+COUNTIF($A3,"<"&DATE(YEAR($A3),設定!$O$3+(設定!$P$3="最終"),8-WEEKDAY(DATE(YEAR($A3),設定!$O$3+(設定!$P$3="最終"),1),FIND(設定!$Q$3,"日月火水木金土")+10)+(SUM(設定!$P$3)-1)*7)+設定!$R$3)-(設定!$N$3<>"翌年"),FALSE),設定!$D$3,設定!$E$3))/24+0.000001,"yyyy/m/d h:m:s")+0,"変換不能"),"")  次に、「損益計算」シートのB3セルをコピーして、「損益計算」シートのB4以下に貼り付けて下さい。 ※まだ途中なのですが、そろそろこのサイトの回答欄に入力可能な文字数の限度を超えてしまいますので、残りは又後に投稿致します。

miya_HN
質問者

お礼

回答者の皆様方ありがとうございます。 長い間、付き合っていただいたことに対しましてお詫び申し上げます。 また、ここまで回答をくださった方々に非常に感謝しております。 ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.31

 済みません、「作りなおしたブック」に関する回答の中で一部抜けがありました。  各シートの説明で3行目にしか関数を入力する様にしか説明しておりませんでしたが、「損益計算」シートと「月別結果」シートに関しては4行目以下にも関数が必要となりますので、3行目をコピーして4行目以下に貼り付けて下さい。  質問者様が作られた「MT損益計算 - テスト」のブックで使用されていた関数の中には、3行目と4行目以下で異なる関数が使用されている箇所も一部には御座いましたが、私が提案した「作りなおしたブック」の場合は3行目の関数をコピー&ペーストする事で、4行目以下にも対応可能なものとなっている筈ですので御確認下さい。 >「損益計算」シートの、M3、N3の「ISERROR(SEARCH("JPY",J3,1))=FALSE」という部分は、「JPY」(日本円という意味です)を含んだ場合と、含まない場合とでは桁数が異なるため計算式に入っています。  「JPY」(日本円という意味です)を含んだ場合と、含まない場合とでは桁数が異なるからと言って「ISERROR(SEARCH("JPY",J3,1))=FALSE」等の様に、IF関数の判定式の中に「=FALSE」を付ける必要は御座いません。 =IF(元データ!A3="","",IF(OR(AND(元データ!C3="sell",K3-L3>=0),AND(元データ!C3="buy",K3-L3<=0)),IF(ISERROR(SEARCH("JPY",J3,1))=FALSE,ABS(ROUND(K3-L3,3)*100),ABS(ROUND(K3-L3,5)*10000)),"")) などとはせずに、「=FALSE」の部分を削除した上で、IF関数の「真の場合」と「偽の場合」を入れ替えて =IF(元データ!A3="","",IF(OR(AND(元データ!C3="sell",K3-L3>=0),AND(元データ!C3="buy",K3-L3<=0)),IF(ISERROR(SEARCH("JPY",J3,1)),ABS(ROUND(K3-L3,5)*10000),ABS(ROUND(K3-L3,3)*100)),"")) とするのが一般的なやり方であり、「=FALSE」が付いている事は、余計な手間を増やして態々関数の構造を解り難くしているだけに過ぎません。  その他の「=TRUE」や「=FALSE」が使用されている箇所も同様です。 >その場合、月別の稼働日数(取引可能日数)の計算式は下記の通りで合っているでしょうか? =IF(A3="","",NETWORKDAYS(DATE(A3,B3,1), DATE(A3,B3,DAY(DATE(A3,B3+1,0))), DATE(A3,1,1)))  その関数では元日を除外する様にはなっておりません。  それと、 DATE(A3,B3+1,0) の部分だけで既に月末の日付を求めた事になるというのに、何故態々一旦求めた月末の日付をDAY関数で括って、 DATE(A3,B3,DAY(DATE(A3,B3+1,0)) などという二度手間をかける様にしているのか意味が解りません。 >目的のデータに表示がない場合、絶対に表示させたくないという個人的な好き嫌いの問題です。効率は考えていません。  了解致しました。私が提案した「作りなおしたブック」には、目的のデータが存在していない場合であっても、一部のセルに0等の表示が現れる箇所が御座いますので、質問者様が他の部分の確認を終えられて追加の補足内容等を投稿されるのを待って、修正案を提示したいと思います。

miya_HN
質問者

お礼

回答者の皆様方ありがとうございます。 長い間、付き合っていただいたことに対しましてお詫び申し上げます。 また、ここまで回答をくださった方々に非常に感謝しております。 ありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.30

>大変申し訳ありませんが、再度回答よろしくお願いします。 「サーバー時間の夏季と冬季で、日本時間とした場合、合っているかどうかですが「設定」シートでLocal Timeの項目がないと確認しようがありません。」のことでしょうか? あなたが「冬時間」と言っている値が「Local Time」です。(「設定」シートのD3) 但し、Local TimeとSummer TimeがGMTとの時差をどのように解釈しているのか分かりかねます。 今回の再提示は次のようになっています。 夏時間:GMT+3 冬時間:GMT+2 回答No.3のお礼にリンクされたURLでは次のようになっています。 夏時間:+ 2 時間 冬時間:+ 3 時間 また、回答No.13のお礼には次の提示がありました。 夏時間:+1時間 冬時間:+2時間 回答No.3と回答No.13のお礼に提示されたGMTとの時差に誤りがあり、今回提示の時差が正しいのであればZ3の数式で1ヶ所+を-に変更しなければなりません。 Z3=IF(A3="","",DATE(A3,B3,C3)+D3+(9-設定!$D$3+IFERROR(((DATE(A3,B3,C3)+D3)>AC3)*((DATE(A3,B3,C3)+D3)<AD3)+((DATE(E3,F3,G3)+H3)<AE3),0))/24)    ↓ Z3=IF(A3="","",DATE(A3,B3,C3)+D3+(9-設定!$D$3-IFERROR(((DATE(A3,B3,C3)+D3)>AC3)*((DATE(A3,B3,C3)+D3)<AD3)+((DATE(E3,F3,G3)+H3)<AE3),0))/24) 今回もですが、不要な情報が多く肝心の要点がボケています。

miya_HN
質問者

お礼

回答者の皆様方ありがとうございます。 長い間、付き合っていただいたことに対しましてお詫び申し上げます。 また、ここまで回答をくださった方々に非常に感謝しております。 ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.29

 回答No.28の続きです。  次に「ストラテジー評価」シートのD28セルに次の関数を入力して下さい。 =IFERROR($D$14/$D$21,"-")  次に「ストラテジー評価」シートのD29セルに次の関数を入力して下さい。 =IFERROR(SUMIF(損益計算!$J:$J,">0")*21.681/$D$34/$D$21,"-")  次に「ストラテジー評価」シートのD30セルに次の関数を入力して下さい。 =IFERROR($D$2/$D$1,"")  次に「ストラテジー評価」シートのD31セルに次の関数を入力して下さい。 =IFERROR($D$15/$D$16,"-")  次に「ストラテジー評価」シートのD32セルに次の関数を入力して下さい。 =IFERROR($D$18/ABS($D$19),"-")  次に「ストラテジー評価」シートのD33セルに次の関数を入力して下さい。 =IF(元データ!A3="","",ROUND(($D$2*$D$18+$D$3*$D$19)/$D$1,0))  次に「ストラテジー評価」シートのD34セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$B:$B)*COUNT(損益計算!$D:$D),IF(ISERROR(1/DAY(MIN(損益計算!$B:$B))/(MIN(損益計算!$B:$B)<=MAX(損益計算!$D:$D))),"",NETWORKDAYS(INT(MIN(損益計算!$B:$B)),INT(MAX(損益計算!$D:$D)))-SUMPRODUCT((WEEKDAY(DATE(ROW(INDIRECT("Z"&YEAR(MIN(損益計算!$B:$B)-1)+1&":Z"&YEAR(MAX(損益計算!$D:$D)))),1,1),2)<6)*1)),"")  以上です。

miya_HN
質問者

お礼

回答者の皆様方ありがとうございます。 長い間、付き合っていただいたことに対しましてお詫び申し上げます。 また、ここまで回答をくださった方々に非常に感謝しております。 ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.28

回答No.27の続きです。  次に「月別結果」シートのH3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),COUNTIFS(損益計算!$I:$I,">0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのI3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),COUNTIFS(損益計算!$I:$I,"<0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのJ3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),COUNTIFS(損益計算!$I:$I,"0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのK3セルに次の関数を入力して下さい。 =IF(COUNT($H3:$J3)=3,SUM($H3:$J3),"")  次に「月別結果」シートのL3セルに次の関数を入力して下さい。 =IF(ISNUMBER($K3),$H3/$K3,"")  次に「月別結果」シートのM3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMIFS(損益計算!$J:$J,損益計算!$J:$J,">0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのN3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMIFS(損益計算!$J:$J,損益計算!$J:$J,"<0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのO3セルに次の関数を入力して下さい。 =IF(COUNT($M3:$N3),SUM($M3:$N3),"")  次に「月別結果」シートのP3セルに次の関数を入力して下さい。 =IF(COUNT($O3,設定!$A$3)=2,SUM($O$3:$O3,設定!$A$3),"")  次に「月別結果」シートのQ3セルに次の関数を入力して下さい。 =IF(COUNT($O3:$P3)=2,IFERROR($O3/($P3-$O3),"前月残高無し"),"")  次に「月別結果」シートのR3セルに次の関数を入力して下さい。 =IF(COUNT($O3,設定!$C$3)=2,INT($O3*(1-設定!$C$3*($O3>0))),"")  次に「月別結果」シートのS3セルに次の関数を入力して下さい。 =IF(COUNT($R3,設定!$A$3)=2,SUM($R$3:$R3,設定!$A$3),"")  次に「月別結果」シートのT3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SMALL(損益計算!$D:$D,COUNTIF(損益計算!$D:$D,"<"&DATE($A3,$B3+1,1))),"")  次に「ストラテジー評価」シートのC4セルに「引分」と入力して下さい。  次に「ストラテジー評価」シートのD1セルに次の関数を入力して下さい。 =COUNT(損益計算!$I:$I)  次に「ストラテジー評価」シートのD2セルに次の関数を入力して下さい。 =COUNTIF(損益計算!$I:$I,">0")  次に「ストラテジー評価」シートのD3セルに次の関数を入力して下さい。 =COUNTIF(損益計算!$I:$I,"<0")  次に「ストラテジー評価」シートのD4セルに次の関数を入力して下さい。 =COUNTIF(損益計算!$I:$I,0)  次に「ストラテジー評価」シートのD5セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$P:$P),MAX(損益計算!$P:$P),"")  次に「ストラテジー評価」シートのD6セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$Q:$Q),MAX(損益計算!$Q:$Q),"")  次に「ストラテジー評価」シートのD7セルに次の関数を入力して下さい。 =IF($D$2,MAX(損益計算!$I:$I),"-")  次に「ストラテジー評価」シートのD8セルに次の関数を入力して下さい。 =IF($D$3,MIN(損益計算!$I:$I),"-")  次に「ストラテジー評価」シートのD9セルに次の関数を入力して下さい。 =IF(SUM($D$34)>0,ROUND($D$1/$D$34,2),"")  次に「ストラテジー評価」シートのD10セルに次の関数を入力して下さい。 =IF(ISNUMBER($D$9),ROUND($D$9*21.681,2),"")  次に「ストラテジー評価」シートのD11セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$E:$E),MAX(損益計算!$E:$E),"")  次に「ストラテジー評価」シートのD12セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$E:$E),MIN(損益計算!$E:$E),"")  次に「ストラテジー評価」シートのD13セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$E:$E),AVERAGE(損益計算!$E:$E),"")  次に「ストラテジー評価」シートのD14セルに次の関数を入力して下さい。 =SUM(損益計算!$J:$J)  次に「ストラテジー評価」シートのD15セルに次の関数を入力して下さい。 =IF(COUNTIF(損益計算!$I:$I,">0"),AVERAGEIF(損益計算!$I:$I,">0"),"")  次に「ストラテジー評価」シートのD16セルに次の関数を入力して下さい。 =IF(COUNTIF(損益計算!$I:$I,"<0"),AVERAGEIF(損益計算!$I:$I,"<0"),"")  次に「ストラテジー評価」シートのD17セルに次の関数を入力して下さい。 =IF(COUNT(損益計算!$I:$I),ROUND(SUM(損益計算!$I:$I)/$D$34,1),"")  次に「ストラテジー評価」シートのD18セルに次の関数を入力して下さい。 =IF(COUNTIF(損益計算!$J:$J,">0"),AVERAGEIF(損益計算!$J:$J,">0"),"")  次に「ストラテジー評価」シートのD19セルに次の関数を入力して下さい。 =IF(COUNTIF(損益計算!$J:$J,"<0"),AVERAGEIF(損益計算!$J:$J,"<0"),"")  次に「ストラテジー評価」シートのD20セルに次の関数を入力して下さい。 =IF(ISNUMBER($D$21),MAX(損益計算!$O:$O),"")  次に「ストラテジー評価」シートのD21セルに次の関数を入力して下さい。 =IF(COUNTIF(損益計算!$J:$J,"<0"),ABS(MIN(損益計算!$J:$J)),"")  次に「ストラテジー評価」シートのD22セルに次の関数を入力して下さい。 =IFERROR(SUMIF(損益計算!$I:$I,">0")/SUMIF(損益計算!$I:$I,"<0"),"-")  次に「ストラテジー評価」シートのD23セルに次の関数を入力して下さい。 =IFERROR(SUMIF(損益計算!$J:$J,">0")/ABS(SUMIF(損益計算!$J:$J,"<0")),"-")  次に「ストラテジー評価」シートのD24セルに次の関数を入力して下さい。 =IFERROR(($D$2-SQRT($D$2))*$D$15/($D$3+SQRT($D$3))/$D$16,"-")  次に「ストラテジー評価」シートのD25セルに次の関数を入力して下さい。 =IFERROR(($D$2-SQRT($D$2))*$D$18/($D$3+SQRT($D$3))/ABS($D$19),"-")  次に「ストラテジー評価」シートのD26セルに次の関数を入力して下さい。 =IF(COUNT(月別結果!$Q:$Q),AVERAGE(月別結果!$Q:$Q),"") ※まだ途中なのですが、そろそろこのサイトの回答欄に入力可能な文字数の限度を超えてしまいますので、残りは又後に投稿致します。

miya_HN
質問者

お礼

回答者の皆様方ありがとうございます。 長い間、付き合っていただいたことに対しましてお詫び申し上げます。 また、ここまで回答をくださった方々に非常に感謝しております。 ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.27

 回答No.26の続きです。  次に「損益計算」シートのD2セルに「日本時間」と入力して下さい。  次に「損益計算」シートのD3セルに次の関数を入力して下さい。 =IF(ISNUMBER($C3),IF(OR(設定!$I$3="無",AND(IF(ISNUMBER(設定!$K$3),MONTH(DATE(YEAR($C3),設定!$J$3,8-WEEKDAY(YEAR($C3)&"/"&設定!$J$3,FIND(設定!$L$3,"日月火水木金土")+10)+(設定!$K$3-1)*7))=設定!$J$3,設定!$K$3="最終"),IF(ISNUMBER(設定!$P$3),MONTH(DATE(YEAR($C3)+設定!$N$3,設定!$O$3,8-WEEKDAY(YEAR($C3)+設定!$N$3&"/"&設定!$O$3,FIND(設定!$Q$3,"日月火水木金土")+10)+(設定!$P$3-1)*7))=設定!$O$3,設定!$P$3="最終"))),TEXT($C3+(9-IF(IF(設定!$I$3="有",AND($C3>DATE(YEAR($C3),設定!$J$3,8-WEEKDAY(YEAR($C3)&"/"&設定!$J$3+(設定!$K$3="最終"),FIND(設定!$L$3,"日月火水木金土")+10)+(SUM(設定!$K$3)-1)*7)+設定!$M$3,$C3<DATE(YEAR($C3)+設定!$N$3,設定!$O$3,8-WEEKDAY(YEAR($C3)+設定!$N$3&"/"&設定!$O$3+(設定!$P$3="最終"),FIND(設定!$Q$3,"日月火水木金土")+10)+(SUM(設定!$P$3)-1)*7)+設定!$R$3),FALSE),設定!$D$3,設定!$E$3))+0.000001,"yyyy/m/d h:m:s")+0,"変換不能"),"")  次に「損益計算」シートのE2セルに「時間:分:秒」と入力して下さい。  次に「損益計算」シートのE3セルに次の関数を入力して下さい。 =IF(AND($A3="",$C3=""),"",IF(AND(COUNT($A3,$C3)=2,$A3<$C3),$C3-$A3,"無効なデータ"))  次に「損益計算」シートのF1セルとF2セルを結合して下さい。  そしてその結合セルに「通貨ペア」と入力して下さい。  次に「損益計算」シートのF3セルに次の関数を入力して下さい。 =IF(元データ!$A3="","",UPPER(元データ!$E3))  次に「損益計算」シートのG1セルとG2セルを結合して下さい。  そしてその結合セルに「開始価格」と入力して下さい。  次に「損益計算」シートのG3セルに次の関数を入力して下さい。 =IF(AND(元データ!$A3<>"",ISNUMBER(元データ!$F3)),元データ!$F3,"")  次に「損益計算」シートのH1セルとH2セルを結合して下さい。  そしてその結合セルに「終了価格」と入力して下さい。  次に「損益計算」シートのH3セルに次の関数を入力して下さい。 =IF(AND(元データ!$A3<>"",ISNUMBER(元データ!$J3)),元データ!$J3,"")  次に「損益計算」シートのI1セルとI2セルを結合して下さい。  そしてその結合セルに「Pips」と入力して下さい。  次に「損益計算」シートのI3セルに次の関数を入力して下さい。 =IF(COUNT($G3:$H3)=2,ROUND(($G3-$H3)*IF(ISERROR(FIND("JPY",$F3)),10000,100),1)*(1-2*(元データ!$C3="buy")),"")  次に「損益計算」シートのJ1セルとJ2セルを結合して下さい。  そしてその結合セルに「損益」と入力して下さい。  次に「損益計算」シートのJ3セルに次の関数を入力して下さい。 =IF(OR(元データ!$A3="",元データ!$N3=""),"",IFERROR(SUBSTITUTE(元データ!$N3," ",)+0,""))  次に「損益計算」シートのK2セルに「等」と入力して下さい。  次に「損益計算」シートのK3セルに次の関数を入力して下さい。 =IF(元データ!$A3="","",SUM(元データ!$K3:元データ!$M3))  次に「損益計算」シートのL1セルとL2セルを結合して下さい。  そしてその結合セルに「残高」と入力して下さい。  次に「損益計算」シートのL3セルに次の関数を入力して下さい。 =IF(AND(元データ!$A3<>"",ISNUMBER(設定!$A$3)),SUM($J$3:$J3,設定!$A$3),"")  次に「損益計算」シートのM1セルとM2セルを結合して下さい。  そしてその結合セルに「ロット数」と入力して下さい。  次に「損益計算」シートのM3セルに次の関数を入力して下さい。 =IF(AND(元データ!$A3<>"",ISNUMBER(元データ!$D3)),元データ!$D3,"")  次に「損益計算」シートのN1セルとN2セルを結合して下さい。  そしてその結合セルに「取引数量」と入力して下さい。  次に「損益計算」シートのN3セルに次の関数を入力して下さい。 =IF(AND(元データ!$A3<>"",COUNT(設定!$B$3,$M3)=2),設定!$B$3*$M3,"")  次に「損益計算」シートのO1セルとO2セルを結合して下さい。  そしてその結合セルに「ドローダウン 比率」と入力して下さい。  次に「損益計算」シートのO3セルに次の関数を入力して下さい。=IF(SUM($J3)<0,-$J3/($L3-$J3),"")  次に「損益計算」シートのP1セルとP2セルを結合して下さい。  そしてその結合セルに「連勝」と入力して下さい。  次に「損益計算」シートのP3セルに次の関数を入力して下さい。 =IF(SUM($J3)>0,SUM(P2)+1,"")  次に「損益計算」シートのQ1セルとQ2セルを結合して下さい。  そしてその結合セルに「連敗」と入力して下さい。  次に「損益計算」シートのQ3セルに次の関数を入力して下さい。 =IF(SUM($J3)<0,SUM(Q2)+1,"")  次に「損益計算」シートのR1セルとR2セルを結合して下さい。  そしてその結合セルに「損益率」と入力して下さい。  次に「損益計算」シートのR3セルに次の関数を入力して下さい。 =IF(ISNUMBER($L3),$L3/設定!$A$3-1,"")  次に「月別結果」シートのJ2セルに「引分」と入力して下さい。  次に「月別結果」シートのA3セルに次の関数を入力して下さい。 =IF(OR(ISNUMBER($A2),ROWS($A$3:$B3)=1),IF(COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)),YEAR(LARGE(損益計算!$B:$B,COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)))),""),"")  次に「月別結果」シートのB3セルに次の関数を入力して下さい。 =IF(OR(ISNUMBER($B2),ROWS($A$3:$B3)=1),IF(COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)),MONTH(LARGE(損益計算!$B:$B,COUNTIF(損益計算!$B:$B,">="&DATE(MAX($A2,1904),SUM($B2)+1,1)))),""),"")  次に「月別結果」シートのC3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMIFS(損益計算!$I:$I,損益計算!$I:$I,">0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのD3セルに次の関数を入力して下さい。 =IF(AND(COUNT($A3:$B3)=2,ISNUMBER(($A3&"/"&$B3)+0)),SUMIFS(損益計算!$I:$I,損益計算!$I:$I,"<0",損益計算!$B:$B,">="&$A3&"/"&$B3&"/1",損益計算!$B:$B,"<"&DATE($A3,$B3+1,1)),"")  次に「月別結果」シートのE3セルに次の関数を入力して下さい。 =IF(COUNT($C3:$D3),SUM($C3:$D3),"")  次に「月別結果」シートのF3セルに次の関数を入力して下さい。 =IF(COUNT($C3:$D3)=2,$C3-$D3,"")  次に「月別結果」シートのG3セルに次の関数を入力して下さい。 =IF(COUNT($E3:$F3)=2,$F3/$E3,"") ※まだ途中なのですが、そろそろこのサイトの回答欄に入力可能な文字数の限度を超えてしまいますので、残りは又後に投稿致します。

miya_HN
質問者

お礼

回答者の皆様方ありがとうございます。 長い間、付き合っていただいたことに対しましてお詫び申し上げます。 また、ここまで回答をくださった方々に非常に感謝しております。 ありがとうございました。

関連するQ&A

専門家に質問してみよう