• 締切済み

エクセルif文で引数の文字列が一部認識されない

お世話になります。 エクセルを使って家計簿を作っているのですが、銀行の預貯金の計算がうまくいきません。 何が起こっているかというと、下式を使った場合に、SHINSEI savingが認識されないという現象です。 「=IF(($B5="SHINSEI saving"),(L4+$C5),IF(($B5="SHINSEI withdrawal"),(L4-$D5),L4))」 B列には出費等の項目名、C列には支出、D列には収入、L列には口座残高を記入しています。 ただし、C、D列に関しては、項目が銀行の預貯金の場合、それぞれ「入金」「出金」に対応しています。 上の式を使うと、SHINSEI withdrawalの方は機能していて、ちゃんとL列の残高が減るのに対し、 savingの方だけが何も起こらないといった状況です。 SHINSEIとsavingの間の空欄を埋めてみたり、項目名をまるっきり変えてみたりして悪あがきをしてみましたが、どうもうまくいきません。(ちなみに、なぜかMIZUHO savingやUFJ savingはうまくいってます) 何か心当たりのある方はご助言賜ります。

みんなの回答

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

> savingの方だけが何も起こらない と言うのは「L4セルの値をそのまま返す」と言うことでしょうか。 式をそのままコピー貼り付けさせていただきましたが、問題なく動きます。   「=IF(($B5="SHINSEI saving"),(L4+$C5),IF(($B5="SHINSEI withdrawal"),(L4-$D5),L4))」 この式そのものは間違いなく機能する形だということです。 と言うことは考えられる可能性は「B5セルの内容が"SHINSEI saving"ではない」と言うことでしょう。 1番さまの回答にある通り、どこか使っていないセルに「=$B5="SHINSEI saving"」と打ってみて、 TRUEが帰るかFALSEが返るかで判断するのが手っ取り早いです。 この時に、実際に打ってあるIF式の中から「$B5="SHINSEI saving"」の部分だけコピーしてくると確実です。 TRUEが返れば(無いとは思いますが)B5セルの値は正常であり、IF式に問題があるということ、 FALSEが返ればIF式には問題が無く、B5セルの値が違っている、と言えます。 考えやすいところは「間のスペースが実は全角」「"saving"の後ろにスペースがある」ですかね。 あとはどこかに「.(ピリオド)」が有ったり「_(アンダースコア)」が有ったり・・ そんなところかなぁ、と思います。

yonnie
質問者

お礼

ご丁寧にありがとうございます! 最後にご指摘いただいたとおり、savingの後ろに半角スペースが紛れ込んでいたのが原因でした。 >どこか使っていないセルに「=$B5="SHINSEI saving"」と打ってみて、 TRUEが帰るかFALSEが返るかで判断するのが手っ取り早い この対処法も参考になりました!

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

たとえば =L4-IF(ISNUMBER(FIND("saving",B5)),C5,IF(ISNUMBER(FIND("withdrawal",B5)),-D5)) としてみます。 別の計算方法: リストの先頭、たとえばL2セルに「初期額」が記入してあるとすると L3には =IF(B3="","",$L$2+SUMIF($B$3:B3,"*saving*",$C$3:C3)-SUMIF($B$2:B2,"*withdrawal*",$D$3:D3) として以下コピーしておきます。 #参考 単純に =B5="SHINSEI saving" とだけ記入してみます。 これでやっぱりFALSEが計算されたら、B5セルにそのように書かれているように見えていても、実際にはそう書かれていないのが原因です。 あなたのご相談の数式を元の状態に正しく注意して戻してから、B5セルの記入内容をDeleteキーで消去し、手で改めて記入しなおしてみます。今度はあなたの元の数式が今度は正しく計算できることを確認してください。まだおかしければ、今度は数式を元に戻すのを間違えています。 #参考 問題の「SHINSEI saving」のどこにどんなゴミが紛れているのか、実際のデータを手にしているあなたがご自分で解明するのが一番の早道です。 例えばSHINSEIの前にゴミが紛れている 例えばsavingの後ろにゴミが紛れている

yonnie
質問者

お礼

ご丁寧にありがとうございます! 結論から言うと、savingの後ろに半角スペースが紛れ込んでいたのが原因でした。 SUMIFやISNUMBERの使い方など、大変参考になりました!

関連するQ&A