En una tabla en modo Org de Emacs, cuando tiene una columna llena de números enteros, sé que puede hacerlo C-c +
seguido de C-y
pegar la suma de los valores en la columna. Quiero saber la fórmula para colocar en la última fila para sumar siempre toda la columna.
Lo he probado todo. Los documentos le muestran cómo sumar dos columnas juntas, pero no una.
Respuestas:
Asigne un nombre de campo usando la
^
marca:|---+---| | | 1 | | | 2 | | | 3 | |---+---| | | 6 | | ^ | x | |---+---| #+TBLFM: $x=vsum(@1..@-1)
Consulte el Manual de la organización , Sección-3.5.9 Funciones avanzadas .
fuente
#+TBLFM: @row$col=vsum(@1..@-1)
Unknown field: x
La última fila de una tabla es
@>
Por ejemplo, para obtener la suma de la tercera columna en la última línea, puede usar la fórmula@>$3=vsum(@2..@-1)
Tal vez tengas que adaptar
@2
, si no tienes una línea de encabezado ...fuente
Otra posibilidad hace uso de líneas horizontales (
@I
,@II
, etc.), que de todos modos son útiles para estructurar la tabla:| What | $$ | |-------+-------| | Ice | 3.00 | | Soda | 6.49 | | Gin | 4.99 | |-------+-------| | Total | 14.48 | #+TBLFM: @>$2=vsum(@I..@II)
Sin un encabezado, debe dejar que la suma comience como
@0
ya lo sugirieron otros.Editar: Acabo de ver que ya escribiste esto en un comentario a tu pregunta.
fuente
Puedes probar esto:
$<col_num>=<func>(@2..@-1))
@2
es estático. Se refiere a la 2ª fila en adelante.@-1
se refiere a la penúltima fila.Creo que esta fue la forma más fácil y no intrusiva. Conserva los nombres de sus columnas y no satura el espacio visual. No requiere que se dirija a la última fila. Se trata de forma predeterminada.
Se pueden agregar / eliminar filas. No hay otros marcadores.
p.ej.
#+TBLFM: $3=vmean(@2..@-1)::$4=vsum(@2..@-1))
Mesa de muestra
| Time | Input | Test | InQty | | <2018-03-13 Tue 06:15> | Water | | 200 | | <2018-03-13 Tue 07:03> | | | | | | | | | | <2018-03-13 Tue 07:31> | Water | | 180 | | <2018-03-13 Tue 09:00> | Chai | | 240 | | <2018-03-13 Tue 11:30> | Chai | | 240 | | <2018-03-13 Tue 16:01> | Water | | 60 | | | | | | |------------------------+-------------------+-----------+-------| | | | | 920 | #+TBLFM: $4=vsum(@2..@-1)
fuente
| 3 | | 2 | | 5 | | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
@1
se refiere a la 1ª fila y@-1
a la fila que precede a la que contiene la fórmula. Esa fórmula ignora hlines:| 3 | | 2 | | 5 | |----| | 10 | #+TBLFM: @4$1=vsum(@1..@-1)
fuente
Algo que puede no ser evidente para el lector es que la función
vsum()
no es suma ()La otra cosa es que la
@2..@-1
cosa es una referencia a la etiqueta específica de fila para la columna que se está sumando. La$A$1
cosa en Excel es como@1$1
una referencia avsum(@2..@-1)
decir "haz una suma de los valores de la columna, usando como índice de fila el@
valor en el rango 2, a la -1 (es decir, la segunda última) fila, pero la columna es un "dado" en esto, por lo que su vsum se aplica[@2$col @3$col @4$col... @-1$col]
si intenta asignar estos conceptos a Excelfuente