• ベストアンサー

配列数式を用いて、表を完成させたいのですが

配列数式について教えてください。 配列数式についてこちらのサイトで教えていただき、自分が作成したいと思っていた表がだんだん形となってきました。 ご回答いただいた方々、本当にありがとうございましたm(_ _)m 作成したいと思っている表は、株の1分単位の始値・高値・安値・終値を表示するようにしたいと思っているのですが、始値・安値についてうまくできません。 配列数式と若干異なるかもしれないのですが、エクセルで表示が可能かどうかを教えていただけないかと思い、再度質問させていただきたいと思います。 表を添付しました。通常9:00に始値がつくのですが、1月2日は調整がつかなかったため、金額が「0」で表示されています。 表示させたい始値は、金額がついた9:02の「8000」を表示させたいと思います。また最小値も、「0」ではなく、9:03の「7800」を表示させたいと思います。 何か良い方法はないでしょうか?

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

No1です IF((B2:B7>="9:00"*1)*(B2:B7<="9:05"*1)*E2:E7,E2:E7,"") IF分は(条件式、真(TRUE)の場合、偽(FALSE)の場合)となります 今回の最小値算出は取引の無かった時間帯(金額が0の値)のデータを除いた最低値の算出になっているので、金額も条件に加えています。 配列で考えるとE列の配列(E2:E7)は 0,0,7900,7800,7950,8000 時間帯指定の(B2:B7>="9:00"*1)*(B2:B7<="9:05"*1)の計算結果は 1,1,1,1,1,1 時間帯の条件だけで計算するとIF分の結果が 0,0,7900,7800,7950,8000 になりMIN(0,0,7900,7800,7950,8000)の計算から最低金額は0になってしまいます 条件式に金額を掛ける事でIF分の計算結果が "","",7900,7800,7950,8000 となり(IF分の計算結果で0は""(NULL)に変換されます) MIN("","",7900,7800,7950,8000)の計算結果として7900が最低値として算出される事になります。 (MIN関数は""は算出対象に含まないため)

colnago98
質問者

補足

ありがとうございました! よくわかりました(^-^) ようやく表が完成できます。 ちなみに、【始値の式】については、あんな感じの理解でよいでしょうか? 【始値の式】(再掲)  INDEX(C2:C7,MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7)) (式を分解して考えると・・・)  (1)MIN(IF(C2:C7<>0,B2:B7,""))   C2からC7の中で、数値が0でないものを選び、その時間の中から   最小値を選び出す→9:02が選ばれる  (2)MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7)   選ばれた9:02が、B2からB7の中で、何行目にあるかを   表示する→4行目  (3)INDEX(C2:C7,MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7))   C2からC7の中で、4行目にある数値を表示する→8000

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

もう少し補足 IF分の条件式は計算結果をTRUEまたはFALSEのみで返します 計算結果が0の場合はFALSE、0以外の場合はすべてTRUEを返します。 今回のように0より大きい最低値算出の場合 (E2:E7>0)と表記するのとE2:E7と表記するのは同じ結果になるため余分な計算式を省いただけです。 金額にマイナスの値がある場合で0より大きいとの条件があった場合には (E2:E7>0)と条件付けが必要になります。

全文を見る
すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

1月2日の初値(つまり0の最後の行の下の値で宜しいですよね) =INDEX(C:C,MATCH(0,C:C)+1) 最小値(0以外) =MIN(IF(C2:C7=0,"",C2:C7)) Ctrl+Shift+Enter では如何でしょうか。

colnago98
質問者

お礼

INDEXやMATCHの関数を勉強する必要がありそうですね。 たいへん参考になりました。ありがとうございました!(^-^)

全文を見る
すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

始値(配列計算) {=INDEX(C2:C7,MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7))} 最小値(配列計算) {=MIN(IF((B2:B7>="9:00"*1)*(B2:B7<="9:05"*1)*E2:E7,E2:E7,""))} この表ならこれでできると思うけど、毎回質問の度に表の形式が変化してるようですが、基本的な考え方に大きな違いは無いはずです。 回答で得た数式の意味合いが理解できていれば応用で対応できるはずなのですが、計算式の意味が分からないのであればその旨補足したら詳しく説明をいたしますよ。

colnago98
質問者

補足

