[[20070601152702]] 『日付の数式を教えてください』(正) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付の数式を教えてください』(正)

 いつもお世話になっております。
 下記の表があります。式1.式2.式3.式4の数式を教えてください。
 式1の条件(損切発生日付3/7):もし数量>0,ければ次の行より22行目中までに終値<最安値になった日付を返したい。
 式2の条件(損切発生の翌始値3040):もし数量>0,ければ次の行より22行目中までに終値<最安値になった日の次の行(翌日)の始値を返したい。
 式3の条件(決済時点の日付2/24):もし数量>0,ければ次の行より22行目中までに高値>=売目標になった日付を返したい。
 但し、もしその日(高値>売目標になった日)の始値>売目標ならば始値を返したい。
 式4の条件(決済時点の売単価3790):もし数量>0,ければ次の行より22行目中までに終値>売目標になった日の次の行(翌日)の始値を返したい。
 エクセル2003   Win XP  よろしく御願いします。   (正)																	   式1	式2			式3	式4

							    直近	損切発生	        最終	 決済時点の		一単位
日付	    始値	高値	安値	終値	数量	買単価	最安値	日付	翌始値	決済日	売目標	日付	売単価	損益
2006/2/21	3440	3740	3360	3730	1	3730	3270	3月7日	3040	3/27	3950			-690
2006/2/22	3650	3690	3550	3570	1	3570	3270			3/28	3790 2月24日	3790	220
2006/2/23	3640	3710	3610	3670										0
2006/2/24	3640	3790	3620	3740										0
2006/2/27	3770	3830	3680	3680										0
2006/2/28	3710	3730	3550	3600										0
2006/3/1	3500	3550	3420	3460										0
2006/3/2	3500	3520	3340	3370										0
2006/3/3	3340	3430	3250	3310										0
2006/3/6	3510	3520	3380	3430										0
2006/3/7	3330	3340	3060	3140										0
2006/3/8	3040	3140	2975	3060										0
2006/3/9	3080	3200	3080	3130										0
2006/3/10	3110	3250	3110	3200										0
2006/3/13	3240	3260	3130	3140										0
2006/3/14	3140	3170	3110	3130										0
2006/3/15	3140	3170	3040	3060										0
2006/3/16	3030	3060	2970	3020										0
2006/3/17	3030	3140	2960	3140										0
2006/3/20	3270	3280	3160	3190										0
2006/3/22	3180	3180	3080	3080										0
2006/3/23	3100	3110	3000	3000										0
2006/3/24	3000	3100	2990	3060										0
2006/3/27	3110	3130	3050	3070										0
2006/3/28	3050	3200	3030	3190										0

 ご提示のサンプルデータからは
  ●決済時点の日付2/24
 以外はご提示の値の抽出が出来ませんが
 私が何か思い違いをしていますかね?

 ご提示以外の条件がありそうな気もします。

 小さなサンプルを使って、目的値を探す関数の例を載せておきます。
 参考になさってください。
	[A]	[B]	[C]	[D]	[E]
[1]	項目	値1	値2		結果
[2]	A	1	0		C
[3]	B	0	0		C
[4]	C	1	0		E
[5]	D	0	0		E
[6]	E	1	0		G
[7]	F	0	0		G
[8]	G	1	0		
[9]	H	0	0		

 E列の該当行の1行下から5行以内で 値1>値2 を探し
 一番最初に出てくる項目を返します。
 なお、該当がない場合は「""」としています。

 E2に
=IF(SUM(IF((OFFSET(B3,,,5,)>OFFSET(C3,,,5,)),1,0)),
INDEX(OFFSET(A3,,,5,),SMALL(IF(OFFSET(B3,,,5,)>OFFSET(C3,,,5,),ROW($1:$5),""),1)),"")
 を2行まとめてコピペした後【Ctrl + Shift + Enter】で確定。
 E9までコピーしてください。

 E8,E9は該当がないので空欄となります。
 また、B4,B6の「1」を「0」に変更した場合、E列の結果は
	[E]
[1]	結果
[2]	
[3]	G
[4]	G
[5]	G
[6]	G
[7]	G
[8]	
[9]	
 このようになります。

 (HANA)

 (HANA) 様

 只今出先から戻って来ました。
 早速ご教示頂き有難うございます。

 内容はこれから見せていただきますが、私の質問の説明が不十分のようですので。
 もうすこし詳しく説明させていただきます。

 この表は過去のデータを元に売買システムを検証する為のものです。

 I列、J列、M列、N列の各数式が教えてほしいのです。

    A列からE列までは元のデータ。

     F列(数量) 1 (私が数式で計算して表示。)

    G列(買単価)3730 (私が数式で計算して表示。)

    H列(最安値)3270 各行の当日を含む終値の過去22日間の最安値。 
           (私が数式で計算して表示。)

 式1 I列(損切発生日付)この列の数式を教えてください。

     2006/2/21に1株@3730で買った株式が翌日以降に終値で最安値より安く
  
     なった(終値で3140)日付(2006/3/7)を2/21の行のI列に入れたい。

 式2 J列(翌始値)この列の数式を教えてください。

     3/7に終値で3140と過去の最安値の3270より安くなり翌日の始値で、 

     損切りします。そのために3/7の翌日(3/8)の始値を2/21の行のJ列 

     に入れたい。

    K列(最終決済日)3/27 、2/21に買った日の翌日から23日目を表示。
        <最終の文字の位置がずれています。スミマセン>
         (私が数式で計算して表示。) 

    L列(売目標)3950 (私が数式で計算して表示。)

 式3 M列(決済時点の日付)この列の数式を教えてください。

      損切りしたとき(3/7)は空白。

      2006/2/22に1株@3570で買った株式が翌日以降の決済日までに 

      終値で最安値より安くならず、売目標の3790が終値で付いた日付 

       (2006/2/24)を2/22の行のM列に入れたい。

      もし最終決済日の3/28までに、損切ならず、売目標にもならなかった
           時は最終決済日の3/28の始値3050を返したい。 

    O列(損益)売単価ー買単価 (私が数式で計算して表示。)

 以上です。

 ご教示頂いたものはこれから拝見させていただきます。
 よろしく御願いします。 (正)


 先ほどの載せた式は
=IF(SUM(IF((B3:B7>C3:C7),1,0)),INDEX(A3:A7,SMALL(IF(B3:B7>C3:C7,ROW($1:$5),""),1)),"")
 こちらに訂正させてください。【Ctrl + Shift + Enter】で確定です。
