EXCELのIF文を短く記述するには…
希望の動作にせっかくたどり着けましたが、長すぎて拒絶されます。
以下の関数を短く記述するにはどのようにすれば宜しいでしょうか?
ご教示お願いします。
=IF(AND($C$13>0,$C$13<=12),ROUND(VLOOKUP($B$23,B5:Q23,MATCH($C$13,B5:Q5,0),FALSE)/$C$13,0),""
&IF(AND($C$13>12,$C$13<=24),ROUND(VLOOKUP($B$23,B25:Q32,MATCH($C$13,B25:Q25,0),FALSE)/$C$13,0),""
&IF(AND($C$13>24,$C$13<=36),ROUND(VLOOKUP($B$23,B45:Q52,MATCH($C$13,B45:Q45,0),FALSE)/$C$13,0),""
&IF(AND($C$13>36,$C$13<=48),ROUND(VLOOKUP($B$23,B54:Q61,MATCH($C$13,B54:Q54,0),FALSE)/$C$13,0),""
&IF(AND($C$13>48,$C$13<=60),ROUND(VLOOKUP($B$23,B63:Q70,MATCH($C$13,B63:Q63,0),FALSE)/$C$13,0),""
&IF(AND($C$13>60,$C$13<=72),ROUND(VLOOKUP($B$23,B72:Q79,MATCH($C$13,B72:Q72,0),FALSE)/$C$13,0),""
&IF(AND($C$13>72,$C$13<=84),ROUND(VLOOKUP($B$23, B85: Q92,MATCH($C$13,B85:Q85,0),FALSE)/$C$13,0),""
&IF(AND($C$13>84,$C$13<=96),ROUND(VLOOKUP($B$23, B94:Q101,MATCH($C$13,B94:Q94,0),FALSE)/$C$13,0),""
&IF(AND($C$13>96,$C$13<=108),ROUND(VLOOKUP($B$23,B103:Q110,MATCH($C$13,B103:Q103,0),FALSE)/$C$13,0),""
&IF(AND($C$13>108,$C$13<=120),ROUND(VLOOKUP($B$23,B112:Q119,MATCH($C$13,B112:Q112,0),FALSE)/$C$13,0),""
&IF(AND($C$13>120,$C$13<=132),ROUND(VLOOKUP($B$23,B125:Q132,MATCH($C$13,B125:Q125,0),FALSE)/$C$13,0),""
&IF(AND($C$13>132,$C$13<=144),ROUND(VLOOKUP($B$23,B134:Q141,MATCH($C$13,B134:Q134,0),FALSE)/$C$13,0),""
&IF(AND($C$13>144,$C$13<=156),ROUND(VLOOKUP($B$23,B143:Q150,MATCH($C$13,B143:Q143,0),FALSE)/$C$13,0),""
&IF(AND($C$13>156,$C$13<=168),ROUND(VLOOKUP($B$23,B152:Q159,MATCH($C$13,B152:Q152,0),FALSE)/$C$13,0),""))))))))))))))
お礼
やはりマクロを使うしかなさそうですね。 変数を使えないのは残念ですがまあマクロ自体優秀ですから・・・ ロートルな方法で攻めようとした私も変わり者ですしね!(笑 非常に参考になりました。ありがとうございます!