Pergunta

Tento evitar o uso demais do Excel, mas quando gosto de usar referências estruturadas, pois elas parecem muito mais limpas para escrever.

Se eu criar uma tabela chamada "Tabela1" com colunas "col1" e "col2", como eu referiria a primeira linha em "col1" usando uma referência estruturada em outra tabela? Eu tentei a sintaxe =table1[[#this row],[col1]], e apenas receba um erro. Existe uma sintaxe como =table1[1,1] or =table1[1,[col1]]? Claro, isso também não funciona, mas qual é o equivalente?

É muito irritante, pois parece que isso deve ser simples.

Foi útil?

Solução

Table1[[#This Row][Column1]] faz Trabalho, mas a fórmula deve estar na mesma linha que a linha da tabela que você deseja fazer referência.

Para fazer referência à primeira linha, em outros lugares, use COUNTIFS(criteria_range1, criteria1 [, criteria_rangen, criterian]) Ou o um pouco mais complexo SUMIFS() Se você precisar de valores numéricos em vez de contagens, como mencionado por Studgeek:

SUMIFS(sum_range1, criteria_range1, criteria1 [, criteria_rangen, criterian])

É claro que você precisará de um critério de linha exclusivo para selecionar a linha. Então, por exemplo:

Table1
ID Value Name
1  2     Two
2  4     Four
3  8     Eight

SUMIF(Table1[Value], Table1[ID], 2) ... Retorna um valor de 4 (ou zero se ID = 2 não encontrado). Se o seu valor não for numérico, você não pode usar esse método, obviamente.

No entanto, Akuhn quase atingiu a resposta real, mas ele não foi muito longe em sua explicação/exemplo, IMO.

INDEX(Table1[Name], 2) retorna "quatro"INDEX(Table1, 1, 1) retorna 1

Outras dicas

tentar

=INDEX(col1,1)

Você pode até abordar as células em uma tabela de 2 dim, usando

=INDEX(reference,row_num,column_num)

O truque nesses casos é usar a função de deslocamento do Excel:

  • Acessando 1ª linha da coluna denominada coluna 1 na mesma tabela: OFFSET([Column1],0,0,1)
  • Acessando a 2ª linha OFFSET([Column1],1,0,1)

etc.

Obviamente, você pode usar isso para acrescentar outra tabela e coluna apenas prefixando -a com o nome da tabela. Por exemplo OFFSET(Table2[Column3],4,0,1)acessará a 4ª linha da coluna 'Column3' de 'Tabela2'

Não parece haver uma maneira explícita de usar referência estruturada a linhas específicas em uma tabela. Como Adrian diz, você pode usar o índice.

Ou você pode usar a interseção implícita para fazer referência à mesma linha: se a Tabela 1 estiver na linha 5:10 e a Tabela 2 também estiver na linha 5:10, usando uma referência estruturada com nomes de colunas interceptará implicitamente a mesma linha.

Ou você pode inserir a referência estruturada como uma fórmula de matriz multirrow (selecione várias células, insira a fórmula e use Ctrl-Shift-Entr) em diferentes linhas e ela funcionará.

Em vez de índice, eu sugeriria Sumif. Ele permitirá que você use os valores da tabela em vez de números explícitos de linha (que podem quebrar se você começar a filtrar ou fazer pedidos). Por exemplo (do link a seguir), isso resume a coluna de quantidade e inclui apenas as linhas em que o tipo é igual a verificação e onde a conta é igual a utilitários:=SUMIFS(Table1[Amount],Table1[Type],“Check”,Table1[Account], “Utilities”)

Veja este link mais informações: http://office.microsoft.com/en-us/excel-help/using-structure-references-with-excel-tables-ha010155686.aspx

Seria bom se uma tabela pudesse ter uma coluna designada como a chave primária (que poderia ser numérica ou string) e, em seguida, um refrete estruturado poderia incluir uma maneira de fazer referência a uma linha por sua chave primária.

Isso seria o açúcar de sintaxe em torno do vlookup, mas a tabela poderia saber se foi classificada na chave primária e fazer pesquisas eficientes apenas nesse caso. Parece que o Vlookup incorpora o mal que encontra a linha errada se você depende de classificar, especialmente quando as tabelas têm uma maneira conveniente de classificar linhas.

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