• ベストアンサー

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

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

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

>「0」と表示されてしまいます。なぜなのでしょう? ⇒仮にMAX(IF(B2:B10="9:00",C2:C10))と時刻を文字列にしていると「0」になると思いますが如何でしょうか。  エクセルの仕様なのでしょうか、””囲みの日付や時刻で比較する場合、シリアル値に変換しないと駄目です。 ”日付/時刻”に「1」を乗算か、DATEVALUE/TIMEVALUE関数で変換する必要があります。  (例)=MAX(IF(B2:B10="9:00"*1,C2:C10))

colnago98
質問者

お礼

よくわかりました! ありがとうございました!(^-^)

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

その他の回答 (4)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.4

日付や時間の文字列を数値(シリアル値)に変換する場合は それ用の関数が用意されてますので 関数使用の方が確実に変換されそうな。。。(^^;;; =MAX(IF(B2:B10=TIMEVALUE("09:00:00"),C2:C10))  

colnago98
質問者

お礼

ありがとうございました! まだまだ勉強が必要と痛感しました(^^;

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.3

【誤】 {=MAX(IF(B2:B10="9:00*1",C2:C10,""))}             ~~~~~~~~ 【正】 {=MAX(IF(B2:B10="9:00"*1,C2:C10,""))}             ~~~~~~~~

colnago98
質問者

お礼

ありがとうございました!(^-^) 助かりました!

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

=SUMPRODUCT(MAX((B2:B10="9:00"*1)*C2:C10)) こんな感じで

colnago98
質問者

お礼

ありがとうございました!(^-^) まだまだ勉強が必要ですね(^^;

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

=MAX(IF(B2:B10=0.375,C2:C10,"")) はどうでしょうか。

colnago98
質問者

お礼

ありがとうございました!(^-^)

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

関連するQ&A

  • 配列数式を用いて、最小値を表示させたい

    配列数式について教えてください。 先回、こちらで質問させていただいて、なんとか理解できつつあります。回答していただきました方、どうもありがとうございました。 一応の理解はできたのですが、応用しようとしたところ、うまく数値が表示されてこないため、再度質問させていただきたいと思います。どうかよろしくお願いいたします。 表を添付いたしましたが、1月2日から4日までで、時間ごとにその最大値と最小値が表示されています。 今回、1月2日に合致したデータで、配列数式を用いて、その最大値と最小値を表示させようとしました。 その結果、最大値はちゃんと表示されるにも関わらず、最小値の値が「0」の表示となってしまいます。 最大値の式は MAX((A2:A10="1月2日"*1)*C2:C10) 最小値の式は MIN((A2:A10="1月2日"*1)*D2:D10) としています。 どこがまちがっているのでしょうか? ご教授、よろしくお願いいたしますm(_ _)m

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

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

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

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

  • 配列数式がうまくいきません

    現在、部品の管理をする為に配列数式をたてて行っています。 集計表にのセルに以下のような式が入っています。 {=SUM(IF($M$10:$M$500=200711,IF($S$10:$S$500={10,11},$T$10:$T$500,0)))} M列:客先の希望納期(2007年11月) S列:こちらの納品月(10月、11月) T列:納入数量 今は自分で行っておりますので年が改まった場合などに式(希望納期月)を書き換えておりますが、担当者が変わると配列数式を知らない方が行うこともありえるので、あるセル(A1)を参照する形で式を以下のように変更してみました。 このようにすればA1のセルの部分を変更するだけでいけると考えました。 {=SUM(IF($M$10:$M$500=VALUE(A1)&11,IF($S$10:$S$500={10,11},$T$10:$T$500,0)))} しかしながら、この式ではうまく行きません。 この計算式のどこがまずいのでしょうか。 よろしくお願いいたします。

  • 配列数式のコピーが、うまくできません

    配列数式で、式のコピーができなくなりました。 同じ形式で以前はできていたのに、今回やってみたところ どうしてもできません。どこがおかしいのか?以前できたと思っていたのは勘違いだったのか?ご存知の方いらっしゃいましたら、ご教授くださいm(_ _)m Aの列に1月4日を5つ、1月5日を4つ、1月6日を3つ表示し、1月4日の個数が何個であるかを、 SUM(I($A$1:$A$12=C1,1,""))の式で表示させ、5の回答を得ました。1月5日・1月6日の欄に、上記の式をコピー・ペーストしたところ、どちらも5の回答になってしまいました。 それぞれコピーされた式に対して、「SHIFT+CTRL+ENTER」の処理をすれば、正しい答えである、4・3の回答を出してきます。 以前は同様のやりかたをして、コピー・ペーストを行っただけで正しい数値がでたと思うのですが、何がおかしいのでしょうか?それとも、個々に再度入力しなければいけないのでしょうか?

  • 配列数式を用いたINDEX関数について教えてください

    INDEX関数について教えてください。 先日来、配列数式について教えていただいている者です。 相場の始値を表示させる式で、INDEX関数を使うと良いと教えていただきました。その際、同じ日にち内でデータを拾う形で質問し、回答していただきましたが、その後、自分で、異なる日にちも含めて表示させようとしたところ、「0」の表示となってしまいました。 式は日にちを変えただけなのに、なぜエラーとなってしまうのかがどうしても分かりません。どうか教えてくださいm(_ _)m 表を添付しましたが、式が小さくてみずらいかと思いますので、下記に表示させていただきます。 【2008/1/4の式】   INDEX($C$2:$C$13,MATCH(MIN(IF(($A$2:$A$13="2008/1/4"*1)*($C$2:$C$13<>0),$B$2:$B$13,"")),$B$2:$B$13)) 【2008/1/7の式】 INDEX($C$2:$C$13,MATCH(MIN(IF(($A$2:$A$13="2008/1/7"*1)*($C$2:$C$13<>0),$B$2:$B$13,"")),$B$2:$B$13))

  • Excelで配列数式を使わずにとびとびの集計をしたいのですが

     ご覧いただきありがとうございます。Excelで、下記のような条件で集計を行いたいと思っています。配列数式を使う方法は考えついたのですが、できれば配列数式を使わず、作業セルもマクロも使わずに普通の関数式で集計したいのです。どなたかおわかりになる方がいらっしゃいましたら、よろしくご教示をお願いいたします。 (条件)  ○4行一組のデータのそれぞれ1行目の数値を足し合わせる。  ○ただし、各組の1行目が空欄の場合は2行目の数値を使う。3行目・4行目は関係なし。  ○データの先頭はA4で、データ数は一定していない。 (考えついた式) {=SUM(IF(MOD(ROW(A4:INDIRECT("A"&ROW()-4)),4)=0,IF(A4:INDIRECT("A"&ROW()-4)>0,A4:INDIRECT("A"&ROW()-4),OFFSET(A4:INDIRECT("A"&ROW()-4),1,0))))}  よろしくお願いいたします。

  • エクセルの数式を教えてください

    お世話になります。 現在、退職後の収入の一環として株取引を考えております。 そこでお教えを願いたいと存じます。 ある数値(A1)が最大値(C1)の+-10%に収まるか、 最小値(C2)の+-10に収まれば●と表示したいと思います。 どのような数式となるでしょうか。 なお、最大値には正数、負数、最小値にも正数負数があります。 よろしくご教授のほどお願いいたします。

  • ある条件を満たした最も近い数値を求める配列数式

    ある条件を満たした最も近い数値を求める配列数式について質問します。 A列には,C列の数値と比較する元になる数値が並んでいます。 B列には,D列の数値と比較する元になる数値が並んでいます。 C列には,A列の数値と比較する対象となる数値が並んでいます。 D列には,B列の数値と比較する対象となる数値が並んでいます。 E列には,計算式が入ります。 すなわち,例えば,E20には, C$1:C20の範囲内の数値で, 右となりにあるD$1:D20の数値が0でなく,かつ,B$1:B20の数値以下である数値の中で, 最もA20の数値に近い数値を求めます。 A  B   C   D  E 1 100  10 89   0   0 2 101 8 90    10    0 3 102 11 92    11   92   4 99 7 77      0   0 5 87 11 68    12   92 6 105   14 100     7   100 7 102 9 78     8   100 8 88 15 102     0    90 9 98 14 99    10    99 10 150 13 78     9   100 11 103  8 79     0   100 12 87 9 68     8   78 13   77   10    70    10   78 14   89   12    71     5   90 15   65   14   102     3   68 16   88   13   105     0   90 17   123  15    98     8   102 18   145  17    99    10   102 19   85    8   100     0   90 20   84    9    87    5    78 一定の条件を満たした配列の合計を計算する関数として,SUMPRODUCT()という便利な関数がありますが, この関数に相当する関数がないので困っています。 MIN関数が配列数式に対応していて,かつ,MIN関数をうまく利用して,最も近い数値を求めることがでるき方法があれば,私の希望が解決できそうなのです。 以上,よろしくアドバイス願います。

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

    ここでエクセルでの文字列の検索方法をさがしていたらさきほど、ちょうど良くこのような配列数式をみつけました。 =IF(A1="","",MIN(IF(ISNA(MATCH("*"&$H$1:$H$9,A1,0)),10,$I$1:$I$9))) A1セルに、H1からH9の表にあるどれかの文字列を含んだ文字列をいれると対応するI1からI9の表の値を表示するものです。 使われているMINやISNAやMATCH関数はわかるつもりですが、組み合わせるとなんでこんなことができるのか、ぜんぜんわかりません。どなたか解説していただけないでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q=653775

専門家に質問してみよう