Jump to content
  • Debido a la crisis sanitaria, hasta el día 31 de marzo, el registro al foro de Ayuda Excel será totalmente gratuito para facilitar el teletrabajo. Todos los registros que se produzcan entre estas fechas tendrán acceso gratuito ilimitado a la comunidad hasta el 30 de abril.

    Regístrate

    Si te surge alguna duda mientras estás trabajando en casa con Excel, ya tienes a quien preguntar.

    Espero que esta medida te sirva de ayuda. Frenar la expansión del coronavirus depende de todos. Sé responsable.

pacocp53

Sumar sin considerar las columnas ocultas

Recommended Posts

Hola a todos, agradeceré me puedan ayudar con el siguiente tema.

Necesito hacer sumas de filas de una tabla en donde hay columnas ocultas y solamente quiero sumar las columna que no están ocultas. Ya encontré una solución agregando una fila con la siguiente fórmula: =SI(CELDA("ancho")=0,0,1) y posteriormente usando SUMAPRODUCTO().

Lo que pretendo es utilizar la siguiente función matricial para no tener que agregar ninguna fila adicional a mi tabla. Para esto tengo la siguiente función: {=SUMA(A1:E1*SI(CELDA("ancho",A1:E1)=0,0,1)}. El asunto es que la función matricial no opera sobre la función CELDA() y no sé por qué. ¿Alguien me puede ayudar?

Mil Gracias.

Share this post


Link to post
Share on other sites

Gracias Leopoldo, tengo una UDF:

Public Function SumaVisible(Rg As Range) As Double
'UpdatebyExtendOffice20160302
    Dim xCell As Range
    Dim xRg As Range
    Dim xOutRg As Range
    On Error Resume Next
    Application.Volatile
    Set xRg = Application.Intersect(Rg, Rg.Worksheet.UsedRange)
    If Not (xRg Is Nothing) Then
        For Each xCell In xRg
            If (xCell.EntireRow.Hidden = False) And _
               (xCell.EntireColumn.Hidden = False) Then
                If xOutRg Is Nothing Then
                    Set xOutRg = xCell
                Else
                    Set xOutRg = Application.Union(xCell, xOutRg)
                End If
            End If
        Next
    End If
    If Not xOutRg Is Nothing Then
        SumaVisible = Application.Evaluate("SUM(" & xOutRg.Address & ")")
    Else
        SumaVisible = 0
    End If
End Function

Si tienes otra te agradecería si me la compartes, sin embargo lo que quiero es encontrar una solución sin UDF ni macros.

Gracias por tu respuesta.

 

Share this post


Link to post
Share on other sites

Estuve probando y probando y no encontré forma de lograrlo sin necesidad de una UDF y aun así no es una solución 100% completa ya que el ocultar columnas no activa el re calculo del libro y tampoco es posible que una UDF solicite acciones en el mismo.

Share this post


Link to post
Share on other sites

¡Hola, a todos!

Hay algunas cosas por comentar.

1. Se puede evitar el recálculo con F9, agrupando las celdas en vez de ocultarlas.  Entonces, se pueden usar celdas auxiliares para realizar el cálculo... o, también

2. Se puede utilizar una "coerción" de la función CELDA para que funcione matricialmente.  De igual forma, se agrupa en vez de ocultar celdas para evitar el F9.

Ej Suma Col Ocultas.xlsx

¡Bendiciones!

Share this post


Link to post
Share on other sites
Hace 10 minutos , Manuel_Mendoza dijo:

Estas utilizando esquemas; los cuales si activan el re calculo, pero estos no permiten una selección arbitraria de columnas a ocultar.

Al conjunto de agrupaciones en una hoja Excel se le denomina esquema.  Y si, puedo seleccionar cualquier columna o grupo de columnas para agruparlas... ¿por qué dices que no se puede? ¡Bendiciones!

Share this post


Link to post
Share on other sites
Hace 16 minutos , johnmpl dijo:

Al conjunto de agrupaciones en una hoja Excel se le denomina esquema.  Y si, puedo seleccionar cualquier columna o grupo de columnas para agruparlas... ¿por qué dices que no se puede? ¡Bendiciones!

Perdona si no me explique bien. Me refería a que no puedes por ejemplo ocultar la columna S y activar un re calculo sin tener que generar antes un esquema.

oQD2dBhLfG.gif

Share this post


Link to post
Share on other sites
Hace 6 minutos , Manuel_Mendoza dijo:

Me refería a que no puedes por ejemplo ocultar la columna S y activar un re calculo sin tener que generar antes un esquema.

Ya... ahora entiendo tu punto. Precisamente por eso dije en su momento que se debe agrupar en vez de ocultar, para evitar el recálculo.  Para hacerse más rápido, se puede:

1. Seleccionar las columnas a agrupar.

2. Presionar el atajo de teclado Alt + Shift + Flecha Derecha.  (Alt + Shift + Flecha Izquierda si se quiere desagrupar).

¡Bendiciones!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png