Let me firstly say there is no perfect rule for the right size ski a skier should be skiing on. The following information is only a recomendation an should be accurate for 95% of cases.
A ski can only feel three major forces which when a person has the correct length ski it will be an enjoyable experience.
The three forces are
1). Persons Weight
2). Person Speed
3). Person Aggression
N.B. The ski can not feel your height at all. Do not worry if a ski is taller than you if you a short and heavy!!!
All skis are designed with these three forces in mind especially #2 & #3. So a lower level ski would be designed to be skied on at lower speeds and less aggression compared to a Advanced to Expert ski.
As an excellent guide to size firstly find out your weight in kilo's.
Add 90 on top of this weight. This will give you an excellent start to the size of ski required. Then if you are a very fast skier compared to most people on the hill add 5cm. If you are also a very aggressive skier add another 5cm.
The reverse can also be said with speed and aggression. If you are extremely slow or timid skier you can take off 5cm & 5cm.
This rule works great for all Adult skiers except people who are over 90 Kilo's. In this instance go for a more advanced ski than usuall as this will hold your weight better and start off with only around 75 on top of your weight. EG: 100Kgs, + 75cm, Average Speeds (+0cm), Very Timid -5cm). In this case a 170cm performance ski would be fantastic.
The last rule to remember is if you are wanting a ski to float more in powder and are getting a special wider body ski, then you might add upto 10cm in length to the above info.
With kids measure from the ground to sternum/throat. This will be a great starting point for sizing. Please do remember the information above, like if your child is short but heavy go a little longer etc.
Enjoy your Turns