• ベストアンサー
  • すぐに回答を!

max関数で#N/A

k1,o1,r1にそれぞれ数式が入っています。 u1で =max(k1,o1,r1) と最大値を求めたいです。 すべてのセルが数値になっているときはもちろんu1も数値になりますが、 #N/Aがあると、u1は#N/A になります。 連続しているセルではないので、{=MAX(IF(ISNUMBER( … は使えません。 やり方をご教授ください。 エクセル2010を使ってます。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数7
  • 閲覧数529
  • ありがとう数8

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

  • ベストアンサー
  • 回答No.6
  • keithin
  • ベストアンサー率66% (5278/7939)

とりあえず判りやすく =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のようにもうちょい綺麗に間隔が並んでいれば,それなりにも出来ます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 根本の式からの作り直しを含め再考します。 ありがとうございました。

関連するQ&A

  • EXCEL関数使用で結果が理解できません

    OS:WindowsXP EXCEL2000 以下の表が既に作成されています。 行 :O(英文字オーです) ------------------ 列 6 | 96 7 |216 8 |216 9 |185 10 |(空欄) 11 |(空欄) ここで、セルR6に以下の式が入力されています。 =INDIRECT("R"&MAX(IF(ISNUMBER(O6:O11),ROW(O6:O11)))&"C"&COLUMN(O6:O11),FALSE) セルR6には185が表示されているため、空欄でない最後の行の数値を 出力させる式のようなのですが、よく理解できません。 ISNUMBER(O6:O11)は全部数値だった場合にTrueになるのですか? ROW(O6:O11)は6でした。 IF(ISNUMBER(O6:O11),ROW(O6:O11))はFALSEです。 MAX(IF(ISNUMBER(O6:O11),ROW(O6:O11)))は0です。 COLUMN(O6:O11)は15です。 どなたか知恵をお貸しください。

  • #260の補足です。四捨五入の方法教えて下さい。

    #5362 NO.#2にて、 IF(ISNUMBER(H2),IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,"")   の式を適用すれば、というご回答を頂きましたが、今度、この数式の結果の小数点以下を四捨五入させる必要が発生したため、 以下のように数式を変更しました。 =IF(ISNUMBER(H2),ROUND(IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,""),0) あるいは、 =ROUND(IF(ISNUMBER(H2),IF(H2>1000,3000+6*700+6*(H2-1000),IF(H2>300,3000+7*(H2-300),"3000"))*65%,""),0) すると四捨五入は出来るのですが、H2セルに数値を入れないと「#VALUE!」が再び出るようになりました。 どうすればいいでしょうか?

  • エクセルのセル内の「数式」の一括変更をVBAなどで行いたいです!

    エクセルのセル内の「数式」の一括変更をVBAなどで行いたいです! いま=O48*($E$8/100)となっている算式を、 =IF(ISNUMBER(O48*($E$8/100)),O48*($E$8/100),"N/A") としたいのです。 また、このような変換を行うべきセルが数百個あり、これをボタンひとつもしくは Ctl+aなどで行えるようにしたいのです。 式の返還は単純で、最初の式をxとすると、IF(ISNUMBER(x),x,"N/A") と置き換えるだけなので、たとえばxという変数に今のセル内の式を代入し、それから IF~の式の指定場所にxを入れる・・・というようなプログラミング処理ができるのでは とかんがえ、質問しました。 よいアイデアをください!!明日までにやる必要があり困っています・・・

その他の回答 (6)

  • 回答No.7
  • CoalTar
  • ベストアンサー率40% (705/1742)

半ば強引に、負にも対応してみました。 =MAX(IF(ISNUMBER(CHOOSE({1,2,3},K1,O1,R1)),CHOOSE({1,2,3},K1,O1,R1))) [Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 負の数値も結構出るので、やってみます。 あるがとうございます。

  • 回答No.5
  • chonami
  • ベストアンサー率43% (448/1036)

>k1,o1,r1の数式がそこそこ長いため 気持ちはわかりますが、やはり元の式にエラーを出さないようにするのが一番だと思いますよ。 せっかく2010なんですから、IFERRORとかでかこってエラー値の時は0とかにしてみたら如何でしょう?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

「エラーと為る数式を変更する方が良いと思う」ですね… ありがとうございます。 やってみます。

  • 回答No.4
  • imogasi
  • ベストアンサー率27% (4558/16316)

>k1,o1,r1の数式がそこそこ長いため とはいっても、質問者の勝手な制約だろう。 元の3セルでエラーが出ないような式を始から組み立てないといけない。その場合強制的にそうする値は、MAXに影響しないような値にしておく(単純な例では0やー1など)。さらに複雑になるがやむをえないだろう。 早く考えを切り替えて別のことを考えること。 場合によってはVBAなど使うと考えが単純かも。 エクセル関数では、引数セルのどれかに計算エラーが起こると全体がエラーになって部分的な材料(セルの値)(エラーを除いて)働く関数は、ないに等しいのでは。 特に配列数式は要注意だ。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

やってみます。 根本的な数式からですね。 ありがとうございます。

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

一例です。 配列が適用できないのであれば、IF関数を3つ並べるぐらいでしょうか。 因みにエラーと為る数式を変更する方が良いと思う。 =MAX(IF(ISNUMBER(K1),K1),IF(ISNUMBER(O1),O1),IF(ISNUMBER(R1),R1))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 やっぱり「エラーと為る数式を変更する方が良いと思う」ですかね。 やってみます。

  • 回答No.2
  • 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))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 何とかやってみます。

  • 回答No.1

