- ベストアンサー
Excelで条件を2つ満たすセルに金額を入力(表示)させるには
色々と考えてみたのですが、上手く結果が出せなかったので質問させてください。 添付のような表で右側のL3:M10に条件があります。 L列にはカテゴリの条件、M列には担当の条件です。 黄色く塗られている範囲に、この二つの条件に見合うセルにN列の金額を表示させたいのですが、関数やマクロなどを使って自動で表示させることが出来るのでしょうか。 例)カテゴリが●●(8行目)、担当がBBB(D列)にあたるD8に、5,200という数値を表示 今は手で自分で確認しながらやっていますが、数が多い(実際にはもっとデータ量があります)のと間違えそうで、単純なことでありますが時間を取られてしまっています。 何か作業を省略できる方法があれば教えてください。 よろしくお願いします。 [Excel2003/Windows XPを使用]
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
NO1です。 早とちりしました訂正版です。 (1)C4に=SUMPRODUCT(($L$3:$L$8=$A4)*($M$3:$M$8=C$2)*$N$3:$N$8)として縦横にコピー (2)表示範囲のセルの書式設定をユーザ定義でG/標準;;;@として下さい。(0を空白にしています)
その他の回答 (7)
- mo2yakko
- ベストアンサー率54% (30/55)
あらっNo2です。 K行とL行の間に行を挿入します。 (LMN行はMNO行にズレマス) L3に=M3&N3を入力し、コピー。 C4セルに下の式を入力してコピー(^^; =IF(ISERROR(VLOOKUP($A4&C$2,$L$4:$O$8,4,0)),"",VLOOKUP($A4&C$2,$L$4:$O$8,4,0)) で、L行は非表示に~ 比較的簡単な計算式にするならですが(^^;
お礼
2度目の回答いただきありがとうございます! 作業列を入れてかなりシンプルな表になりますね。新たに作業列入れてVlookupで引っ張ってくるまで頭が回りませんでした。 たくさんの方から色々な式を教えていただいたので、実際の表に式を入れて確認したいと思います。 自分一人では式が浮かばず困っていたのでとても助かりました。ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
B3セルには次の式を入力してI3セルまでオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(B$2="",$A3="",COUNTIF($L:$L,$A3)=0,COUNTIF($M:$M,B$2)=0),"",IF(MATCH($A3,$L:$L,0)=MATCH(B$2,$M:$M,0),INDEX($N:$N,MATCH($A3,$L:$L,0)),""))
お礼
おーー。こういった組み合わせでもきちんと表示されるんですね。 MATCHやVLOOKなどは考えてみたのですが、COUNTIFを入れるのは全然浮かびませんでした。 いやぁ勉強が足りないなぁ、とちょっと落ち込みます(苦笑) たくさんの方から色々な式を教えていただいたので、実際の表に式を入れて確認したいと思います。 自分一人では式が浮かばず困っていたのでとても助かりました。ありがとうございました。
- nattocurry
- ベストアンサー率31% (587/1853)
C4に、 =IF(ISERROR(VLOOKUP($A4,$L$3:$N$9,1,0)),"",IF(VLOOKUP($A4,$L$3:$N$9,2,0)=C$2,VLOOKUP($A4,$L$3:$N$9,3,0),"")) と入力して、C4:I10 にコピーでどうでしょう。
お礼
結構シンプルな式ですね。 ISERRORもVLOOKもIFも1つ1つは理解しているつもりでも、組み合わせるのがどうも苦手で思い浮かばず。。。 たくさんの方から色々な式を教えていただいたので、実際の表に式を入れて確認したいと思います。 自分一人では式が浮かばず困っていたのでとても助かりました。ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
No.3です! たびたびごめんなさい。 前回の数式は1行ずれていました。 C4セルの数式は =IF(ISERROR(INDEX($N$3:$N$100,MATCH($A4&C$2,$O$3:$O$100,0))),"",INDEX($N$3:$N$100,MATCH($A4&C$2,$O$3:$O$100,0))) に訂正してください。 どうも何度も失礼しました。m(__)m
お礼
補足ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 画像の表「O」列に作業用の列を設けます。 O3セルに =L3&M3 としてオートフィルでずぃ~~~!っと下へコピーします。 そして、C3セルに =IF(ISERROR(INDEX($N$3:$N$100,MATCH($A3&C$1,$O$3:$O$100,0))),"",INDEX($N$3:$N$100,MATCH($A3&C$1,$O$3:$O$100,0))) という数式を入れ、列方向と行方向にオートフィルでコピーしてみてはどうでしょうか? 尚、数式はL~N列の100行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 以上、参考になれば良いのですが 的外れなら読み流してくださいね。m(__)m
お礼
作業列を作ると式も理解しやすくなりそうですね。 たくさんの方から色々な式を教えていただいたので、実際の表で入れてみて確認したいと思います。 100行までの対応もありがとうございました!とても参考になりました。 自分一人では式が浮かばず困っていたのでとても助かりました。ありがとうございました。
- mo2yakko
- ベストアンサー率54% (30/55)
こんな感じでどうでしょう? N3に計算式入力してコピーです (1)=VLOOKUP(L3,$A$4:$I$10,MATCH(M3,$A$2:$I$2,0),0) (2)=VLOOKUP(L3,$A$4:$I$10,MATCH(M3,$C$2:$I$2,0)+2,0)
お礼
素早いご回答感謝いたします!
補足
#1の補足にも書きましたが、私の例が悪く混乱させてしまって申し訳ありません。 数値を表示させたいのはN列ではなく、C4:I10になります。 お手を煩わしてしまい申し訳ありません。もしお分かりになるようでしたら教えてください。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 N3に=INDEX($A$3:$I$10,MATCH($L3,$A$3:$A$10,0),MATCH($M3,$A$3:$I$3,0))として下方向にコピー
お礼
素早いご回答感謝いたします!
補足
早速のご回答ありがとうございます。 申し訳ありません、表が見づらい上に私の文章が分かりづらいものなのですが、本来黄色く塗られた範囲が空白になっています。 L列とM列の条件を満たした黄色いセルに、N列の金額を表示させたいのです。
お礼
こちらも2度目の回答までいただきありがとうございます。 SUMPRODUCT関数、お恥ずしながら知らなかったです…。セルの書式を使えば0の表示回避も簡単ですもんね。 たくさんの方から色々な式を教えていただいたので、実際の表に式を入れて確認したいと思います。 自分一人では式が浮かばず困っていたのでとても助かりました。ありがとうございました。 -*-*-*-*-*-*-*-*-*-*-*-*-*-*- たくさんのご回答いただき皆様本当にありがとうございました。 Excelそれなりに理解しているつもりでしたが、実務レベルでまだまだだなぁと今回あらためて実感しました。 実際の表に入れてみて、色々なケースを考えて後ほど締め切らせていただきたいと思います。 こんなにたくさんの方からご回答いただけるとは思ってもいませんでした。感謝いたします。 本当に本当にありがとうございました。