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

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

A 回答 (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),"")

ご自分で式を打つとまた間違えるので,回答からコピーして貼り付けて使います。

この回答への補足

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

補足日時:2012/01/14 12:11
    • good
    • 0
この回答へのお礼

かいとうありがとうございます。
確かにこれでも出来るのですがある月に空白が合った場合、その前の月のデータを
そのまま表示してることになります。
ですのですいませんが、式はこれが基本になってるんですけど
=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)),"")
これで何とか表示できないものでしょうか?
宜しくお願いします。

お礼日時:2012/01/13 14:39

ごめんなさい。

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

この回答への補足

C$2へ12(12月)と打ち込んでやれば2欄にはデータが入ってくる(4月から12月まではOK)
しかし、1(1月)と打ち込んでやると2欄にはデータが入ってこない(1月から3月までが問題)

C$2を他のセル例えばA$1にしてそこに12、1と打ち込んでやればデータは入ってくる。

何故なのでしょうか?
もう思考の限界です、どなたか宜しくお願いします。

補足日時:2012/01/07 16:24
    • good
    • 0
この回答へのお礼

ありがとうございます。
あと少し、一息ですので助けていただけますでしょうか?

月を表示するセルには下記が入っています。
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として認識されてないのでしょうか?
ややこしくてすみませんが、宜しくお願いします。

お礼日時:2012/01/07 15:36

#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(検索値,範囲,何列目が欲しいのか,完全一致)
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/07 14:49

同じようなご質問を繰り返されていますね。


かなり複雑な式を示されており、しかも式の意味がよく理解されていないようですね。
元のご質問に戻って、最初に考えられた式が思うようではないからでしょう。以下には最初のご質問についてわたくしならこうするといったところを説明します。一度試験してみてください。
最初の表がシート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月分の料金が表示されるようになります。
一度こちらで述べたとおりに試験してみてください。

この回答への補足

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

補足日時:2012/01/07 16:29
    • good
    • 0
この回答へのお礼

ありがとうございます
以前の質問見て頂き感謝いたします。
=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が抜けていました。
ありがとうございました

お礼日時:2012/01/07 14:48

何が出来ないのですか?



あぁ,そもそも「何が出来たら正解」なのか情報提供がないままに回答を貰って,そのまま何も考えずコピーしてみてダメだったという事じゃないですか。
やり方を教わったら,実地に合わせるためにご自分のアタマもしっかり使ってください。そのためにどうしたら良いのかも,お話ししましたよね。


こんな手取り足取りはアナタにもたいへん失礼だとは思いますが,練習ですからこんな具合に考えます。
アナタがヤリタイ事がこういう事だとして:
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なのかもなんだか情報提供がフラフラしてるみたいですけど,そういうつまらないところで間違えて「デキナイできない」になってないかも,よく気をつけてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/07 14:34

何をしたいのかわからないけど、気になる点、



・一つ目のVLOOKUP頭になんで( がある?
・同じく一つ目のVLOOKUPのとじ括弧 )は?これだと、二つ目のVLOOKUPは、一つ目のへ引数(検索方法)を提供していると解釈できる。


GOOD LUCK!
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/07 12:57

パッと見だけですが、





=IFERROR(IF(C2=<3,

の後ろのかっこ (  が不要。


■ひとつめのVLOOKUP の3つめ、4つめの引数が無い
=VLOOKUP(検索値、範囲、何列目、0)


ひとつめのVLOOKUP を締めるかっこ ) が必要



,(C$2)*3+5,FALSE)

の後ろに もう一つ、かっこ ) が必要な気がします。

(IF文を締めるカッコ)
    • good
    • 0
この回答へのお礼

ありがとうございます。

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いれても駄目ですね

お礼日時:2012/01/07 12:55

あなたの今の式だと


=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)
とか
の式を置いて部分的に計算してみて,正しい計算が出来る式を確認しながら作ってみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/01/07 12:45

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