Manipulate[

If[m<0,m=0];
If[K<0,K=0];
If[FV<0,FV=K];

message="";
If[unknown==="m",m=Quiet[Solve[{AnnuityShortTerm[m1,K,i,isDue]==FV,m1≥0},m1][[All,1,2]][[1]]]];
If[unknown==="K",K=Quiet[Solve[{AnnuityShortTerm[m,K1,i,isDue]==FV,K1≥0},K1][[All,1,2]][[1]]]];
If[unknown==="FV",FV=Quiet[N@AnnuityShortTerm[m,K,i,isDue]]];
tmpi=Quiet[Solve[{AnnuityShortTerm[m,K,i1,isDue]==FV,i1≥0},i1,Reals]];
If[unknown==="i",If[tmpi=={},i=0; message="Nemá řešení",i=i1/.tmpi[[1]]]];

Column[{
Style[message,Red],
Grid[{
{"úložka [Kč]",NumberForm[N@K,{Infinity,precision}]},
{"naspořená částka [Kč]",NumberForm[N@FV,{Infinity,precision}]},
{"počet úložek [Kč]",NumberForm[N@m,{Infinity,precision}]},
{"doba úročení [v letech]",NumberForm[N[m/12],{Infinity,precision}]},
{"nominální úroková míra (p.a.) [Kč]",NumberForm[N@i,{Infinity,precision}]}
},
Alignment->Left,
Frame->All,
ItemSize->gridSize],
""
}],

Style["Krátkodobé spoření",Bold],

{{unknown,"K","Neznámá"},{"K"->"úložka","FV"->"naspořená částka","i"->"nominální úroková míra","m"->"počet úložek"},ControlType->PopupMenu},
{{precision,2,"Desetinná místa"},0,10,1,AppearanceElements->None, Appearance->"Labeled"},

Delimiter,

{{isDue,False,"typ spoření:"},{False->"předlhůtní",True->"polhůtní"}},
{{K,1000,"úložka [Kč]"}, 1,5*10^5,1000,TrackingFunction->(K=If[And[#>FV,unknown=!="FV"],FV,#];&),Appearance->"Labeled",Enabled->(unknown=!="K"), AppearanceElements->None},
{{FV,10000,"naspořená částka [Kč]"}, 1,10^6,TrackingFunction->(FV=If[And[#<K,unknown=!="K"],K,#];&),Appearance->"Labeled",Enabled->(unknown=!="FV"),AppearanceElements->None},
{{i,0,"nominální úroková míra (p.a.) [%]"}, 0,10,0.5,Appearance->"Labeled",Enabled->(unknown=!="i"),AppearanceElements->None},
{{m,1,"počet úložek"}, 1,12,1,Appearance->"Labeled",Enabled->(unknown=!="m"),AppearanceElements->None},

{message,ControlType->None},

Initialization:>(
AnnuityShortTerm[m_,K_,i_,isDue_]:=m*K*(1+i/100*m/12*(m+If[isDue===True,1,-1])/(2*m));
gridSize={20, 1.7};
),
AppearanceElements->"ResetButton",
SaveDefinitions->True,
ControlPlacement->Top
]

(*GeneralAnnuity[K_,m_,i_,f_,k_,isDue_]:=m*K*(1+(m+If[isDue===True,1,-1])/(2*m)*i/100*m/12)*((1+i/(f*100))^k-1)/(i/(f*100));
GeneralAnnuity[3000,1,6, 12,5*12,False]//N;

AnnuityShortTerm[m_,K_,i_,t_,isDue_]:=m*K*(1+i/100*t*(m+If[isDue,1,-1])/(2*m));
AnnuityShortTerm[10,2600,2.4,10/12,True]
Solve[{AnnuityShortTerm[m,2600,2.4,m/12,True]==26286,m>0},m]*)