- ベストアンサー
max関数で#N/A
k1,o1,r1にそれぞれ数式が入っています。 u1で =max(k1,o1,r1) と最大値を求めたいです。 すべてのセルが数値になっているときはもちろんu1も数値になりますが、 #N/Aがあると、u1は#N/A になります。 連続しているセルではないので、{=MAX(IF(ISNUMBER( … は使えません。 やり方をご教授ください。 エクセル2010を使ってます。 よろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず判りやすく =MAX(IFERROR(K1,-99),IFERROR(O1,-99),IFERROR(R1,-99)) -99はてきとーに,とかの方が簡単と思いますが, 一応出来ると言うことでは =MAX(IFERROR(IF(COLUMN(K1:R1)={11;15;18},K1:R1),"")) をCtrl+Shift+Enterとかでも出来ます。 K1,O1,S1のようにもうちょい綺麗に間隔が並んでいれば,それなりにも出来ます。
その他の回答 (6)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
半ば強引に、負にも対応してみました。 =MAX(IF(ISNUMBER(CHOOSE({1,2,3},K1,O1,R1)),CHOOSE({1,2,3},K1,O1,R1))) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
お礼
ありがとうございます。 負の数値も結構出るので、やってみます。 あるがとうございます。
- chonami
- ベストアンサー率43% (448/1036)
>k1,o1,r1の数式がそこそこ長いため 気持ちはわかりますが、やはり元の式にエラーを出さないようにするのが一番だと思いますよ。 せっかく2010なんですから、IFERRORとかでかこってエラー値の時は0とかにしてみたら如何でしょう?
お礼
「エラーと為る数式を変更する方が良いと思う」ですね… ありがとうございます。 やってみます。
- imogasi
- ベストアンサー率27% (4737/17069)
>k1,o1,r1の数式がそこそこ長いため とはいっても、質問者の勝手な制約だろう。 元の3セルでエラーが出ないような式を始から組み立てないといけない。その場合強制的にそうする値は、MAXに影響しないような値にしておく(単純な例では0やー1など)。さらに複雑になるがやむをえないだろう。 早く考えを切り替えて別のことを考えること。 場合によってはVBAなど使うと考えが単純かも。 エクセル関数では、引数セルのどれかに計算エラーが起こると全体がエラーになって部分的な材料(セルの値)(エラーを除いて)働く関数は、ないに等しいのでは。 特に配列数式は要注意だ。
お礼
やってみます。 根本的な数式からですね。 ありがとうございます。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 配列が適用できないのであれば、IF関数を3つ並べるぐらいでしょうか。 因みにエラーと為る数式を変更する方が良いと思う。 =MAX(IF(ISNUMBER(K1),K1),IF(ISNUMBER(O1),O1),IF(ISNUMBER(R1),R1))
お礼
ありがとうございます。 やっぱり「エラーと為る数式を変更する方が良いと思う」ですかね。 やってみます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
セル自体に#N/Aが表示させないようにすればよいのですが、それをしないままで現在のままで最大値を求めるのでしたら、次のような式にすればよいでしょう。 =MAX(IF(NOT(ISNUMBER(K1)),0,K1),IF(NOT(ISNUMBER(O1)),0,O1),IF(NOT(ISNUMBER(R1)),0,R1))
お礼
ありがとうございます。 何とかやってみます。
- Cor_moriyan
- ベストアンサー率41% (92/221)
元の K1,O1,R1 に#N/A が出ないようにするしかないでしょう。 例えば、K1 の既存の数式に対して「エラーなら空白」になるようにします。 =IF(ISERROR(<数式>),"",<数式>) 同じ数式を2回書く事になりますが・・・その数式がエラーなら空白になります。
お礼
早々のご回答ありがとうございます。 k1,o1,r1の数式がそこそこ長いため、ここをいじらずに出来たらと思って質問させていただいております。 よろしくお願いいたします。
お礼
ありがとうございます。 根本の式からの作り直しを含め再考します。 ありがとうございました。