早速の回答ありがとうございます。おっしゃっていただいたように計算式の意味がしっかりと分かっていないため、応用ができないのだと思います(^^; 今回の式は、よく知らない関数も出ており、ネットにて調べながら理解したつもりなのですが、下記の考えでよいでしょうか?式が何を意味しているか、分解して考えてみました。 【始値の式】  INDEX(C2:C7,MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7)) (式を分解して考えると・・・)  (1)MIN(IF(C2:C7<>0,B2:B7,""))   C2からC7の中で、数値が0でないものを選び、その時間の中から   最小値を選び出す→9:02が選ばれる  (2)MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7)   選ばれた9:02が、B2からB7の中で、何行目にあるかを   表示する→4行目  (3)INDEX(C2:C7,MATCH(MIN(IF(C2:C7<>0,B2:B7,"")),B2:B7))   C2からC7の中で、4行目にある数値を表示する→8000 (最小値の式)  MIN(IF((B2:B7>="9:00"*1)*(B2:B7<="9:05"*1)*E2:E7,E2:E7,""))}    最小値の式はIF((B2:B7>="9:00"*1)*(B2:B7<="9:05"*1)は理解でき るのですが、「*E2:E7」を条件に加えることで、「0」が最小値から  省かれてしまうところがよくわかりません。「*E2:E7」は何を意味す るのでしょうか?  たいへんお手数かけて恐縮ですが、ご教授のほうよろしくお願い  いたしますm(_ _)m   

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 新聞株式欄の見方

    お世話になります。 新聞の株式欄について教えてください。 始値、高値、安値、終値、前日比、売上高が記入されていることは、ネットで調べてはわかりました。 銘柄の横にAとあれば、売るときは100株単位で、というのもわかりました。 書かれている数字なのですが、1株の価格でしょうか? たとえば、 始値3,085 高値3,090 安値3,080 終値3,050 とある場合、5000株所有しているといくらになりますか?株価は一日に何度も変わるようですが、素人にわかるようにお願いします。 株の知識はまったくないのですが、このたび相続することになりそうで・・・価値を知りたいのです。 よろしくお願いします。

  • 配列数式について教えてください

    配列数式について教えてください。 表を添付しました。配列数式を用い、データの抽出をしようとしましたが、「0」の表示となってしまい、希望する数値が表示 されませんでした。式も、表に記入してあります。 どうすれば、正しいデータが抽出されるでしょうか? 表の内容は、1月2~4日までのデータがあり、、それぞれ9:00~9:02の1分ごとに、その最大値と最小値が記入されています。 1月2日~4日の中で、9:00に該当した最大値を抽出したいと 思います。表に従えば、「70」が表示されるべきですが、「0」と表示されてしまいます。なぜなのでしょう? 式のどこを直したらよいか、どうかご教授願います。

  • 日経225先物ミニの先物の4本値は証券会社ごとに違うのでしょうか?

    私の使っている楽天証券のマーケットスピードの表示では 4/8 始値 8850 高値 8850 安値 8560 終値 8580 4/9 始値 8580 高値 8950 安値 8570 終値 8930 4/10 始値 8900 高値 9100 安値 8850 終値 8970 です。 この数値は正しいでしょうか? ケンミレというサイトで見ると、数値が違います。 http://chart.miller.co.jp/chart.cgi?0101I なぜ、このような違いになるのでしょうか? 私の設定ミスでしょか?

  • EXCELの表を作りたいのですが....

    メモ帳に縦に日付け、横に始値・高値・安値・終値(株をやっている関係上)、 と4つが羅列されていますが、このメモ帳の数字をタブ?か何かで区切って EXCELに効率よく転記したいのですが、PC詳しい方いましたら、教えて ください。

  • 株の初歩的質問 日付をまたいだ指値注文について

    初歩的質問ですが、教えてください。 例えば 1日目が 始値 100円 安値 100円 高値 100円 終値 100円 2日目が 始値 120円 安値 120円 高値 120円 終値 120円 の銘柄があったとして 1日目の始値で100株購入し、 1日目の昼ごろに110円で指値売り注文(期間は1週間)を出したとします。 この時、2日目の朝に約定する金額はいくらになるのでしょうか?

  • その日終了分の始値・高値・安値・終値一覧表のWEBページ?

    ●その日終了した、全銘柄(東証1だけでも結構)の始値・高値・安値・終値が一覧表でわかるWEBページがあったら教えてください。

  • ロウソク足 チャート

    ロウソク足チャートを一目見るだけで始値、終値、高値、安値が一目瞭然だと、どこかのサイトに載っていましたが、私の場合高値と安値は分かるのですが始値と終値がどうなっているのかがわかりません。 見方を教えて下さい。 宜しくお願い致します。

  • 過去の始値から終値のデーター

    東京市場の過去から現在の始値・高値・安値・終値のデーター NY市場の過去から現在の始値・高値・安値・終値のデーター をダウンロードできるところってありますか? 無料で!

  • エクセル2000で株グラフを作成していますが

    エクセル2000で株グラフ(ローソク足)を作成しています。 何とかローソク足とチャートまで表示させる事が出来ましたがグラフの日付が取引のない日まで表示されるのでチャートで終値だけを結ぶと何日も取引がない時には変な感じになってしまいます。 取引のない(出来高・始値・高値・安値・終値のデータのない)日を表示させないで終値を結ぶ線を表示する方法はあるでしょうか? 宜しくお願い致します。

  • 配列数式で行を増やすためには

    シート1の一覧表からシート2の配列数式の入った表へある条件のものを抽出する作業を行っています。 シート2で行を増やそうと思い、配列数式の入ったセルを選択→解除→行を増やす→再度配列数式へ、という作業を行いました。 しかし、#N/Aというエラー表示がでます。シート1の表と指定範囲は変わっていないのにエラー表示はなぜ出るのでしょうか。

専門家に質問してみよう