- ベストアンサー
IF関数の論理式が作れない
・在庫(シート) A B C 1 品物 在庫数 2 りんご 4 3 みかん 4 4 ぶどう 4 ・出荷(シート) A B C D 1 品物 在庫数 出荷数 残 2 りんご =在庫!B2 2 =B2-C2 在庫シートのC2にも、「残」数を載せたいのですが、式の作り方が分かりません。 VLOOKUPを使ってみようと思いましたが、なかなか思うようにいきません。 出荷シートのA列の商品が、在庫シートのA列にもあった場合(この場合は「りんご」)は、出荷シートのD列の数値を返す。 無かった場合(この場合は「みかん」「ぶどう」)は、在庫シートのB列の数値を返す。 IFの真偽は作れましたが、最初の論理式作りで手間取っています。 =IF( ,VLOOKUP(A2,出荷!A:D,1,0),B2) ↑この部分の論理式が不明です。 尚、在庫シートのB2には既に在庫数が載ってるのに、更に在庫数を載せるのか?と疑問を感じられると思いますが、その疑問は、申し訳有りませんが、指摘しないで下さい。
- オフィス系ソフト
- 回答数7
- ありがとう数12
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
有無のチェックはLOOKUP関数でも出来ますが、通常はMATCH関数を使います。 で、LOOKUPにせよMATCHにせよ、「相手がない」とエラーしますので、 エラー評価関数ISERRORと組み合わせて使います。 =IF(ISERROR(MATCH(A2,出荷!A:A,0)),B2,VLOOKUP(A2,出荷!A:D,4,FALSE)) こんな感じでいいんじゃないかと。 動作はチェックしてないので、微妙に合ってなければすいません。
その他の回答 (6)
- hallo-2007
- ベストアンサー率41% (888/2115)
IF文、或いは検索値の有無のチェックについては既に回答でていますのでよろしいかと思いますが、 質問が在庫管理の手法ということでしたら、あえてシートの構成について 出荷シートで A B C D 1 品物 在庫数 出荷数 残 2 りんご =在庫!B2 2 =B2-C2 3 りんご と、2度目のりんごの出荷の場合はどうされますか? 一般的で紹介すると A B C D 1 日付 品物 出荷数 残 2 2007/3/31 りんご -4 3 2007/3/31 みかん -4 4 2007/3/31 ぶどう -4 5 2007/4/1 りんご 2 D2セルに =SUMIF(B2:B$2,B2,C2:C$2)*-1 下フィルしてみてください。 B5セルに りんご といれると りんごの在庫数が出ますし 出荷数入れると 出荷後の在庫になると思います。 別途、在庫マスターのシートがあれば りんご みかん ぶどう と品名あって B2セルには、=SUMIF(出荷!B:B,B2,出荷!C:C)*-1 など入れておきます。 年度末など、定期的な在庫数を記録しておきたいときは、 在庫シートのB列をコピィ、形式を指定して貼り付け、値にチェックして隣にでも貼り付けておきます。 参考になれば幸いですが、的外れであれば、読み飛ばしてください。
お礼
>的外れであれば いえ、とてもありがたい回答です。 今回は、『論理式作成』を質問したかった為、すっごいシンプルな表で質問させていただきましたが、 作るデータの質が違えば、hallo-2007さんの仰るような事が求められるでしょう。 今回のとは別に、マスタ管理表の似たようなAccessファイルがあるので、hallo-2007さんが教えてくださった管理で式を応用して管理ファイルを作ってみます。 Accessで作ったは良いが、インストールされているPCが少なくて困っていたので、Excelに移行させる良い機会かもしれません。 詳細な説明を頂き、大いに役立てる自信がつきました。 ありがとうございました。
- mshr1962
- ベストアンサー率39% (7418/18948)
同じ商品が複数行に重複しない場合 出荷シート!B2の数式は =IF(ISNA(VLOOKUP(A2,在庫!A:B,2,0)),0,VLOOKUP(A2,在庫!A:B,2,0)) または =IF(COUNTIF(在庫!A:A,A2)=0,0,VLOOKUP(A2,在庫!A:B,2,0)) 在庫シート!C2の数式は =IF(ISNA(VLOOKUP(A2,出荷!A:D,4,0)),0,VLOOKUP(A2,出荷!A:D,4,0)) または =IF(COUNTIF(出荷!A:A,A2)=0,0,VLOOKUP(A2,出荷!A:D,4,0)) 同じ商品が複数行に重複しない場合 出荷シート!B2の数式は =SUMIF(在庫!A:A,A2,在庫!B:B)-SUMIF(A$1:A1,A2,C$1:C1) 在庫シート!C2の数式は =MAX(SUMIF(A$2:A2,A2,B$2:B2)-SUMIF(出荷!A:A,A2,出荷!C:C),0)
お礼
おお!これはすごい! ISNA?使った事の無い関数で驚きましたが、この関数が持つ役割がわかると、なるほど!こういう使い方もあるのだと分かりました。 MAX関数も、この式では、自分の中では出ようがありませんでしたが、使い方の視点を変えれば、とても効率の良い式になるのですね。 早速式を入れ込んでみました。 式の答えは同じでも、方々によって、考え方と式の作り方が全く違うので、式作りの勉強と多様性も勉強になります。 『重複』については、重複データをわざと作って、実践したいと思います。 ありがとうございました。
- kourinoa
- ベストアンサー率0% (0/2)
VLOOKUP関数を使用する場合は、 =IF(ISERROR(VLOOKUP(A2,出荷!A:A,1,0))=TRUE,B2,VLOOKUP(A2,出荷!A:D,4,0)) これで大丈夫だとおもいます。 ちなみにご存知だと思いますが、 VLOOKUP関数を使用する場合、在庫シートは、品物で昇順に 並んでいる必要があります。
お礼
やはり、方々はISERROR関数を推されますね。 実際に今、式を作っていますが、ISERROR関数が有ると、式が作りやすくなりますね。 エラー値の場合に活躍してくれる貴重な関数ですが、使ってないと存在を忘れますね^^; >VLOOKUP関数を使用する場合、在庫シートは、品物で昇順に並んでいる必要があります。 そちらは存じております。ご忠告、ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
次の様な感じでしょうか。 =IF(COUNTIF(出荷!A:A,A2),VLOOKUP(A2,出荷!A:D,4,FALSE),B2)
お礼
式を載せてくださってありがとうございます。 COUNTIFですか。存在を忘れていました。 探す=VLOOKUPというの考え方がありました。 カウントしてくるっていうのが本意ですよね。 ありがとうございました。
- higekuman
- ベストアンサー率19% (195/979)
> 出荷シートのA列の商品が、在庫シートのA列にもあった場合 この考え方を逆にして「在庫シートのA列の商品が、出荷シートのA列にもあった場合」と考えて見ましょう。 vlookup関数の最後の引数を0にすると、一致するものがない場合はエラーになるので、iserror関数でエラーかどうかを判断=一致するものはあるかどうかを判断できます。
お礼
>iserror関数 昔使った記憶があります。 視点を、出荷シートから在庫シートに切り替えるだけで、式が頭の中にイメージできました。 考え方がを一方だけに偏ってしまうと、式って思い浮かばないものですね。 VLOOKUPで始末しようとした自分も、頭固いですね。 ありがとうございました。
- kickknock
- ベストアンサー率31% (207/661)
IF関数はネストが14回ぐらいまで、可能な関数です。(詳細はもう忘れました。) 簡単に言えば、(0か1か)を14回程度繰り返すことが出来ます。 一回で処理しようとしないで、ネストで条件を設定していって、 在庫がある場合 で、数量が1以上 で、5個以下 の時 で、ネスト三回です。 ネストの繋げ方については、本を参照になさってください。
お礼
なるほど! 考え方を変えれば良いんですね。 ネストを繋ぐ操作は出来ますのでやってみます。 ありがとうございました。
関連するQ&A
- 行内で空白、重複を除いた結果を別セルに表示したい
A~D列に言葉が入っているのを、F列以降に空白、重複を除いて、結果を表示したいのですが、やり方がわかりません。(別シートではなく、同じシート内で処理したいです。) A~D列に入る言葉は200個程の種類があります。 行は4万行くらいのデーターがあるので行列を入れ替えた表には出来ません。 ジャンプで空白セル選択→まとめて削除をすると、データー数が多いので、パソコンが固まってしまいました。 なので、行ごとに処理をしたいのです。 よろしくお願いします。 A B C D F G H I みかん ぶどう りんご みかん → みかん りんご ぶどう みかん (空白) (空白) みかん → みかん (空白) ぶどう りんご みかん → ぶどう りんご みかん みかん ぶどう りんご すいか → みかん ぶどう りんご すいか
- ベストアンサー
- オフィス系ソフト
- エクセル関数:複数の条件の合う数値の合計
可能かどうかもわかりませんが。。。 納品の量を管理するためにエクセルを利用したいと考えております。 Sheet1 A B C D E ............ 1 出荷先 納品日 りんご みかん いちご ----------------------------------------- 2倉庫 12.01 10 0 5 3八百屋 12.02 0 4 3 4お店ア 12.05 3 2 8 5顧客A 12.03 3 5 0 6顧客B 12.05 0 15 0 7お店イ 12.02 2 2 2 . . . . >>>>>>>>>>>>>>>>> Sheet2 A B C D ............ 1納品日 りんご みかん いちご ----------------------------------------- 212.01 312.02 412.03 512.04 612.05 . . . Sheet1に入力した内容を、Sheet2で管理できないものかと考えております。 例:Sheet2のセルB2に「12月1日」の「りんご」の納品予定数を表示できないものでしょうか。即ち、Sheet1より「12月5日」の「みかん」の納品数は「2」+「15」で17と関数で計算する方法はないものでしょうか。 VLOOKUPやSUMIFSなどをが使えるのかとも考え、色々と調べてみましたが、どうしてもうまくいきません。 どうぞ宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Excelでどのような関数を使えばいいでしょうか。
関数について教えて下さい。 Excelで、同じBook内に以下のような2シートがあるときに、 (Sheet1) A B C D 1 1 あい 12 りんご 2 うえ 34 みかん 3 おか 56 イチゴ 4 1 おか 78 イチゴ (Sheet2) A B C D 1 あい 11 りんご 2 うえ 34 みかん 3 おか 78 イチゴ 4 うえ 34 みかん Sheet2のA列にSheet1にあるデータを入れたいのです。 まず、列B,C,Dのそれぞれのデータが横に3つ一致するものを探して 横3つのデータが同じなら、Sheet2のA列に、 Sheet1のA列にあるデータをシートBにも持ってくる、 というようなイメージです。 (Sheet2) A B C D 1 あい 11 りんご 2 うえ 34 みかん 3 1 おか 78 イチゴ 4 うえ 34 みかん ↑このようにしたいのです。 A列にどのような関数を入れればいいのでしょう。 (A列にあるのは1か空欄かのどちらかです。 同じ3つの組み合わせで、1の場合と空欄の場合両方があることはありません。) また、Sheet2には、A列に1とついた行に色を付けたいのです。 例えば、上記の例ですと Sheet2のB3:D3のセルに色をつけたいのです。 関数や条件付書式などで、できますでしょうか。
- ベストアンサー
- オフィス系ソフト
- VLOOKUP の、エラーコードを出さずにもとのデータのままにしたい。
WIN XP EXCEL2002 sheet1 A B C 30 りんご 300 20 みかん 350 10 ばなな 200 sheet2 A B C りんご 48 350 みかん 50 350 りんご 55 200 sheet1 の、A列に、 =VLOOKUP($B1,sheet2!$A$1:$C$10,2,FALSE) とすると、 sheet1 A B C 48 りんご 300 50 みかん 350 #N/A ばなな 200 となるのですが、このばななのところのエラーコードを出したくないので、もとのまま、すなわち 10 になるようにしたいのですが、 どのような式にかえればよいでしょうか?よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelでの文字列とりだしについて
Excel(version2013)について質問です。 ある文字列を検索範囲内で検索し、みつかった場合、 その文字列を返すようにしたいです、どのような関数を使えば宜しいでしょうか。 例えば下記A列に検索したいリスト(りんご、ばなな、ぶどう)があり、 検索したい範囲がD1~E5とします。 その場合、B列に関数を使った式を入れ、 りんご、ばなな、空文字、りんご、ぶどうと並ぶようにしたいです。 どのような関数を使えば宜しいでしょうか。 A B C D E 1 りんご (式) りんご みかん 2 ばなな (式) ばなな すいか 3 ぶどう (式) すいか みかん 4 (式) りんご すいか 5 (式) ぶどう みかん
- 締切済み
- オフィス系ソフト
- エクセル関数式で部類ごとの平均を求める。
初めまして、よろしくお願いします。 A B C D 1リンゴ 6 2ミカン 2 3イチゴ 8 4ミカン 2 5リンゴ 4 6ミカン 6 7イチゴ 6 8 9 という表があります。この表のA9に”リンゴ”と打ち込むと、B9にリンゴの平均値”5”が出力されるようにしたいと思います。表の部類と値、数は変化します。A9の部類を拾い出して平均を求めることのできる関数式を教えて頂きたく、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- excelの関数で数式を教えてください。
下記のような2つのexcelシートがある場合で、条件にあった場合の数値だけを合計したい場合、どのような関数を使えば良いのでしょうか?教えてください。 具体的にはAさんのカロリー数値の合計(答えが4.5) (シート1) A B C D ------------- 1|Aさん みかん りんご バナナ 2|Bさん ぶどう なし (シート2) A B ------- 1|みかん 1.5 2|りんご 2.3 3|バナナ 0.7 4|ぶどう 3.1 5|なし 1.2 宜しくお願いします。
- 締切済み
- その他(ビジネス・キャリア)
- 関数式がわかりません
A列に品名をB列に在庫数を、1行目に日付を2行目に入荷・出荷を記入した上で、3行目から品名の数量を記入していく在庫表のようなものを使用しています。 この場合B列に在庫を表したいのですが三日三晩、自分なりに式を入れてみてもうまく行きませんでした。どうかご教授願います。 具体的にはB列の在庫値を 2行目の「入(入荷のこと)」「出(出荷のこと)」を読んで 入荷なら足し算、出荷なら引き算をして返してほしいんです。
- ベストアンサー
- 会計ソフト
- エクセルの関数(論理式)
A1にりんご、B1にapple A2にみかん、B2にorange A3にバナナ、B3にbanana と入力されています。 D1にりんごジュース D2にりんごゼリー D3にりんご と入力されています。 D行に”りんご”を含むセルがある場合は、その真横のE行のセルに すべてappleと表示させるには、E行にどのような関数を入力すればよいですか? 数式内に文字列("*りんご*")は使わずに、セル参照だけで関数を作りたいと思っています。 どなたか教えてください。 宜しくお願い致します。
- ベストアンサー
- Excel(エクセル)
- EXCELの関数で別のシートからデータを取り出す方法について
こんばんは。 excelの関数で次のようなことができますか? sheet1 A B C 123 125 122 sheet2 A B C D 122 りんご 123 みかん 125 バナナ 上記のようなデータがsheet1とsheet2にあります。 sheet1のC列にA列のセルの番号と対応した商品を sheet2のA列とD列に対応データから引用できますか? (となりに並んでいないデータです。) 関数的にはvlookup,index,matchとかを使うとよさそうですが うまくいきません。 解決方法を教えてください。 よろしくお願いします。
- ベストアンサー
- その他(ビジネス・キャリア)
お礼
ISERRORとMATCHの組み合わせとは、思いつきませんでした。 確かに、MATCHは検査値として多様していますが、この式に使う発想がありませんでした。 別の用途でしか使ってこなかったMATCHが、こういう時にも使えると知ってよかったです。 ありがとうございました。