The INDIRECT function doesn't help because it takes a string as input, not a range. Ideally, I could put a range in cell X123, ...
Acho que você está confuso sobre o que está colocando em X123 . Aqui você entrará, como texto, o endereço de um intervalo. O conteúdo da célula é uma string, não um intervalo.
Você passará essa string para a função INDIRECT() por meio de uma referência de intervalo. =INDIRECT(X123) retornará o conteúdo do X123.
EDITAR:
Seu comentário me fez perceber que você provavelmente queria algo diferente. Acho que o que você está procurando é uma maneira de usar uma referência de célula indireta como uma referência relativa, ou seja, você quer poder usar a referência indireta para se referir a uma coisa quando usada na A1, mas para se referir a outra coisa coluna over) quando usado em B1. Você pode fazer isso com uma combinação de INDIRECT , OFFSET , ROW e COLUMN .
Por exemplo, A2:A11 contém um conjunto de dados, assim como B2:B11 . Em D1 você tem o endereço "A2: A11" armazenado como texto.
Portanto, se você quiser encontrar a média de cada conjunto de dados usando a referência indireta em D1 , use a seguinte fórmula de preenchimento (em D6 neste exemplo):
=AVERAGE(OFFSET(INDIRECT($D$1),ROW()-ROW($D$6),COLUMN()-COLUMN($D$6)))
Preenchendo essa fórmula, uma célula à direita ( E6 ) fornecerá a média de B2:B11 . A chave para essa fórmula é que você a ancora em um ponto de referência fixo, $D$6 neste exemplo. Em D6 , a referência indireta não será compensada. A referência indireta será compensada pelo mesmo número de células (up / down e left / right) que você está deslocado de D6 .