(よく考えたら、OFFSET関数を使う必要がありませんでした。)

 式1は、このサンプルの「値2の範囲」が「あるセル番地」に変わるだけですよね?
 式2は、式1のINDEX関数の配列を該当列の一つ下の行にシフトさせれば良さそうです。

 式3は、何処をどう見るのか分かりません。
 22日を例にとって、どの範囲とどのセル番地を見比べて
 どうなっているからどのセル番地の内容。
 また、ただしのケースでは、現在入力されている数値の何処がどうなっているとき
 そのケースに当てはまり、その場合どのセル番地を返せばいいのか、教えてください。

 (HANA)


 (HANA) 様

 式3は数量>0で、数量>0になった日の次の行(翌日)より最終決済日までに
 もし損切りが発生した場合は、その日の次の行(翌日)の日付を返す。

 <スミマセンでした。ここのところが不鮮明でした。>

 で無く、最終決済日までに終値>=売目標になった時はその日を返す。
 でも無い場合は最終決済日を返す。
 ということです。

 何度も申し訳ありません。
 宜しく御願いします。
 (正)

 私は
 「22日を例にとって、見なければいけないセル番地と
  其処を見て、何故そうなるかを教えてください」
 と言っています。

 (正)さんのご説明ですと、
 22日が4行目にあるとして、
 「E5:E27の範囲でL4の数値以上になった日付の内一番最初に出てくる物。
  ただし、全てL4の数値未満であれば、K4の日付とする。」
 と言う様に解釈して、M4が何故2/24になるのか分かりません。
   2/24の終値は(E6)、3740
   22日の売目標は(L4)3790

 何処が違うのでしょうか?

 (HANA)

 (HANA) 様

 説明下手でスミマセン。

 A列の2/22の数量>0、のとき同行の最安値をみて2/23以降で最終決済日までに終値<=最安値となった最初の日を、
 A列の日付を2/22のI列の日付に入れたい。
 そして終値<=最安値となった最初の日の次の行(翌日)の始値を6/22の同行のJ列翌始値に入れたい。

 もし最終決済日までに終値<=最安値とならず2/22の行の売目標3790に2/23以降で最終決済日までに終値>=売目標となった日を、
 A列の日付を2/22のM列の日付に入れたい。
 そして売目標3790を6/22の売単価に入れたい。

 最終決済日までに終値<=最安値又は終値>=売目標にならなかったときは
 6/22のM列に6/22の最終決済日をN列に最終決済日の始値を入れたい。

 よろしく御願いします。(正)


 再度すみません

 もし最終決済日までに終値<=最安値とならず2/22の行の売目標3790に2/23以降で最終決済日までに終値>=売目標となった日を、
 A列の日付を2/22のM列の日付に入れたい。
 そして売目標3790を6/22の売単価に入れたい。 

 終値>=売目標となった日をは  高値>=売目標  の間違いです

 最終決済日までに終値<=最安値又は終値>=売目標にならなかったときは   
     高値>=売目標  の間違いです
  
 申し訳ありません。(正)

 >私は
 >「22日を例にとって、見なければいけない【セル番地】と
 > 其処を見て、何故そうなるかを教えてください」
 >と言っています。

 良いですか?
 >最終決済日までに終値>=売目標になった時はその日を返す。
 >でも無い場合は最終決済日を返す。
 これを例に挙げますと

 22日が4行目にあるとして、
   最終決済日(K4=3/28)は、A列の27行目
   終値(E5:E27)の範囲で、売目標(L4=3790)以上になった最初の日
   全て未満なら、K4の日付
    全て未満なので、M4はK4(3/28)の日付となる。
 このようにご説明頂くのが希望です。
 (正)さんご自身にも、説明時の間違いに気づきやすいと思います。

 具体的なセル番地を挙げてご説明頂けないのであれば
 その理由を述べてください。
 もう一点、決算日(K列)の算出方法も知りたい所です。

 ただし、その前に先に呈示した考え方(方法)が
 使えるかどうかご検討下さい。
 I列とJ列用の式は出来ましたかね?

 (HANA)

 書いたと思っていたけど、書いていない様ですね。
 この掲示板は、文頭を半角スペースで始めると
 改行がそのまま改行として扱われます。
(コメント欄と同じ表示になります。)
 ココまでの行は
|←この部分に半角スペースが入っています。
(全ての行頭に入れる必要は無いのですが・・・。)

半角スペースを入れないと、文字も大きくなります。

 プレビュー画面でご確認頂くと
 分かりやすいかもしれません。

 (HANA)

 (HANA) 様

 衝突が起こりました。

 半角スペースのことご教示有難うございます。知りませんでした。

 >22日が4行目にあるとして、
 >最終決済日(K4=3/28)は、A列の27行目
 >終値(E5:E27)の範囲で、売目標(L4=3790)以上になった最初の日

 終値(E5:E27) は 高値(C5:C27) に訂正してください。

 >具体的なセル番地を挙げてご説明頂けないのであれば
 >その理由を述べてください。

 別にありません。そのように説明するのがベターとは気がつきませんでした。

 >もう一点、決算日(K列)の算出方法も知りたい所です。

 決済日(>決算日)は数量>0(例:F4)の時、その翌日から23日目
 (カレンダー日付ではなく、データ日付で)3/28(A27)としています。

 > ただし、その前に先に呈示した考え方(方法)が
 >使えるかどうかご検討下さい。
 >I列とJ列用の式は出来ましたかね?

 まず教示いただいたサンプルデータと訂正された式では結果は確認できました。

 サンプルデータの項目=質問データの日付
 サンプルデータの値1=質問データの終値
 サンプルデータの値2=質問データの最安値
 サンプルデータの結果=質問データの損切日付
 そこで上記のように解釈して式を質問データの損切発生日付の(I3)に入れましたところ、2月22日が表示されました。
 ここで行き詰ってしまいました。

 どうも上記の解釈が間違っているように思います。
 ご指摘下さい。

 お忙しいところ何度もすみません。
(正)

 (HANA) 様

 先ほどのコメントでサンプルデータ・・・以下7行がダブっています。
 尚、先ほどのコメントでまた間違いを言いました。
 下から3行目に2月22日が表示されましたと書きましたが、
 #N/Aと表示されましたと訂正します。 
 どうもすみません(正)


 だぶっているコメントは消しました。

 サンプルデータでは
 値1>値2 です。
 (正)さんの比べたいのは
 終値<最安値 ですから
 >サンプルデータの値1=質問データの終値 
 >サンプルデータの値2=質問データの最安値
 とするなら、不等号の向きを変えてください。

 変更箇所が上の3点だけですと
 不等号がそのままの場合「2月22日が表示」
 不等号変更で「#N/A」
 が表示されます。

 また、何度も希望を出しております。
 I3用の式を作って居られるのであれば
 言葉とあわせて【セル番地】も載せて於いて頂けると
 分かりやすいです。

 >サンプルデータの項目(A3:A7)=質問データの日付(A4:A25)
 >サンプルデータの値1(B3:B7)=質問データの終値(E4:E25)
 >サンプルデータの値2(C3:C7)=質問データの最安値(H3)
 ↑このように。

 それと、上手く行かない時は、その式も一緒に載せてください。
 現在の式は、不等号の向きを変えて
