Seus dados de pesquisa (primeira linha no intervalo de dados) são NÃO classificados.
Você pesquisa o valor EXATO .
Então você DEVE usar o 4º parâmetro da função HLOOKUP com FALSE
valor:
=HLOOKUP("Germany", B1:F4, 4, FALSE)
Ou classifique as colunas de dados pelos valores da primeira linha em ordem crescente.
why does it work for all countries if I change the second parameter to A1:F4?
Eu acho que porque o HLOOKUP sem o 4º parâmetro assume que os dados estão classificados, ele usa o método half-division para procurar o resultado.
Agora olhe: o intervalo de pesquisa é B1: F1, 5 células. O meio é D1. É menor que o valor a ser pesquisado, portanto, a função diminui o intervalo de pesquisa até D1: F1. Seu meio é E1 e é maior que o valor para pesquisar, a função diminui o alcance de pesquisa até D1: E1. Agora, o intervalo de pesquisa é de 2 células e o resultado da pesquisa é considerado D1. Então temos um resultado errado.
Quando alteramos o intervalo de dados, o intervalo de pesquisa é A1: F1, 6 células. O meio é C1. É igual ao valor a ser pesquisado. Pesquisa interrompida. Então, nós temos resultado correto.
Não está correto, é apenas similar. Por exemplo, crie uma tabela de teste, em que A1: H1 é a, b, b, b, b, b, c e A2: H2 é 1,2,3,4,5,6,7,8. Use HLOOKUP ('b', A1: H2,2). O resultado será 7.