I agree with vasek1, adding additional columns will simplify the formulas required but if you want to avoid extra columns there are [relatively] simple methods available.
Method 1 - do the same concatenation as vasek1....but within the formula, e.g. in E2
Main
=INDEX(Ref!D$2:D$100,MATCH(B2&"-"&C2&"-"&D2,Ref!A$2:A$100&"-"&Ref!B$2:B$100&"-"&Ref!C$2:C$100,0))
formula needs to be confirmed with CTRL+SHIFT+ENTER
Method 2 - a non-array version with LOOKUP
=LOOKUP(2,1/(Ref!A$2:A$100=B2)/(Ref!B$2:B$100=C2)/(Ref!C$2:C$100=D2),Ref!D$2:D$100)
Note that the first formula finds the first match, the latter the last. I assume that the reference data will only have a single instance of each region/country/city combination in which case they will both give the same results, but that isn't guaranteed in every situation.
To allow C2 to be "<>"
meaning "any country" (as per comment) you can use this revised version of the LOOKUP formula
=LOOKUP(2,1/(Ref!A$2:A$100=B2)/((Ref!B$2:B$100=C2)+(C2="<>"))/(Ref!C$2:C$100=D2),Ref!D$2:D$100)
A similar change can be applied to the INDEX/MATCH version
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…