みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

IF関数の中の多数のIF関数をすっきりさせたい!

Excel2010です。

excelで条件に一致したセルの隣のセルを取得するにはVLOOKUP関数を使えばできますが、
条件に一致したセルの隣のセルに入っている計算式を利用することはできますか?
現在、IF関数で下記のようなながったらしい条件式が入っているのですが、これをもっとすっきりしたく、
何かいい方法はないかと思い相談させていただきました。

=IF([@基準月]="","",IF(COUNTIF([@請求形態],"*前*"),[@基準月],IF([@請求形態]="年1後",EOMONTH([@基準月],-11),IF([@請求形態]="2ヶ月後",EOMONTH([@基準月],-1),IF([@請求形態]="3ヶ月後",EOMONTH([@基準月],-2),IF([@請求形態]="6ヶ月後",EOMONTH([@基準月],-5),""))))))
(請求形態に"後"が含まれる式は別に作ってます)


       A       B       C       D
1    基準月   請求形態   期間始    期間終
2    H26.2    6ヶ月後    H25.9     H26.2
3    H26.3    年1前 H26.3     H27.2


A列,B列に値を入れるとC列,D列が自動で入るようにしたいのです。

請求形態の種類は年1前、年1後、2ヶ月前、2ヶ月後・・・・と8種類あります。現在作っているIF関数でも別に問題はないのですが、もっとすっきりできるものならさせたいです。

どなたかお分かりになる方がいらっしゃいましたら教えてください。

宜しくお願い致します。

投稿日時 - 2014-02-15 17:42:13

QNo.8476359

困ってます

質問者が選んだベストアンサー

>条件に一致したセルの隣のセルに入っている計算式を利用する

ことはできませんが、条件に応じて変えなきゃならないのが計算式じゃなく「-11」や「-5」などのパラメータ部分だけになるように整理するだけでも、各段に違います。


A1からA4に
年1後
2ヶ月後
3ヶ月後
6ヶ月後
を列記

B1からB4に
-11
-1
-2
-5
を列記

数式は
=IF([@基準月]="","",IF(COUNTIF([@請求形態],"*前*"),[@基準月],IFERROR(EOMONTH([@基準月],VLOOKUP([@請求形態],A1:B4,2,FALSE)),"")))
ぐらいまで短縮されます。

投稿日時 - 2014-02-15 18:58:48

お礼

お礼が大変遅くなり申し訳ございませんでした。

すごいっっっ!!
ありがとうございます。
かなりすっきりしました。最高です。
ありがとうございましたm_ _m

投稿日時 - 2014-02-15 20:37:29

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>請求形態の種類は年1前、年1後、2ヶ月前、2ヶ月後・・・・と8種類あります。現在作っているIF関数でも別に問題はないのですが、もっとすっきりできるものならさせたいです

「条件に一致したセルの隣のセルに入っている計算式を利用する」の意味が良くわからないのですが、現在の数式で計算できるなら単純にVLOOKUP関数で良いのではないでしょうか?
たとえば、IF関数の条件式の後半部分を配列定数を使った数式で例示すると以下のようになります。

EOMONTH([@基準月],VLOOKUP([@請求形態],"年1後",-11;"2ヶ月後",-1;"3ヶ月後",-2;"6ヶ月後",-5}))

投稿日時 - 2014-02-15 18:39:18

ANo.1

計算式は参照できません。
計算によって得られた結果は参照できます。

ex)
A2=if(a1=1,2,3)
A3=if(a2=3,4,5)

投稿日時 - 2014-02-15 17:47:55

お礼

ご回答ありがとうございます。
やはり無理ですか・・・残念です。

投稿日時 - 2014-02-15 18:05:26

あなたにオススメの質問