- ベストアンサー
IF式で結果が表示されないのですが
- 質問者のシートにおいて、IF式の結果が期待通りに表示されない状況が発生しています。
- 質問者が記載されている式を用いてデータを集計しているが、一部の条件で結果が表示されず、それに対する解決策を求めています。
- IF式の条件によって、表示されるデータの範囲が変動するが、一部の条件では表示されない問題があります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ということはアナタの出してくださった >4月はG、5月はJ、6月はM、最後は3月のAN列のデータが欲しいです。 これがやっぱりまだ間違いで 今度こそ本当? 4月の数字をまだ入れてない時は,何も欲しくない 4月を記入してC2が「5月」になったら「G列の数字」が欲しい 5月の数字が入ってC2が「6月」になったらJ列の数字が欲しい いまC2が1月なので,12月の数字が欲しい 3月の数字を入れるとC2は「4月」になり,その時は3月のANが欲しい では =IF(COUNTIF(Sheet1!E86:AN86,"=0")=12,"",IFERROR(VLOOKUP(H8,sheet1!C6:AN6,C2*3+IF(C2-4<=0,26,-10),FALSE),"")) とでもしておいてください。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
>4月はG、5月はJ、6月はM、最後は3月のAN列のデータが欲しいです。 これだけ確認を重ねてようやくココまで出てきました。お疲れ様です。ようやくですが。 ところが >つまりAN列のデータでなくD列が入って来てます。 : >最後の3月の時点で、D列には前年度のデータがはいっているのですが、このデータを持ってきてしまっています。 これが意味しているのは, 1)これまでアナタが「4月から12月までは出来ていた」と言ってたアナタの(2)の式と,私の数式がどちらも 全部の列がゼロでC2が「4(月)」になっている時には4月じゃなくD列の前年の値を 4月列に1つ数字が入って「5月」になっている時には5月じゃなくG列の4月の値を それぞれ計算してる間違った数式なのに,間違ってることに気付かずに「出来た出来た」と言ってたのか それとも実際にはこっちではないかと思いますが 2)実際の(2)の式はアナタがエクセルで動かしているのは全然違う間違った数式なのに,ご相談投稿ではただの手抜きで以前のご相談からのコピー貼り付けで説明を使い回ししてて,肝心の今実際にアナタが動かしている数式とは違う間違った情報提供している のどちらかだということです。 補足してくださいその1) 一体どっちなのですか? それで実際の今のアナタのエクセルの(2)の式はどうなっているのですか? 今度の今度こそホントの情報提供をしてください。漏れなく。間違いの無い内容で。 ちなみに3月まで進んで全部のゼロ無くなった時に「D列の前年度」が計算されるのは,C2の(1)の数式が間違っていて,ゼロが全部消えたときにC2に「4月」が計算されるせいです。 C2の(1)の式が間違ってるので,そこから直さないと出来ません。 補足してくださいその2) いま,4月のG列がゼロじゃなく数字が入ったらC2に「4」を計算して数式では4月の値を参照したい 最後の3月のAN列に数字が入ったらC2に「3」を計算して数式では3月の数字を参照したい ハズですが それでいいんですね? それとも違うんですか? 違うならどうしたいのですか? 補足してくださいその3) 4月から3月まで全部ゼロでまだ一つも数字が入っていないとき,C2にはナンと表示したいですか また数式はいったい何を計算させたいのですか? ちなみに全部ゼロの時にももう「4月」とC2に出したいなんて返事が帰ってきそうですが,そうすると4月だけ「4月の数字が入ったとき」と「4月の数字がまだ入ってないとき」の両方に4月と計算しなきゃならなくなるので,そういうやり方ではない使い方を考えてください。どうしたらいいのか,使うのはアナタなので。 これまで何を補足することが求められているのか,回答を読み取るチカラが乏しい(または実際に補足することが出来ない)返答が続きましたので,補足してくださいという内容を噛み砕いて書いておきます。しっかり読み取って,キチンと補足してください。
お礼
解答ありがとうございます。 再度確認します。 (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)),"") (1)式でsheet1で4月のデータを入れたらsheet2のC2には5(5月)と次の月を表示させたいです。 ですので現在12月まで入っていますのでC2には1(1月)となっています。 ここで私のわかりにくい文とkeithinさんの解答が食い違っていたと思います。 sheet2のG8からG9、G10と下に(2)式が入っていて現在C2が1となっていますのでG列は表示されていません。前月まで4月~11月までは確かに表示されています。 sheet1のAとB列は認識番号みたいなのが入っていて、Cに氏名、Dに前年度末データ、4月[E(累積)F(使用量)G(料金)]5月[HIJ]となっていて、0が入っているのは料金列(GJM・・)だけです。 補足1 =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)),"") 補足2 すいません、ちがいます。 4月のG列に数字が入ったらC2に5を計算して最後のAN列に入ったら4月を表示したいのです。 補足3 考えたのですが、00とでもしておきましょうか。 では宜しくお願いします。
- CC_T
- ベストアンサー率47% (1038/2202)
非常に難解な説明文で、さっぱり理解できませんが・・・。 とりあえず(1)部分に「1」を入れれば(2)が表示されるという事は、単に(1)のIF文の結果が「1」になっていないってだけでしょう。 (1)の下にでも作業用のセル行を挿入して、(1)のIF文の条件部分を入力して返り値が何になるか確認してみてはどうでしょうか。 12月を越えて1月になると年が変わるので、カウントされていないとかいうありがち凡ミスの可能性があるのでは? あとはjis()使っているところ見ると、文字の1と数字の1が区別されるから認識されてていないなんて可能性もありそうですね。
- keithin
- ベストアンサー率66% (5278/7941)
前にも指摘しましたが,どこ列に何を入れているですか? (2)のその式で4月から12月までのデータだけでもなんとか取ってこれるというのなら, >E86:AN86まで左から4月、5月・・・12月、1月・3月、とデータを入れて というご説明が間違っています。 それから1月~3月の値が取ってこれない現象は,前回回答の式でキチンと対処をしておきました。 しかし何でしたっけ? 空白があると前月がどうとかまったく頓珍漢なお返事でしたので,もはやご自分のエクセルの状況を説明することが出来ないんだな,これ以上おつきあいしても先に進まなそうだと回答するのを止めたワケですが,今回は「欲しい列のセルには合計の式が入っているのでゼロが記入されている」という事なので,空白云々は解消できましたね。 もう一回だけ念を押しておきますが,アナタの =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)),"") の式と,前回最後に回答した =IFERROR(VLOOKUP(H8,sheet1!$C$6:$AN$6,C2*3+IF(C2-3<=0,26,-10),FALSE),"") の式は,「1月から3月も正しく計算できる」ように手直しした以外は,全く同じ計算式です。 (この計算でVLOOKUP関数を使う必要は<<全くありません>>が,そこはアナタのこだわりを尊重しています) アナタの式で4月~12月が計算できてるなら,この式で4月から3月まで計算できます。 ただし,ホントに欲しいデータが,先来より繰り返し確認しお聞きしているように 4月は何列に合計の式が入れてあるの? 5月は何列なの? : 1月は何列で3月は何列のセルの計算値がホントに欲しいの? というのを「もう一回よく目を開けてご自分のエクセルを確認して」キチンと情報を出してみると,今度こそ上手く行くかも?しれません。
補足
すみません。大変お手数をおかけしております。 でも、何とか一生懸命やっているのでそんなにおっしゃらないで下さい。 おっしゃるとおりで確かに自分の状況を説明出来ていないみたいです。 勘違いなどもあり、前回のkeithinさんの式で合っていました。 ところが、最後の3月の時点で、D列には前年度のデータがはいっているのですが、このデータを持ってきてしまっています。つまりAN列のデータでなくD列が入って来てます。 4月はG、5月はJ、6月はM、最後は3月のAN列のデータが欲しいです。 宜しくお願いします。
お礼
出来ました。 これがやりたい事です。 大変大変、お世話になりありがとうございました。 しかし、とでもしておいてというのは・・・?