2009-12-10 18 views
7

Intento evitar el uso excesivo de Excel, pero cuando lo hago, me gusta usar referencias estructuradas, ya que parecen mucho más limpias de escribir.Sintaxis de la tabla de referencia estructurada de Excel

Si creo una tabla llamada "tabla1" con columnas "col1" y "col2", ¿cómo haré referencia a la primera fila en "col1" utilizando una referencia estructurada en otra tabla? He intentado con la sintaxis =table1[[#this row],[col1]], y me sale un error. ¿Hay una sintaxis como =table1[1,1] or =table1[1,[col1]]? Por supuesto, esto tampoco funciona, pero ¿cuál es el equivalente?

Es muy molesto, ya que parece que esto debería ser simple.

Respuesta

12

Table1[[#This Row][Column1]]hace funciona, pero la fórmula debe estar en la misma fila que la fila de la tabla a la que desea hacer referencia.

Para hacer referencia a la primera fila, en otro lugar, utilice uno COUNTIFS(criteria_range1, criteria1 [, criteria_rangen, criterian]) O el poco más compleja SUMIFS() si necesita valores numéricos en lugar de recuentos, según lo mencionado por studgeek:

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

Usted, por supuesto, necesita una fila única criterios por los cuales seleccionar la fila. Así, por ejemplo:

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

SUMIF(Table1[Value], Table1[ID], 2) ... devuelve un valor de 4 (o cero si ID = 2 no encontrado). Si su valor no es numérico, entonces no puede usar este método, obviamente.

Sin embargo, akuhn casi golpea la respuesta real, pero no fue lo suficientemente lejos en su explicación/ejemplo, IMO.

INDEX(Table1[Name], 2) devuelve "Cuatro" INDEX(Table1, 1, 1) devuelve 1

2

tratar

=INDEX(col1,1) 

incluso se puede hacer frente a las células en una tabla 2-dim, utilizando

=INDEX(reference,row_num,column_num) 
0

No parece ser una forma explícita de la utilización de referencias estructurada a filas particulares en una mesa. Como dice Adrian, puede usar INDEX.

O puede utilizar la intersección implícita para hacer referencia a la misma fila: si la tabla1 está en la fila 5:10 y la tabla 2 también en la fila 5:10 y luego usar una referencia estructurada con nombres de columna se cruza implícitamente con la misma fila.

O puede ingresar la referencia estructurada como una fórmula de matriz multirrutas (seleccionar varias celdas, ingresar la fórmula y usar Ctrl-shift-Enter) en diferentes filas y funcionará.

0

En lugar de INDEX sugeriría SUMAR. Le permitirá usar valores de tabla en lugar de números de fila explícitos (que pueden romperse si comienza a filtrar u ordenar). Por ejemplo (en el siguiente enlace), esto resume la columna Cantidad y sólo incluye aquellas filas donde Tipo es igual Comprobar y donde cuenta es igual Utilidades: =SUMIFS(Table1[Amount],Table1[Type],“Check”,Table1[Account], “Utilities”)

ver este vínculo más información: http://office.microsoft.com/en-us/excel-help/using-structured-references-with-excel-tables-HA010155686.aspx

0

Sería bueno si una tabla podría tener una columna designada como la clave principal (que puede ser numérico o de cadena), y luego un ref estructurado podría incluir una forma de referenciar una fila por su clave principal.

Esto sería azúcar de sintaxis alrededor de VLOOKUP, pero la tabla podría saber si se ordenó en la clave principal, y hacer búsquedas eficientes solo en ese caso. Parece que VLOOKUP incrusta mal que encuentra la fila incorrecta si dependes de ordenado, especialmente cuando las tablas tienen una manera conveniente de ordenar las filas.

0

El truco en estos casos es utilizar Excel función de desplazamiento:

  • Acceso primera fila de la columna denominada columna 1 en la misma tabla: OFFSET([Column1],0,0,1)
  • Acceso segunda fila OFFSET([Column1],1,0,1)

etc.

Por supuesto, puede usar esto para acceder a otra tabla y columna simplemente añadiéndole el nombre de la tabla. Por ejemplo, OFFSET(Table2[Column3],4,0,1) accederá a la cuarta fila de la columna 'Columna 3' de 'Tabla 2'

Cuestiones relacionadas