=IF(SUM(IF((E4:E25<H3),1,0)),INDEX(A4:A25,SMALL(IF(E4:E25<H3,ROW($1:$5),""),1)),"")
 こうなっていますかね?

 この式では、単純にもう一カ所変更する所があります。

 サンプル式のROW($1:$5)の中に出てくる「5」は
 >1行下から【5】行以内
 に対応しています。(注・「1」は対応していません。)
 22行に変更したなら、ROW($1:$22)に変更してください。

 これで、I3の日付は正しく計算出来ると思います。
 J3の値の求め方も分かりますよね?

 M4の式が出来ないようであれば
 >決済日(>決算日)は数量>0(例:F4)の時、その翌日から23日目
 >(カレンダー日付ではなく、データ日付で)3/28(A27)としています。
 この計算式(K4に入っている式)を教えてください。

 (HANA) 加筆・訂正しました。19:01

(HANA) 様

 >だぶっている
 より以下
 >この計算式(K4に入っている式)を教えてください。
 までに対する返事を
 >加筆・訂正しました。19:01
 より以前に送りましたが、今見ましたら私の返事が消えています。
 私の返事見ていただけましたかしら。
 加筆されました場所は下記ですね。
 >現在の式は、不等号の向きを変えて
 >=IF(SUM(IF((E4:E25<H3),1,0)),INDEX(A4:A25,SMALL(IF(E4:E25<H3,ROW($1:$5),""),1)),"")
 >こうなっていますかね?

 これから確認します。

(正)

  


 ん?ごめんなさい、見ていません。
 投稿はいつ頃でしたかね?
 私が訂正中に投稿されたなら、私が投稿しようとしたときに
 「衝突しました」
 と出ると思うのですが、それも出ませんでしたし
 かといって、訂正前には私の書き込みが
 一番下だったような・・・。

 申し訳ありませんが、もう一度投稿して頂けませんかね?
 あ、もちろん
 >M4の式が出来ないようであれば
 と言う条件です。
 もしかしてI3の式がまだ出来てませんかね・・・。

 (HANA)

 (HANA) 様

 お早うございます。
 おかしいですね。又、消えています。

 昨夜12時ごろ式が大分出来上がってきました事。
 コメントを送信したのですが送信した後、スグにも送信内容を確認していますが今朝、見れば消えている。

 私のやりかた何か間違っているのでしょうか。
 お気づきの点あれば教えてください。
 もう一度送ります。

 6/4  7:15 再び記す。
 有難うございます。式が大分出来上がってきました。

 損切発生日付 I3のセルに下記の式を入れました。
 =IF(SUM(IF((E4:E25<H3),1,0)),INDEX(A4:A25,SMALL(IF(E4:E25<H3,ROW($1:$22),""),1)),"")
 そして下へコピーしました。希望通りのものが出来ました。I3には3月7日と表示されました。

 翌始値 J3の式は出来ません。教えてください。

 決済時点の日付 M4のセルに下記の式を入れました。
 =IF(SUM(IF((C5:C26>=L4),1,0)),INDEX(A5:A26,SMALL(IF(C5:C26>=L4,ROW($1:$22),""),1)),"")
 そして下へコピーしました。M4には2月24日と表示されました。 希望通りです。
 しかし、M4以下のセルに数量が空白のもの全部に少しづつ大きい値の日付が入ってしまいます。
 数量が空白のセルは日付を空白にするには、どう修正すればよいでしょうか。

 I3以下のセルは数量が空白のセルは日付も空白です。問題なし。

 次に決済時点の売単価のセルN4に、式=IF(M4="","",L4) を入力して下へコピー。これでOKのようです。

 J3の式とM4の修正教えてください。よろしく御願いします。 (正)


 (HANA) 様

 追伸 7:45
 すみません。
 I3の式は問題なしといいましたが、良くみればありました。
 I4の場合は損切りが発生する条件は3/7ですが、既に2/4に先に売目標が達成されていますので持株残数は無くなっています。
 そのため損切りは発生しないのです。そこでその場合はI4の日付とJ4の翌始値は表示しないようにしたいのです。
 そのようにしたい場合は持株残数の列を設けなければいけないでしょうか。
 もしそれならばN列売単価の次O列を残株として下さい。一単位損益はP列にします。

ややこしくてすみません。
よろしく御願いします。

 (正)


 まず、最初に言っておきますが株のことはわかりません。
 よって、株に関する用語も全くわかりません。
 ですので、「損切り」や「売目標が達成」「持株残数」
 と言われただけでは、なにをみて判断すればよいのかわからないのです。

 どうなれば「売目標が達成」といえるのか、私にはわかりません。
 I3に3/7という日付を導き出す数式ができたのは
 「損切り日」を探したためではなく
 「該当行の1行したから22行の間のE列で、該当行のH列の値より
  小さくなる最初の日付(A列)」を求めたにすぎません。

 ですので、そのようにご説明ください。
  ●どのセルがどうなった時に、どうしたいのか

 またJ3の式は、I3の式からの変更でできると思いますが
 どのような変更をなさってみましたか?
 うまくいかなかった式を乗せてください。

 申し訳ないのですが、午後からも外仕事なので
 レスは夜になります。
 J3の式に関しては
  INDEX関数がどのような関数か、調べてみると何かわかるかもしれません。
  また、紹介した式は「配列数式」と呼ばれるものです。
  これをキーワードに、Google等で検索をかけてみるのも よいかもしれません。

 (HANA)

 (HANA) 様

 7:45の私の返信コメントは撤回します。お手数ですが削除出来るようでしたら削除してください。
 前回のコメントを指示された言い方で説明し直します。

 I3の式は問題なしといいましたが、良くみればありました。
 I4の表示された日付より速い日付がM4表示されています。その場合は日付 表示は不要。
 そこでI3の式に日付が表示される条件にM4が空白であるとき。という事を付け加えてほしいです。
 M4の式をコピーした時F列に数量が入っていない時も、I列に日付が入っている時もM列に日付が表示される。その場合は日付表示は不要。
 そこでM4の式に日付が表示される条件にF4>0,そしてI4が空白である。という事を付け加えてほしいのです。

 I3の式、J3の式、M4の式 色々試して見ましたが出来ませんでした。
 N4の式はM4の日付が入っていれば、=IF(M4="","",L4)  でいけると思います。

 なんどもすみません。よろしくご指導の御願いします。  (正)


 現在は日付を表示する条件として
  I3→該当日付が存在する時
  M4→該当日付が存在する時
 となっていますが、それを
  I3→M4が空欄 AND 該当日付が存在する時
  M4→F4>0 AND I4が空欄 AND 該当日付が存在する時
 でよいのですかね?

 これを、単純に当てはめると
 I3
=IF(AND(M4="",SUM(IF((E4:E25<H3),1,0))),INDEX(A4:A25,SMALL(IF(E4:E25<H3,ROW($1:$22),""),1)),"")
 M4
=IF(AND(F4>0,I4="",SUM(IF((C5:C26>=L4),1,0))),INDEX(A5:A26,SMALL(IF(C5:C26>=L4,ROW($1:$22),""),1)),"")
 となりますが・・・これで良いのですかね?

 良いのであれば良いのですが・・・
 私が用語を理解した方が良いのですかね?

 おそらく「22日間」と言うのがセオリーなのかとは思いますが
 その日数を減らして、もう少しいろいろなパーターンの例を
 挙げてもらうのがよいのかもしれません。

 もちろん、上の式で合っているなら問題無いのですが。
(いや、合っていることを願います。)

 (HANA)

 (HANA) 様

 修正して頂いたI3の式のM4をM3に変更して下記の式をI3に入れました。
 =IF(AND(M3="",SUM(IF((E4:E25<H3),1,0))),INDEX(A4:A25,SMALL(IF(E4:E25<H3,ROW($1:$22),""),1)),"")
 これでI3の式は出来上がったと思います。

 修正して頂いたM4の式を入れましたところ、
 「数式を計算できません。開いているブックに循環参照がありますか。この場合循環参照は表示されません。
 入力した最後の式を編集するか、または{編集}メニューの{元に戻す}コマンドでその数式を削除してください。」
と表示され、ステータスバーの上に循環I4と出ています。
 式は下記です。なぜでしょうね。
 =IF(AND(F4>0,I4="",SUM(IF((C5:C26>=L4),1,0))),INDEX(A5:A26,SMALL(IF(C5:C26>=L4,ROW($1:$22),""),1)),"")

 要するにF4(数量>0ということは株を買ったという意味です。買わなければ損する事も、儲かることも無いので、I4,J4,M4,N4の全てのセルは何も表示しなくて良い。)
 という考えでそのほかのセルも何も表示しないようにしています。
 その考えで、M4の式いろいろ変更して試してみましたが出来ませんでした。

 >おそらく「22日間」と言うのがセオリーなのかとは思いますが
 別にこだわりません。5日でも構いません。

 よろしく御願いします。 6/5  9:25 (正)


 >ステータスバーの上に循環I4と出ています。
 >式は下記です。なぜでしょうね。
 (正)さんが、I3の日付を表示するときの条件として
 ご説明のあった「M4が空欄」を「M3が空欄」に変更したためです。
 ご自身で
 >修正して頂いたI3の式のM4をM3に変更して
 と仰って居られます。

 IF関数はおわかりになるようですので、簡単なサンプルです。
 A1セルに =IF(B1=0,1,0)
 B1セルに =IF(A1=0,0,1)
 と言う式が入っていたとします。
 A1セルの値は、B1セルの値によって変化します。
 B1セルの値は、A1セルの値によって変化します。
 そこで、A1セルの値の特定に取りかかったとき、
 これはB1セルの値が決まらない事には特定できませんが
 B1セルの値は、A1セルの値が特定されなければ特定されません。
 でも、A1セルの値は、B1セルの値が特定されないと・・・・。
 「あたしゃ どうすりゃいいのよ!!」
 ってのが「循環参照」と言う言葉です。

 もう一度、
 どうなったときに日付を表示させたくないのか
 考えてみてください。

 また
 >>おそらく「22日間」と言うのがセオリーなのかとは思いますが
 >別にこだわりません。5日でも構いません。
 と言うことですので、「3/20迄の情報は埋められる」と言う事ですよね。
 最初に御提示のサンプルは、2行目迄しかデータがありません。
 この状態ですと、何処にどの処理を加えれば良いのか分かりません。
 一度いろいろなパターンの物を載せてみてもらえませんかね?
 (正)さんが表を埋める際に、どのような考えからそこにそのデータを持ってきたのか
 あるいは、どのような考えから其処はデータがないのか
 と言うご説明と合わせて。

 一緒に、上で「(私が数式で計算して表示。)」と書かれている部分の
 数式も教えてください。
 何かの情報が得られるかもしれませんので。

 (HANA)

 (HANA) 様

 ご丁寧な説明頂き有難うございました。
 I3の循環参照の件、納得しました。

 確かに前回私のコメントで「そこでI3の式に日付が表示される条件にM4が空白であるとき」と記していますね。
 これは私の単純な入力ミスで、本当はM3とするところでした。
と言いますのはI3日付でJ3の値段で処理済みの為、M3が表示不要となります。
 それでI3の式のM4をM3に変更しました。

 色々試していましたのでコメントが遅くなりスミマセン。
以下に少し長くなりますが(HANA)様のお尋ねの数々を踏まえて説明させていただきます。表を添えて。

 質問表には載せていませんが、P列に判断列、Q列に結果列を持っています。
 質問表で22日としているものを5日として仮の取引を入力してみました。
 依って、数式はセルの7行目より始まります。
 その日の相場が終わった時点で元データの日付、始値、高値、安値、終値を入力します。
 その結果株を7行目2/27に買おうと思ったら、その日のP列(P7)に手入力で"K"と入力します。
 しかし、買おうと思いませんのでP列は未入力。
 やっと10行目3/2(B10:E10)の入力を終えて、3/2の終値(E10)を見て、明日 3/3に買うべく、3/2のP10にKと入力する。
 翌朝3/3 相場が始まる(9:00)までに証券会社に3/2の終値(E10)3370で指値買い注文する。
 3/3の3時以降にB11:E11までデータを入力します。
 その結果、3/3日中にE10の3370以下があれば買えます。3/3の始値B11が3340でしたので買えました。
 3/3日中に買えれば、数量(F10)、買単価(G10)、最安値(H10)が数式で記入されます。
 買えなければ0が返されます。<これは3/3のB11〜E11迄を入力することにより>
