プロが教える店舗&オフィスのセキュリティ対策術

EXCELのシートで1行目に各列の項目名、2行目以降にそのデータがあり、A列に日付、B列に数値があるとします。
そこで、ある年(例えば2018年)のB列の最大値を求める下の式で求まる値は0なります。何が悪いのでしょうか?
修正方法をご教示頂きたくお願い致します。

   {=MAX(IF(ROW(A:A)>1*YEAR(A:A)=2018,B:B))}

A 回答 (3件)

B 列にどういう数値があるのか分からないから、


日本語で何をどうしたいのか、またスクリーンショットがあると分かりやすいけれども。

if の使い方は if (条件式, tureの時, falseの時)
というカンマ2つが必用なんだけど、まずそれが無い。

そして条件式が > なのか = なのか2つ使っているのがダメ。
    • good
    • 0

こんにちは。


間接的な問題は、「EXCELのシートで1行目に各列の項目名」がややこしくしいるのでしょうね。

=MAX(IF(ISNUMBER(A:A),(YEAR(A:A)=2018)*(B:B)))
配列の確定をしてください。 A:A と全行を対象とせずに、項目の部分を除いて、データのある範囲だけを代入すれば、もっと簡単にできたと思います。

また、一例ですが、配列を使わない考え方だと、このようになります。
INDEX関数は不思議な機能を持っているようです。

=MAX(INDEX(A:B,MATCH("2017/12/31"*1,A:A,1),2):INDEX(A:B,MATCH("2018/12/31"*1,A:A,1),2))

なお、ifの条件で、カンマはひとつでも良いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
お教えいただきました下記の数式を使用しました。
  =MAX(IF(ISNUMBER(A:A),…
また、関連する情報をご教示頂き勉強になりました。

お礼日時:2018/12/11 01:34

その式、間違っチョルと思います。


というか、私には意味不明です。宜しければ解説願いたい。
私なら、例えば、次のように書きます。
=MAX(IF(YEAR(A2:A1000)=2018,B2:B1000))
【お断り】上式は必ず配列数式として入力のこと
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘ごもっともです。
ただ、一行目の行が行の途中にあったり、複数あるとき等にソースコードに変更を来すことないように悪戦してるところです。

お礼日時:2018/12/11 01:45

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