Difference between Protocol Numbers and EtherType

Generally i have seen people getting confused between Protocol number and Ethertype (or as mostly called protocol type field)
The protocols which uses Ethernet or MAC header within which  IP packet  is present will have protocol num as well as Ethernet type also but for the protocols which uses directly Ethernet or MAC header and have their own packet format they will have only Ethernet type.
For protocol which have protocols numbers have ethertype as IP (0800).
Like ARP packet uses only MAC header and in Ethernet header we have ethertype field which will be set for ARP which is 0806.  It will not have protocol number. But ICMP packet will have protocol number which is 1 and will be present in IP header, protocol field. For this ICMP packet inside the Ethernet field the Ethertype will be that of IP i.e. 0800.
We can get a list of protocol numbers as given in below link:
We can see the different ethertypes defined below: