出産前後の痔にはご注意!

毎度お世話になっております。
関数の内容で質問させて頂きます。
かなりややこしいので、ご了承ください。

A   B C D
項目   日にち  金額 摘要
入金    1   1000 SONY
出金    1   500  電話代
振込入金  1   300  NEC
残高    1   200   
 ・
 ・
 ・
というように何百行とこういうデータがあります。(項目欄は、入金・出金・振込入金・残高の4つですが、摘要欄は、電話代や水道料等の他に様々な企業名等が載っております。)
ここで質問なんですが、例えばこの何千行もあるデータから、項目が出金で日にちが1日で摘要に"代"という文字が含まれている場合、「水道光熱費」という文字が表示されるようにするにはどうしたらよいでしょうか?

また、上記の条件にさらにプラスして、摘要欄に「振替」と記載されている場合
"代"を含む文字があり、かつ、「振替」という語句がある場合に「水道光熱費・手数料」といった合わせ技のような手法はないでしょうか?
IF・SUMPRODUCT・NOT・ISERROR・FIND等の関数を合わせて色々試してみましたが、なかなかうまくできません。
どなたかご教授願います。
長くなり申し訳ございません。
よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

「水道光熱費」、「水道光熱費・手数料」の表示を、各行のE列に表示するという前提で回答致します。



各行のE列に下記の関数を記述してみて下さい。

記述例
 =IF(AND(A2="出金",B2=1),IF(ISERROR(FIND("代",D2)),"",IF(ISERROR(FIND("振替",D2)),"水道光熱費","水道光熱費・手数料")),"")

 ※2行目(E2)への記述例です。

1.1つ目のIFでは、項目が"出金"でかつ日にちが1であるかを判定します。
2.続いて2つ目のIFでは、摘要に"代"という文字が含まれているか否かをIserror関数の戻りを使用して判定します。
3.更に3つ目のIFでは、摘要に"振替"という文字が含まれているか否かをIserror関数の戻りを使用して判定します。

こうして、1・2・3の条件全てを満たす場合は”水道光熱費・手数料”を、
1・2のみの条件を満たす場合は”水道光熱費”をそれぞれ表示します。

この回答への補足

ご返答ありがとうございます。

この数式で少し疑問に思ったことがあったのですが、最初の=IF(AND(A2="出金",B2=1),IF(ISERROR(FIND("代",D2)),という数式は理解できたのですが、その後ろの,IF(ISERROR(FIND("振替",D2)),"水道光熱費","水道光熱費・手数料")),"")というのは、1番初めのIF関数のどの欄に入れているのでしょうか?
もしかしたら、すべて手入力ということなのでしょうか?
私はいつも、fx関数を用いて作成しているのですがどうなんでしょうか?
よろしくお願い致します。

補足日時:2010/02/04 05:57
    • good
    • 0

E1セルに日にちを入力しE2セルには次の式を入力して下方にオートフィルドラッグします。


=IF(OR(A2<>"出金",B2<>E$1),"",IF(COUNTIF(D2,"*代*振替*")>0,"水道光熱費・手数料",IF(COUNTIF(D2,"*代*")>0,"水道光熱費","")))
    • good
    • 0

No.2です!


たびたびごめんなさい。

前回の数式はA列の「出金」の条件が抜けていましたので、
数式を
=IF(AND(A2="出金",B2=$G$2,ISNUMBER(FIND("代",D2)),ISNUMBER(FIND("振替",D2))),"水道光熱費・手数料",IF(AND(A2="出金",B2=$G$2,ISNUMBER(FIND("代",D2))),"水道光熱費",""))

に訂正してください。
かなり長い数式になってしまいました。

何度も失礼しました。m(__)m
    • good
    • 0

こんばんは!


外しているかもしれませんが・・・

↓の画像で検索する日付のセルを設けておきます。
画像ではG2セルに2/1のシリアル値を入れています。

そして、適用2のE2セルに
=IF(AND(B2=$G$2,ISNUMBER(FIND("代",D2)),ISNUMBER(FIND("振替",D2))),"水道光熱費・手数料",IF(AND(B2=$G$2,ISNUMBER(FIND("代",D2))),"水道光熱費",""))

という数式を入れ、フィルハンドルの(+)マークでダブルクリックか
オートフィルで下へコピーします。

これで画像のような感じになるのですが

以上、参考になれば幸いですが、
最初に書いたように的外れなら読み流してくださいね。m(__)m
「EXCEL 関数」の回答画像2
    • good
    • 0

んーとですね


まずは、どのように関数を使ったのかを示してみてください
(そのほうが、間違いや直したほうが良いところを教えてくれるので理解が早まります)

とりあえずアドバイス
 =IF(「条件1」,IF(「条件2」,IF(「条件3」,「適用1」,""),""),"")
などと作る際には
 =                IF(「条件3」,「適用1」,"")
 =         IF(「条件2」,IF(「条件3」,「適用1」,""),"")
 =IF(「条件1」,IF(「条件2」,IF(「条件3」,「適用1」,""),""),"")
などと順序だててくみ上げると間違いを減らすことができます
いきなり複雑な関数を書こうとしないようにしましょう

また、NOT関数を組み合わせて
 =IF(NOT(「条件1」),"",IF(NOT(「条件2」),"",IF(NOT(「条件3」),"",「適用1」)))
としたほうが、見やすいこともあります
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。

自分一人ではなかなかうまくできず、こんがらがってしまいました。
参考にさせていただきます。

お礼日時:2010/02/04 05:54

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


人気Q&Aランキング