Pergunta

Eu tenho uma tabela com 3 colunas. Quero escrever uma fórmula que, dada uma referência estruturada, retorna o índice da coluna. Isso vai me ajudar a escrever fórmulas PROCV usando a referência estruturada.

Assim, por exemplo, para o MyTable tabela com colunas A, B, C eu gostaria de ser capaz de escrever:

=GetIndex(MyTable[C])

e tê-lo retornar 3.

Agora eu apenas certifique-se o intervalo da tabela começa na primeira coluna da folha e eu escrevo

=Column(MyTable[C])

mas eu quero algo um mais robusto.

Foi útil?

Solução

Uma fórmula apropriada com base no seu exemplo seria

=COLUMN(MyTable[C])-COLUMN(MyTable)+1

A primeira parte do COLUMN(MyTable[C]) forumla irá retornar o número da coluna da coluna referenciada.

A segunda parte da fórmula COLUNA (AMinhaTabela) retornará sempre o número de coluna da primeira coluna da tabela.

Outras dicas

Outra solução para a pergunta que você fez (ou algo próximo a ela) é usar algo como =MATCH("C",MyTable[#Headers],0), que retornará 3 no exemplo que você postou.

No entanto, se você usou INDEX invés de VLOOKUP, você não precisa fazer isso. Por exemplo, se você quiser encontrar o valor de C na linha onde A é igual a 2 (assumingly não há mais do que um é), você pode usar uma fórmula como =INDEX(MyTable[C],MATCH(2,MyTable[A],0)), que é bem auto-documentado.

Você quer dizer:

Dim r As Range
MyLetter ="AA"
Set r = Range(MyLetter & "1")
MyIndex= r.Column

Editar comentário re

Function GetRelativeColumn(Letter, RangeName)
Dim r As Range
Dim ColStart, ColRequired, ColTemp
Set r = Range(RangeName)

ColStart = r.Column
ColRequired = Range(Letter & "1").Column
ColTemp = ColRequired - ColStart + 1
If ColTemp < 1 Or ColTemp > r.Columns.Count Then
    MsgBox "Ooutside range"
Else
    GetRelativeColumn = ColTemp
End If
End Function

Você pode usar:. =COLUMN(MyTable[*]) - COLUMN(MyTable[A]) + 1, onde * é a coluna cujo índice você quer

= ligeira modificação para respones eJames: = COLUMN (MyTable [*]) -. MIN (coluna (MyTable)) + 1, onde * é a coluna que deseja o índice

O que é seu objetivo final? Você pode ser melhor fora de usar SUMIF (como eu descrevo aqui ) ou INDEX (como eu descrevo aqui ) para acessar seus valores em vez de saltar de volta para linha / coluna ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top