=SUMPRODUCT(array1, array2, ...) multiplies the ranges row by row and adds the products. =SUMPRODUCT(B2:B9,C2:C9) is quantity times price for every row, summed, without a helper column.
A weighted average divides that by the sum of the weights: =SUMPRODUCT(B2:B5,C2:C5)/SUM(C2:C5) averages scores by their weight.
Conditions work as 1s and 0s: (A2:A9="North") is TRUE or FALSE per row, and multiplying turns TRUE into 1 and FALSE into 0. So =SUMPRODUCT((A2:A9="North")*B2:B9*C2:C9) adds quantity times price for the North rows only.
All ranges must be the same size, or you get #VALUE!.