• ベストアンサー

=IFERROR(IF式について

下記の式を直していただきたいのですが =IFERROR(IF(C2=<3、(VLOOKUP(H8,sheet1!C6:AN6,(C$2+5)*3+11,VLOOKUP(H8,sheet1!C6:AN6,(C$2)*3+5,FALSE),"") カッコの位置とかが違ってて計算してくれません。 調べに調べましたがお手上げです。 どうか宜しくお願いします。

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

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

教わったことを元に自分でやってみることがデキナイので丸投げで誰かに作って欲しいと判ったのでしたら,アナタの今のエクセルの姿をもう一度キチンと情報提供してご相談を出し直すべきです。 こんな具合に説明したらいいよと,既に例を挙げておきました。 再掲: アナタがヤリタイ事がこういう事だとして: C2が4の時にはD列を取ってきたい C2が5の時にはG列を取ってきたい  : C2が12ではAB列が欲しい C2が1ではAE列が欲しい  C2が2ではAH列が欲しい  C2が3ならAK列が欲しい  この場合の数式: =IFERROR(VLOOKUP(H8,sheet1!$C$6:$AN$6,C2*3+IF(C2-3<=0,26,-10),FALSE),"") ご自分で式を打つとまた間違えるので,回答からコピーして貼り付けて使います。

kyon0512
質問者

お礼

かいとうありがとうございます。 確かにこれでも出来るのですがある月に空白が合った場合、その前の月のデータを そのまま表示してることになります。 ですのですいませんが、式はこれが基本になってるんですけど =IFERROR(IF(C$2<=3,VLOOKUP(H8,sheet1!C6:AN6,(C$2-5)*3+41,FALSE),VLOOKUP(H8,sheet1!C6:AN6,(C$2-5)*3+5,FALSE)),"") これで何とか表示できないものでしょうか? 宜しくお願いします。

kyon0512
質問者

補足

大変大変、ありがとうございました。

その他の回答 (7)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.7

ごめんなさい。式の入力はシート2のB2セルではなく、B3セルでしたね。

kyon0512
質問者

お礼

ありがとうございます。 あと少し、一息ですので助けていただけますでしょうか? 月を表示するセルには下記が入っています。 1.=JIS(IF(COUNTIF(sheet1!E86:AN86,"=0")<=3,4-COUNTIF(sheet1!E86:AN86,"=0"),16-COUNTIF(sheet1!E86:AN86,"=0"))) データが入ってくるセルには下記の式です 2.=IFERROR(IF(C$2<=3,VLOOKUP(H8,sheet1!C6:AN6,(C$2-5)*3+41,FALSE),VLOOKUP(H8,sheet1!C6:AN6,(C$2-5)*3+5,FALSE)),"") 4月から12月までは表示するのですが 1.には1月から3月までつまり1が1だと4-3=1月と表示されますが 2.の欄が空白のままとなりますのでC$2を他のセルにしてそこに1とすれば入ってくるのです。 1.の欄の1が1として認識されてないのでしょうか? ややこしくてすみませんが、宜しくお願いします。

kyon0512
質問者

補足

C$2へ12(12月)と打ち込んでやれば2欄にはデータが入ってくる(4月から12月まではOK) しかし、1(1月)と打ち込んでやると2欄にはデータが入ってこない(1月から3月までが問題) C$2を他のセル例えばA$1にしてそこに12、1と打ち込んでやればデータは入ってくる。 何故なのでしょうか? もう思考の限界です、どなたか宜しくお願いします。

  • soixante
  • ベストアンサー率32% (401/1245)
回答No.6

#2です。 >とのことですが、普通if文書くときは=if(・・・となるのでは? はい。そうです。わたしが指摘したのは、そこではなく、「C2>=3」の直後のかっこ( が要らないということです。 これは#3さんも「一つ目のVLOOKUP頭になんで( がある?」と指摘されていることと同内容です。 たぶん以下の内容じゃないですかねえ =IFERROR(IF(C2=<3,VLOOKUP(H8,sheet1!C6:AN6,(C$2+5)*3+11,false),VLOOKUP(H8,sheet1!C6:AN6,(C$2)*3+5,FALSE)),"") ひとつずつかっこでくくりながら考えたらいいと思います。 =IFERROR(エラーじゃない場合の返り値,エラーだったら"") =IF(条件,C2が3以下の場合の返り値,それ以外の時の返り値) =VLOOKUP(検索値,範囲,何列目が欲しいのか,完全一致)

kyon0512
質問者

お礼

そうです。 これでできました。 ありがとうございます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

同じようなご質問を繰り返されていますね。 かなり複雑な式を示されており、しかも式の意味がよく理解されていないようですね。 元のご質問に戻って、最初に考えられた式が思うようではないからでしょう。以下には最初のご質問についてわたくしならこうするといったところを説明します。一度試験してみてください。 最初の表がシート1に有って次のようになっているとします。 1行目のB1セルには4を入力し、セルを右クリックして「セルの書式設定」から「表示形式」の分類で「ユーザー定義」を選び、種類の窓ぬは #"月" と入力してOKします。 B1セルには4月と表示されますね。その後にB1セルからD1セルを範囲として「フォーム」タブから「セルを結合して中央揃え」を選択します。これで4月がB1セルからD1セルの中央に表示されるようになります。その結合セルの右下隅の■にポインタを置きALセルまでオートフィルドラッグします。AC1から右のセルは13月、14月、15月となりますのでそれらのセルに1,2,3と入力して1月、2月、3月の表示に変えます。 A2セルには氏名と入力します。B2セルには使用料累積、C2セルには使用料、D2セルには料金と入力します。その後にB2セルからD2セルを範囲として選択し右下隅の■でAL2セルまでオートフィルドラッグします。 3行目以降の行にはデータを入力します。 その後にお求めの表をシート2に表示させることにします。 シート2のA1セルには5月の料金を表示させるのでしたら5と数値のみを入力します。その後にA1セルを右クリックして「セルの書式設定」から「表示形式」の「ユーザー定義」で分類の窓には #"月分使用料" と入力してOKします。これでA1セルには5月分使用料のように表示されます。 A2セルには氏名、B2セルには料金とそれぞれ入力します。 A3セル以降には氏名を入力します。シート1の氏名をコピーして貼り付けてもよいでしょう。 そこでそれぞれの氏名に応じたA1で指定した月における料金をB列に表示させるわけですがB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A3="",COUNTIF(Sheet1!A:A,A3)=0,COUNTIF(Sheet1!$1:$1,A$1)=0),"",INDEX(Sheet1!A:AL,MATCH(A3,Sheet1!A:A,0),MATCH(A$1,Sheet1!$1:$1,0)+2)) これでA1セルに6などの数値を入力することで6月分の料金が表示されるようになります。 一度こちらで述べたとおりに試験してみてください。

kyon0512
質問者

お礼

ありがとうございます 以前の質問見て頂き感謝いたします。 =IFERROR(IF(C2=<3、(VLOOKUP(H8,sheet1!C6:AN6,(C$2+5)*3+11,FALSE),VLOOKUP(H8,sheet1!C6:AN6,(C$2)*3+5,FALSE),"") falseが抜けていました。 ありがとうございました

kyon0512
質問者

補足

これでA1セルに6などの数値を入力することで とありますが、すいません、データ入力した時点で勝手にはいってくるように作られてるんです。 それとまた、一からとなるとため息が出てしまいます。 ほんとに申し訳ないのですが、之を元に教えて頂けないでしょうか? 宜しくお願いします。ホントにすいません。

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

何が出来ないのですか? あぁ,そもそも「何が出来たら正解」なのか情報提供がないままに回答を貰って,そのまま何も考えずコピーしてみてダメだったという事じゃないですか。 やり方を教わったら,実地に合わせるためにご自分のアタマもしっかり使ってください。そのためにどうしたら良いのかも,お話ししましたよね。 こんな手取り足取りはアナタにもたいへん失礼だとは思いますが,練習ですからこんな具合に考えます。 アナタがヤリタイ事がこういう事だとして: C2が4の時にはD列を取ってきたい →2が欲しい C2が5の時にはG列を取ってきたい →5が欲しい  : C2が12ではAB列が欲しい →26が欲しい C2が1ではAE列が欲しい →29が欲しい C2が2ではAH列が欲しい →32が欲しい C2が3ならAK列が欲しい →35が欲しい 練習用の計算セル: =C2*3+IF(C2<=3,26,-10) この場合の数式: =IFERROR(VLOOKUP($H$8,sheet1!$C$6:$AN$6,$C$2*3+IF($C$2<=3,26,-10),FALSE),"") 繰り返しますが,アナタの欲しいコタエがどういうのかこっちには判らないのですから,教わった式と教わったやり方でもう一度ご自分のアタマを使ってよく考えて,正しい数式を作成してください。 #それから? H8なのかH9なのかもなんだか情報提供がフラフラしてるみたいですけど,そういうつまらないところで間違えて「デキナイできない」になってないかも,よく気をつけてください。

kyon0512
質問者

お礼

すいません。 出来ました。 falseが抜けていたのです。 ありがとうございました。

  • kgrjy
  • ベストアンサー率54% (1359/2481)
回答No.3

何をしたいのかわからないけど、気になる点、 ・一つ目のVLOOKUP頭になんで( がある? ・同じく一つ目のVLOOKUPのとじ括弧 )は?これだと、二つ目のVLOOKUPは、一つ目のへ引数(検索方法)を提供していると解釈できる。 GOOD LUCK!

kyon0512
質問者

お礼

解答ありがとうございます。 '=IFERROR(VLOOKUP(H9,sheet!C7:AN7,(C$2-5)*3+5,FALSE),"") これだと動くのですが?

  • soixante
  • ベストアンサー率32% (401/1245)
回答No.2

パッと見だけですが、 ■ =IFERROR(IF(C2=<3, の後ろのかっこ (  が不要。 ■ひとつめのVLOOKUP の3つめ、4つめの引数が無い =VLOOKUP(検索値、範囲、何列目、0) ■ ひとつめのVLOOKUP を締めるかっこ ) が必要 ■ ,(C$2)*3+5,FALSE) の後ろに もう一つ、かっこ ) が必要な気がします。 (IF文を締めるカッコ)

kyon0512
質問者

お礼

ありがとうございます。 IFERROR(IF(C2=<3の後ろのかっこ (  が不要。 とのことですが、普通if文書くときは=if(・・・となるのでは? ひとつめのVLOOKUP の3つめ、4つめの引数が無い =VLOOKUP(検索値、範囲何列目、0) これだと動くのですが? =IFERROR(VLOOKUP(H9,sheet!C7:AN7,(C$2-5)*3+5,FALSE),"") 1行目にFALSEいれても駄目ですね

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

あなたの今の式だと =IFERROR(VLOOKUP(H8,sheet1!C6:AN6,C$2*3+IF(C2=<3,26,5),FALSE),"") のように。 ただし3までと4以上で何列目を取ってくるべきなのかの計算が,(アナタのエクセルの列の配置が判りませんのでコタエは提示できませんけど)少なくともアナタの式では間違っているので,もう一回よく数え直して再検討してみてください。 >調べに調べました 調べてどうなるモンじゃないです。 C2に1,2,3…と数字を入れ替えてみたときに,どこかのセルに =(C$2+5)*3+11 とか =(C$2)*3+5 とか =C$2*3+IF(C2=<3,26,5) とか =C$2*3+IF(C2=<3,41,5) とか の式を置いて部分的に計算してみて,正しい計算が出来る式を確認しながら作ってみてください。

kyon0512
質問者

お礼

解答ありがとうございます。 おっしゃるとおり、やってみるのですが・・・。 出来ないのです。

関連するQ&A