元の K1,O1,R1 に#N/A が出ないようにするしかないでしょう。 例えば、K1 の既存の数式に対して「エラーなら空白」になるようにします。 =IF(ISERROR(<数式>),"",<数式>) 同じ数式を2回書く事になりますが・・・その数式がエラーなら空白になります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早々のご回答ありがとうございます。 k1,o1,r1の数式がそこそこ長いため、ここをいじらずに出来たらと思って質問させていただいております。 よろしくお願いいたします。

関連するQ&A

  • 入力した数値を元にその他の数値を効率よく求める方法

    お世話になります。 Excelの関数について質問させていただきます。 図を見て頂ければ早いかとは思いますが、元の量(A2&#65374;A5)を基準に、 現在ある量を入力する事でその他の量が自動で計算できる式を作りたいと思っています。 現時点で試しているのは IF関数を使い、数値の入っているセルを見つける →数値が入っていれば割合を求め数量を出す →数値がなければ次のセルに移動、以下繰り返し 具体的にD2のセルには以下のような計算式が入っています。 IF(ISNUMBER($C$2),$C$2/$A$2*A2,IF(ISNUMBER($C$3),$C$3/$A$3*A2, IF(ISNUMBER($C$4),$C$4/$A$4*A2,IF(ISNUMBER($C$5),$C$5/$A$5*A2, IF(ISNUMBER($C$6),$C$6*B2," "))))) 今は5行しか入っていないので動きますが、実際はもっとある為ネストの制限に引っかかりそうです。 なにより計算式が長くて修正するにも一苦労してしまいます。 ここまで来て行き詰ってしまいました。 既出でしたら申し訳ありません。知恵を貸して下さい。よろしくお願いします。

  • sum関数で合計が返らない。

    sum関数で、数値の入ったセルの合計を求めようとしましたところ、なぜか合計が1600とならなければならないところ、0になってしまいます。 数値の入ったセルが数値であること(文字列ではない)は、isnumberで確認をしたのですが、原因がわかりません。 どなたか解決方法をご存じの方がいましたらおしえてください。 excel2010です。

  • エクセル2000の機能について質問

    エクセル2000を使っているのですが、聞きたい事があって投稿しました。 質問の説明が上手く出来ないのですが、例えば… A1:3 B1: C1:6 D1:5 E1:  のように、セルに数値があります。 これを左から読み取り、最終的に一番右端に入力されている数値だけを抜き取り、別のセル(例えばG1)に表示させるみたいなことって出来るんですか? 補足として入力されていなければ読み込まない。 知り合いに聞いたら、 >結果を表示したいセルに >=INDIRECT("R"&MAX(IF(ISNUMBER(セル番号:セル番号),ROW(セル番号:セル番号)))&"C"&COLUMN( セル番号,セル番号),FALSE)と入力し >{Ctrl}+{Shift}+{Enter}で確定し配列数式とする。 >確定後、数式は、{ }でくくられ、配列数式となる。 >手動で{ }を入力してはダメ。 >セル番号のとこは計算したい選択範囲を入力。 >A1からA5のあいだ入力された右端の数値をA7に出したいばあいA7に >=INDIRECT("R"&MAX(IF(ISNUMBER(A1:A5),ROW(A1:A5)))&"C"&COLUMN(A1:A5),FALSE) >を入力 って言われました。 やってみたけど、出来ませんでした。 誰か教えてくれませんか? お願いします。

  • EXCEL関数について

    質問があります。 エクセルのA行に 定期点検 (月度検査) ラジオ修理 ボリューム つまみ 校正 視力検査 ボールペン 発注 替芯 購入 コピー用紙 経費 ポケットティッシュ配布用    ・    ・       ・  とあるのを、B行に下記の用に変換したいのですが、 検査 修理 検査 検査 購入 購入 購入 購入 その他 その他 その他    ・    ・       ・  下記のように関数をつくったのですが、うまく動きません =IF(A1="","",IF(ISNUMBER(FIND("点検",A1)),"検査",IF(ISNUMBER(FIND("修理",A1)),"修理",IF(ISNUMBER(FIND("校正",A1)),"検査",IF(ISNUMBER(FIND("検査",A1)),"検査",IF(ISNUMBER(FIND("発注",A1)),"購入",IF(ISNUMBER(FIND("購入",A1)),"購入",IF(ISNUMBER(FIND("経費",A1)),"購入,"IF(ISNUMBER(FIND("配布用",A1)),"購入","その他"))))) わかる方がいらっしゃいましたら、どうぞ教えて下さい。

  • エラーを含んだ離れたセルの計算

    A1(セル表示=3)とA3(セル表示=#N/A)の離れたセルの平均値をセルA4に計算する為に 関数の引数で使って数式を作っているのですが、作成中に正しく表示されませんと 表示が出てきて、計算が出来ません。 色々調べてみましたが、何処がおかしいのか判りません。 ご指導お願いします。 #N/Aに対応する為の数式は使っているつもりなのですが・・・・ ちょっとした間違いが原因だと思うのですが・・・・ 入れている式は =AVERAGE(IF(ISNUMBER(A1,A3),A1,A3,""))

  • ExcelのISNUMBERについて

    (1)A2に数値が入った場合、A1には「1」 (2)A3に数値が入った場合は、A1には「2」 (3)A4に数値が入った場合は、A1には「3」 とするには、どうすればいいのでしょう? (1)の数式は =IF(ISNUMBER(A2),1,"") ですが、 その後の(2)(3)が続けてどう入力すればよいのか分からなくて、、、 教えていただけますでしょうか?

  • エクセルで"=AND(ISNUMBER(B2),ISNUMBER(C3),ISNUMBER(D4))"の簡略化?

    エクセル2000です。ワークシート関数での質問です。 特定の複数のセルのすべてに数値が入力されているかどうかの判定は、たとえば以下のような関数で調べられますね? =AND(ISNUMBER(B2),ISNUMBER(C3),ISNUMBER(D4)) このように少ないセルならこれでもいいのですが、多くなってくるといちいち、セルの数だけISNUMBER()を書いていくのが大変になります。 '=ISNUMBER(B2,C3,D4)←これでは当然エラーになりますが、こんな感じで簡単に判定するワークシート関数はないのでしょうか?

  • EXCEL2000でPRODUCT関数を使うと#N/Aエラーが出る

    EXCEL2000でPRODUCT関数を使うと#N/Aエラーが出る PRODUCT関数を使って計算させていて、計算セル範囲内に1つだけ数値を引用したセルがあるのですが計算結果が#N/Aになりますどうすればエラーがなくなる様にできるでしょうか、わかる方宜しくお願いします。 (現在の数式例)E1 「=PRODUCT(A1:D1)」 A B C   D       E 1 2.0 3.0 4.0  =INDEX・・・  #N/A

  • マクロ記録実行で実行時エラー'1004'発生

    excel2010 B2セルに文字列が入っています。 文字と数値の混載です。 数値の位置は不定です。 L2のセルで、下記判定をします。 B2セルの文字列(約20文字程度)の左から4番目がドだったら、数値を抽出、ド以外だったら空白。 WEBで計算式があったので、それをそのままマクロの記録としました。 Range("L2").Select ActiveCell.FormulaR1C1 = _ "=IF(RIGHT(LEFT(RC[-10],4),1)=""ド"",MID(RC[-10],1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(RC[-10]))),)),MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))*ROW(INDIRECT(""1:""&LEN(RC[-10]))),))-1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(R" & _ "),))+1)*1,"""")" Range("L3").Select で記録されます。 上記を、マクロの実行すると実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 と表示されます。 何がおかしいのでしょうか? シートで、マクロでなく、L2セルでF2リターンとする分には、数値が表示されます。 下記は、L2の中身です =IF(RIGHT(LEFT(B2,4),1)="ド",MID(B2,1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),)),MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))*ROW(INDIRECT("1:"&LEN(B2))),))-1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),))+1)*1,"")

  • セル内の文章から文字を抜出したいです

    セル内の文章から文字を抜出したいです。 文字の書き方は、本当にランダムな並び方をしています。 [例] A1セル あいうえお12345 ↓ B1セル ○○ A2セル かきくけこ456789 ↓ B2セル ■■ いま、下の関数式を入れていますが、5つしか文字を抜き出せません。 せめて倍の10個は抜出したいのですが、どうすればいいでしょうか? =IF(ISNUMBER(FIND("あいうえお",A2)),"OO",IF(ISNUMBER(FIND("さしすせそ",A2)),"■■",IF(ISNUMBER(FIND("かきくけこ",A2)),"□□",IF(ISNUMBER(FIND("たちつてと",A2)),"◇◇",IF(ISNUMBER(FIND("なにぬねの",A2)),"△△","その他"))))) よろしくお願いいたします。