と同時にF、G、Hに0以外が入りますと、その情報から決済日(K10)、売目標(L10)が数式で記入されます。
 実際は売り目標は別の列で計算しているものを返していますが。今は仮に買単価の3%UPとしておきます。
 毎日をこのような流れで行います。

 数式は順に下記の通りです。数式の最初の行を7行目からとして。
 数量(F7)=IF(G7>0,1,0)
 買単価=IF(AND(P7="K",B8<=E7),B8,IF(AND(P7="K",D8<E7),E7,0))
 最安値=IF(F7>0,MIN(E3:E7),0)
 損切発生日付の数式 「*教えてください」
  I10を例に取れば終値E10:E14までに最安値H10の3370以下の値があればその最 初のA列の日付を返す。
  無ければ空白を返す。
 損切値は翌始値の数式 「*教えてください」
  J10を例に取ればI10<>""ならばI10(3月10日)の翌日の始値を返す。出なければ0を返す。
 最終決済日=IF(F7>0,A13,"")
  <買った日から6日目を表示。但し買った日から6日以降の日付がA列に入力されていないと1/0の表示になる。>
 売目標=IF(F7>0.ROUND(G7*1.03,-1)"")
  (買った値段に3%UPして,10円刻み表示)
 決済時点の日付の数式 「*教えてください」
 M13を例に取れば、I3が空白で、買った日3/8の翌日(A15)から4日目の3/14(A18)中の高値にL13売目標3130が有ったA列の最初の日を返す。
 無ければ空白を返す。但しK13の最終決済日が来たときは最終決済日を返す。
 *買った日の翌日から数えるのは、買った日に売目標の値があったとしても売れない場合がある為。
 決済時点の売単価の数式 「*教えてください」
 例として売単価のセルN15の3240はK15>M15 AND M15の3/13の始値>=L15の売目標3200の時は始値のB17の3240を返す。
 でないときは売目標のL15の3200を返す。
 もしK15=M15の時はK15の日の始値B21の3030を返す。
 一単位損益=IF(AND(F7>0,J7>0),J7-G7,IF(AND(F7>0,N7>0),N7-G7,0)
  <(数量>0、始値>0) のときは翌始値(J7)-買単価(G7)、売単価(N7)>0のときは売単価(N7)-買単価(G7)としています。>
 判断=私が買いたいと思った時にKと手入力する。
 結果=IF(AND(P7="K",F7=0),"買不出来",IF(AND(P7="K",F7>0,I7<>"",M7=""),"損切り",IF(AND(P7="K",F7>0,I7="",M7<>""),"利喰",IF(AND(P7="K",F7>0,I7="",M7=""),"未決済",""))))

      A  B  C   D   E F  G   H   I  J   K  L  M  N  O   P  Q
1							    直近	損切発生損切値は	最終		決済時点の		一単位		
2  日付	始値	高値	安値	終値	数量	買単価	最安値	日付	翌始値	決済日	売目標	日付	売単価	損益	判断	結果
3   2006/2/21	3440	3740	3360	3730	*	*	*	*	*	*	*	*	*	*	*	*
4   2006/2/22	3650	3690	3550	3570	*	*	*	*	*	*	*	*	*	*	*	*
5   2006/2/23	3640	3710	3610	3670	*	*	*	*	*	*	*	*	*	*	*	*
6   2006/2/24	3640	3790	3620	3740	*	*	*	*	*	*	*	*	*	*	*	*
7   2006/2/27	3770	3830	3680	3680	0	0	0		0				0	0		
8   2006/2/28	3710	3730	3550	3600	0	0	0		0				0	0		
9   2006/3/1	3500	3550	3420	3460	0	0	0		0				0	0		
10  2006/3/2	3500	3520	3340	3370	1	3340	3370	3月7日	3040	3/10	3440		0	-300	K	損切り
11  2006/3/3	3340	3430	3250	3310	0	0	0		0				0	0	K	買不出来
12  2006/3/6	3510	3520	3380	3430	0	0	0		0				0	0		
13  2006/3/7	3330	3340	3060	3140	1	3040	3140		0	3/15	3130	3月8日	3130	90	K	利喰
14  2006/3/8	3040	3140	2975	3060	0	0	0		0				0	0	K	買不出来
15  2006/3/9	3080	3200	3080	3130	1	3110	3060		0	3/17	3200	3月13日	3240	130	K	利喰
16  2006/3/10	3110	3250	3110	3200	0	0	0		0				0	0		
17  2006/3/13	3240	3260	3130	3140	0	0	0		0				0	0		
18  2006/3/14	3140	3170	3110	3130	0	0	0		0				0	0		
19  2006/3/15	3140	3170	3040	3060	1	3030	3060		0	3/24	3120	3月17日	3120	90	K	利喰
20  2006/3/16	3030	3060	2970	3020	1	3020	3020		0	3/27	3110	3月17日	3110	90	K	利喰
21  2006/3/17	3030	3140	2960	3140	0	0	0		0				0	0	K	買不出来
22  2006/3/20	3270	3280	3160	3190	1	3180	3020		0	1/0	3280		0	0	K	未決済
23  2006/3/22	3180	3180	3080	3080	0	0	0		0				0	0		
24  2006/3/23	3100	3110	3000	3000	1	3000	3000		0	1/0	3090	3月24日	3090	90	K	利喰
25  2006/3/24	3000	3100	2990	3060	0	0	0		0				0	0		
26  2006/3/27	3110	3130	3050	3070	0	0	0		0				0	0		
27  2006/3/28	3050	3200	3030	3190	0	0	0		0				0	0		

 「*教えてください」のところの数式、先のご教示を参考に、これから挑戦してみます。
 以上長々と書きましたが、よろしく御願いします。(正) 6/7  AM11:20


 残念ながら(正)さんのご説明とA:Eのデータから
 私が導き出すことの出来る結果は以下の考えにより、
 (正)さん御提示の結果とは異なります。

 >損切発生日付の数式 「*教えてください」
 > I10を例に取れば終値E10:E14までに最安値H10の3370以下の値があれば
 > その最初のA列の日付を返す。無ければ空白を返す。

 I10
  E10:E14(3370,3310,3430,3140,3060)の中からH10(3370) 以下の値
   →E10,E11,   ,E13,E14→一番最初(E10)→その日付3/2(A10)
  もしも「一行下から」の間違いだとしても、E11となり日付は3/3(A11)
  御提示の3/7にはなりません。
 I11,I12は、H列がOで終値はOより大きいので空欄(これは一致します。)
 I13
  E13:E17(3140,3060,3130,3200,3140)の中からH13(3140)以下の値
   →E13,E14,E15,   ,E17→一番最初(E13)→その日付3/7(A13)
  もしも「一行下から」の間違いだとしても、該当がありますので
  御提示の【空欄】にはなりません。

 このI列の日付が私と(正)さんの間で相違があるので、次のJ列の数字に関して
 相違があることは、言うまでもない事と思いますので割愛。

 >決済時点の日付の数式 「*教えてください」
 > M13を例に取れば、I3が空白で、買った日3/8の翌日(A15)から
 > 4日目の3/14(A18)中の高値にL13売目標3130が有ったA列の最初の日を返す。
 > 無ければ空白を返す。但しK13の最終決済日が来たときは最終決済日を返す。
 「I3が空欄で」と言う条件が満たされている
 「売目標3130が有った」とは「売目標以上となった」に読み替えるとして
 M13
  C15:C18(3200,3250,3260,3170)の中からL13(3130)以上の値
   →C15,C16,C17,C18→一番最初(C15)→その日付3/9(A15)
  もしも「一行下から」の間違いなら、C14=3140=該当→A14=3/8
  になりますが、ご説明が正しいとすれば
  御提示の3/8にはなりません。
 M15,M19は一致しますが、M20,M24は一致しません。

 ただ、再度引用しますが
 >但しK13の最終決済日が来たときは最終決済日を返す。
 「最終決済日が来た」と言うのは、どういう状況でしょうか?
 何処の日付と何処の日付(片方は、同行K列?)を見比べるのでしょう?
 (これによって、M13,M20,M24は各日付になっているのですかね?
  その様な印象はうけませんが・・・。)

 (正)さんのなさりたいことは(正)さんにしか分かりません。
 そして、私は(正)さんが「このようにしたい」と仰ることを
 そのまま数式にすることしかできません。
 ご説明の曖昧な部分は数式に出来ません。
 また
 >これは私の単純な入力ミスで
 ミスなのか、深い事情が有っての事なのか判断できませんので
 それが(正)さんのご希望であると思い 式をつくります。
 (正)さんが間違った情報を私に伝える と言うことは
 「私が【使えない数式を】時間をかけてつくる」と言うことです。

 直前に書き込んでいただいた内容に関しては
 「何度も読んで色々考えてみたけれど、このように求める と言う文章から
  このように求めたい と仰っている表は求まらない」
 と言う結論です。
 つまり、この「解読する」事に私が費やした時間は
(正)さんの希望の数式を作成するために必要な時間ではなかった
 と言うことです。
 私が、何か大きな思い違いをしているので無ければ・・・ですが。

 正しい情報を下さい。
 表を埋める際に、実際に(正)さんがなさっていることをお書き下さい。
 たとえば、
 「I列よりM列の日付が先に確定する」
 なら、その様に書いて頂ければ良いですし
 「I列の日付を求めて、M列を求めてみたら、I列が不要だと判明するので
  I列の日付を削除し、M列に日付を入れる」
 と言う流れで各日付を求めて居られるので有ればその様に書いてください。
 M列の「ただし」に該当する場合も同様です。

 計算方法を言葉で書いたら、一度頭を白紙にして
 その通りに探して、目的の日付が見つけられるかどうか
 導かれた結果は求める物と同じかどうか、ご確認下さい。

 (正)さん以外の方でも、その文章を読んだら
 同じ表を作ることが出来るのなら、私はその文章を元に
 同じ表が作れる式を考えようと思います。
 ただし、私が(正)さんにお伺いを立てるのは
 これで最後にしようと思います。

 誰がやっても、同じ表が作れるだけの説明と
 そのご説明から導き出される求める結果
 の御提示をお願いします。

 私は、(正)さんの求める数式を作るために
 必要な時間を費やすと言う事は、全く問題の無い事だと思いますので
 その点、お間違えの無いよう ご理解下さい。

 (HANA)

 (HANA) 様															
 ご返事、拝読しました。恐縮の極みです。										
 まず最初に私の説明が間違っているため、貴方の貴重な時間を無駄にしたことを深くお詫びします。

 表の元データを6行追加とF列以下のデータを追加又は訂正しました。

          A     B   C   D  E  F   G  H  I  J   K   L   M  N  O   P  Q
1								直近	損切発生	損切値は	最終		決済時点の		一単位		
2	日付	        始値	高値	安値	終値	数量	買単価	最安値	日付	翌始値	決済日	売目標	日付	売単価	損益	判断	結果
3	2006/2/21	3440	3740	3360	3730	*	*	*	*	*	*	*	*	*	*	*	*
4	2006/2/22	3650	3690	3550	3570	*	*	*	*	*	*	*	*	*	*	*	*
5	2006/2/23	3640	3710	3610	3670	*	*	*	*	*	*	*	*	*	*	*	*
6	2006/2/24	3640	3790	3620	3740	*	*	*	*	*	*	*	*	*	*	*	*
7	2006/2/27	3770	3830	3680	3680	1	3680	3570	3月1日	3500	3/7	3790		0	-180	K	損切り
8	2006/2/28	3710	3730	3550	3600	0	0	0		0				0	0		
9	2006/3/1	3500	3550	3420	3460	0	0	0		0				0	0		
10	2006/3/2	3500	3520	3340	3370	1	3340	3370	3月7日	3040	3/10	3440		0	-300	K	損切り
11	2006/3/3	3340	3430	3250	3310	0	0	0		0				0	0	K	買不出来
12	2006/3/6	3510	3520	3380	3430	0	0	0		0				0	0		
13	2006/3/7	3330	3340	3060	3140	1	3040	3140		0	3/15	3130	3月9日	3130	90	K	利喰
14	2006/3/8	3040	3140	2975	3060	0	0	0		0				0	0	K	買不出来
15	2006/3/9	3080	3200	3080	3130	1	3110	3060		0	3/17	3200	3月13日	3240	130	K	利喰
16	2006/3/10	3110	3250	3110	3200	0	0	0		0				0	0		
17	2006/3/13	3240	3260	3130	3140	0	0	0		0				0	0		
18	2006/3/14	3140	3170	3110	3130	0	0	0		0				0	0		
19	2006/3/15	3140	3170	3040	3060	1	3030	3060		0	3/24	3120	3月17日	3120	90	K	利喰
20	2006/3/16	3030	3060	2970	3020	1	3020	3020		0	3/27	3110	3月20日	3270	250	K	利喰
21	2006/3/17	3030	3140	2960	3140	0	0	0		0				0	0	K	買不出来
22	2006/3/20	3270	3280	3160	3190	1	3180	3020	3月23日	3000	3/29	3280		0	-180	K	損切り
23	2006/3/22	3180	3180	3080	3080	0	0	0		0				0	0		
24	2006/3/23	3100	3110	3000	3000	1	3000	3000		0	3/31	3090	3月27日	3110	110	K	利喰
25	2006/3/24	3000	3100	2990	3060	0	0	0		0				0	0		
26	2006/3/27	3110	3130	3050	3070	0	0	0		0				0	0		
27	2006/3/28	3050	3200	3030	3190	1	3190	3000		0	4/5	3290	4月5日	3260	70	K	利喰
28	2006/3/29	3220	3230	3170	3200	0	0	0		0				0	0		
29	2006/3/30	3200	3200	3180	3190	0	0	0		0				0	0		
30	2006/3/31	3190	3200	3150	3160	0	0	0		0				0	0		
31	2006/4/3	3170	3190	3160	3180	0	0	0		0				0	0		
32	2006/4/4	3190	3280	3190	3240	0	0	0		0				0	0		
33	2006/4/5	3260	3300	3210	3290	0	0	0		0				0	0									

 >> I10を例に取れば終値E10:E14までに最安値H10の3370以下の値があれば
E10:E14の部分が間違っています。この部分をE12:E15と訂正します。

 > I13:御提示の【空欄】にはなりません。
 これもI列、M列の日付を表示さす場合の私の説明がまずいのですね。
 F列の数量=0の時はI列もM列も日付は表示しない。
 F列の数量>0で、同行のI列に日付が表示されている時はM列の日付は表示しない。
 F列の数量>0で、同行のM列に日付が表示されている時はI列の日付は表示しない。
 I列の日付は終値で判断しますが、M列の日付はK列>M列のときは高値で判断します。
 例:M13は3/9の高値>L13ので、I13も3/9の終値では<H13となっていますが、
 I列よりもM列の表示を優先させます。その結果I13空白です。
 I列の日付もM列の日付も共に買った日の翌日から4日目中を探す対象にしています。
 追加のサンプルでM27(4/5)はF27(1)で翌日A28(3/29)にD28(3170)の途中で3190で買い、翌日A29(3/30):A32(4/4)中の終値(E列)で<H27(3000)にならず、
 又、翌日A29(3/30):A32(4/4)中の高値(C列)で>L27(3290)にもならずでしたので、K27(4/5)をM27に返しました。
 そしてその場合は、即ちK27(4/5)=M27(4/5)の時のN27(3260)はB27(3260)を返しています。

 >> M13を例に取れば、I3が空白で、買った日3/8の翌日(A15)から
 申し訳ありません。I3はI13の間違いでした。

 > 4日目の3/14(A18)中の高値にL13売目標3130が有ったA列の最初の日を返す。
「有った」を「以上となった」に訂正します。

 > 御提示の3/8にはなりません。
 申し訳ありません。間違いでした。 3月9日が正しい。

 > 「最終決済日が来た」と言うのは、どういう状況でしょうか?
 最終決済日K列に日付が表示されているときに、その日付の前日(元データ日付で)中までにI列もM列も日付が表示されていない時は、
 M列にK列の日付を返すということです。追加サンプルのM27(4/5)のような場合です。

 > 正しい情報を下さい。
 以降の貴方の仰ることはご尤もです。

 以上の通り私の情報をお伝えします。

 ご手数をお掛けしますが、もう一度だけ見てやって下さい。 よろしく御願いします。(正)


 N列用の式がまだ完成していないのですが
 今日はこれでリミットなので、出来ている式だけ載せます。

 ただし、10行目に関して
 			御提示	計算
損切発生	日付	I10	3月7日	無し
損切値	翌始値	J10	3040	無し
決算時点	日付	M10	無し	3月6日

 I10を求めれば3月7日ですが、M10の日付
  高値(C12:C15 3520,3340,3140,3200)>=売目標(L10 3440)
  → C12 → A12 →3月6日
 が存在するため、I10よりM10が優先され
 上記結果になると思うのですが。
 何か見落としが有るのなら指摘してください。

 I7【Ctrl + Shift + Enter】
=IF((F7>0)*(COUNTIF(E9:E12,"<="&H7)>0)*(M7=""),INDEX(A9:A12,SMALL(IF(E9:E12<=H7,ROW($1:$4),""),1)),"")

 J7【Enter】
=SUMIF(A9:A12,I7,B10:B13)

 M7【Ctrl + Shift + Enter】
=IF(F7>0,IF(COUNTIF(C9:C12,">="&L7),
INDEX(A9:A12,SMALL(IF(C9:C12>=L7,ROW($1:$4),""),1)),IF(COUNTIF(E9:E12,"<="&H7),"",K7)),"")

 10行目の結果が合うのなら、22日用に範囲を広げても使えると思います。
 今日は時間が無いので載せませんが、範囲の拡張が上手く行かない場合は
 載せますので、その様に仰ってください。
 N列用の式が完成したときに、一緒に載せます。
(ただし、上手く行かない式の御提示が必須です。)

 F列が0の時、全ての金額に0が入っているのは、ご希望なのですかね?
 また、上の式は他の式(せっかく載せていただいたのですが)の情報を
 加味しておりません。
 どちらが良いですかね?
 現在の物の方が分かりやすいとお考えなら、式をそちらに合わせます。
(特に、M7の式に関してご検討下さい。)

 (HANA)

 間に合った。(・・・のですかね?)
 一応、N列の式も作りました。
 5日間の物です。

 N7【Enter】
=IF(M7="",0,IF(K7=M7,B13,IF((K7>M7)*(SUMIF(A9:A12,M7,B9:B12)>=L7),SUMIF(A9:A12,M7,B9:B12),L7)))

 これででると思います。

 (HANA)

 (HANA) 様

 2度もご回答頂き有難うございました。
 9日早朝より所用で外出いたしまして本日7時ごろ戻って参りました。そのため返事が遅れ申し訳ありません。
 早速拝見させていただきました。

 > 上記結果になると思うのですが。
 仰る通りです。又も私の入力間違いです。3月6日で売単価3510です。

 I7,J7,M7、N7 の4数式入力いたしコピーしました。ぴったり希望通りのものでした。有難うございます。

 >10行目の結果が合うのなら、22日用に範囲を広げても使えると思います。
 4式共22日用に修正しましたところ、正常に答えが返ってきます。有難うございます。

 唯一つ、気になることがあります。答えは正しく出ているのですが。
 5日用のものも22日用のものも共にステータスバーの上に循環の文字が表示されています。

 これは問題ないでしょうか。 (正)6/10 PM9:20


 (HANA)

 追伸。返事が一つ漏れていました。
 > F列が0の時、全ての金額に0が入っているのは、ご希望なのですかね?
 私はF7の式を最初は=IF(G7>0,1,"")としましたところ、F列が空白のときはM列に全部日付が入ってしまいますので、
 F7の式を=IF(G7>0,1,0)として0を表示させています。
 式は=IF(G7>0,1,0)で、条件付書式で0の時は表示しないように変更しました。

 > また、上の式は他の式(せっかく載せていただいたのですが)の情報を
 これ以降の文面の意味がよく解りません。
 ご提示下さったM7の式でOKです。

 (正)6/11 AM 9:00


 ご提示の表に、教えていただいた式を入力し
 私が作成した式を入力しましたが
 「循環」と言う文字は表示されません。
 循環参照となっているセルを特定しそれらの式を教えて下さい。
 (きっと入力した時点でメッセージが出ると思いますので。)

 同シート内でのエラーであれば、
 ステータスバーには「循環:セル番地」と言うように表示されていると思います。
 「循環」と言う文字だけですと、他のシートに循環参照部分が有ると思います。
 計算に影響が出ると思いますので、解消しておくのがよいでしょう。

 >> また、上の式は他の式(せっかく載せていただいたのですが)の情報を
 >これ以降の文面の意味がよく解りません。
 解らなければ、余り追求する必要は無いのかもしれません。

 たとえば、A1,B1,C1セルの合計をD1に出そうと思ったときに
 D1の式は「=A1+B1+C1」としても「=SUM(A1:C1)」としても
 同じ物が求められます。
  ここで「=A1+B1+C1」を使用したとします。
 そしてさらに、D2セルにA2,B2,C2の合計を求めようとしたときに
 D2セルに「=SUM(A2:C2)」とすると、
「あれ?上のセルの式と違うんだけど・・・。
 違う計算をしているのかな?」
 なんて、思いますよね。

 私はなるべく、一貫した考え方、流れに沿った数式となるように
 作っていくのですが、答えが出れば同じ事をする処理に違う方法が
 使ってあっても特に気にならないのであれば、スルーして下さい。

 「一貫した考え方」とは、上記例で
 「流れに沿った数式」とは、今回のI,M列の式を作るときを例にすると
   1.M列の日付をA列から求める。無ければ空欄。
   2.I列は、M列が空欄の時表示。無ければ空欄。
   3.さらに、I列が空欄の時M列には所定の日付を表示。
 これをこのまま式にすると、循環参照になりましたよね?
 回避するためには、I列の式でM列を直接見ない(つまり
 どの様な時に、M列が空欄となるのかを考えそれを条件として使う)
 か、M列の式でI列を直接見ない(同様に どの様な時に、I列が空欄
 となるのかを考えそれを条件として使う)のどちらかの方法
 ・・・勿論両方変更しても良いのですが、式はなるべく簡単な方が良いので・・・
 に変更する必要があります。
 そこで、流れを考えると、
「M列の日付を特定する段階でI列の日付はまだ特定されていないのだから
 I列のセルを見に行っても、その段階では入力されていない」
 →I列のセルを直接見て条件とするのではなく、
  どの様なときにI列が空欄となるのか、それを条件として使う
「I列の日付を特定する段階で、M列の日付は特定されている」
 →M列が空欄かを条件として使う
 と言う“流れ”です。
(この流れで合っているのですよね?)

 循環参照を解消するとき、どちらの式を変更するのかは
 本来どちらでも良いのですが、流れに沿って式を変更しておくと
 後で、式を検証する際にも簡単になるのではないかと・・・思っている次第です。
 ただ、列の先頭から確認をしていくので有れば、I列がM列を見るのではなく
 M列がI列を見るのが良いのかもしれませんが・・・。

 長々と書いていますが、違う点と言えば
  ・AND関数を使うか、論理積と言う考え方を使うか(I列,N列)
  ・条件を重ねて書くか、表示したい結果を重ねて書くか(M列)
 と言う所くらいだと思います。

 M列の式を簡単に言葉にしておくと
 >=IF(F7>0,IF(COUNTIF(C9:C12,">="&L7),
 >INDEX(A9:A12,SMALL(IF(C9:C12>=L7,ROW($1:$4),""),1)),IF(COUNTIF(E9:E12,"<="&H7),"",K7)),"")

 F7が0より大きい?     [F7>0]
   真:M7の該当日付が有る?[COUNTIF(C9:C12,">="&L7)]
        真:日付を計算  [INDEX(A9:A12,SMALL(IF(C9:C12>=L7,ROW($1:$4),""),1))]
         偽:I7日付が有る?[COUNTIF(E9:E12,"<="&H7)]
              真:空欄  [""]
              偽:K7   [K7]
   偽:空欄        [""]

 となっています。
 もしも既に出来ている式と同じ書き方をするなら
   AND(F7が0より大きい,M7の該当日付が有る)→日付を計算
   AND(F7が0より大きい,M7の該当日付が無い,I7日付が無い)→K7
  それ以外→空欄
 と言う形になり、「空欄」は重複しませんが同じ様な条件
(COUNTIF(C9:C12,">="&L7)が1以上か 0か)が重複することになります。

 これらに関しては(正)さんの考えやすい方法で作っておくのが良いと思いますよ。
 この式を今後メンテナンスしていくのは(正)さんでしょうから。

 ○「0」の件は了解しました。
「循環」に関する情報をお待ちしております。

 (HANA)

 (HANA) 様

 ご返事有難うございます。
 > 循環参照となっているセルを特定しそれらの式を教えて下さい。
 あれ! 昨日ステータスバーの上に循環という文字が出ていたのに、今、画面を表示すれば循環の文字が消えています。
 昨日このブックでいくつものシートでこの問題に取り組んでいましたので、
 ひょっとしてどれかのシートで循環になっているのかなと、
 調べて不要な数式を消したりしました。
 其のためかもしれませんが、今は循環という文字が消えて正常です。どうもお手数おかけしました。

 >M列の式を簡単に言葉にしておくと
 ご丁寧な解説有難うございました。嬉しいです。
 何度も読み返して自分のものにさせていただきます。

 今回の質問では (HANA) 様には貴重な時間を長々と費やして頂きました事、申し訳なく改めて御礼申し上げます。
 尚、教えてほしい数式は勿論。コメントの書き方。質問の仕方の要領等、色々な事を教わりました。感謝。

 今後ともどうぞ宜しく、末永くご指導賜りますように御願い申し上げます。有難うございました。
 (正) 6/12  PM3:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.