Saltar al contenido

Tabla Dinámica - Suma de Totales de Campo Calculado


danietc

Recommended Posts

Buenas noches,

Tengo un problema con los campos calculados de la tabla dinámica y perdonar si alguien habló de esto pero no lo encuentro. El tema es que cuando hago el campo calculado que la fórmula simplemente es un número menos la columna, lo hace bien pero en los subtotales y en los totales me aplica también la fórmula y yo lo que necesito es que me sume los datos de la columna del campo calculado.
Adjunto el excel con los datos para que lo podáis ver mejor, os resumo: tengo 5 salas cada hora, saco la ocupación que he tenido cada hora y hago un campo calculado para sacar la Disponibilidad que simplemente es "5-Ocupación", pero como podéis ver cuando pongo los subtotales no me suma los datos de la columna y hace la fórmula sobre el total también por lo que el resultado no es correcto. Alguien sabe cómo puedo solucionarlo?

Ocupación a 20210226.xlsx

Enlace a comentario
Compartir con otras webs

modelos como el de tu adjunto presentan detalles a consideración (p.ej.)

1) al abrir tu archivo y no hacer otra cosa que recalcular todo y actualizar la TD, los valores mostrados cambian totalmente (la razón ?)

2) en tu hoja de datos, las fechas en columna "A" son TEXTOS que simulan fechas (sabes como se tratan las fechas en excel ?)
- la función FECHANUMERO(... toma el orden de fechas de la configuración regional del equipo
- en tu caso coincide con el de los TEXTOS-fecha de la columna "A" (día/mes/año)
- en mi caso, el orden de fechas es mes/día/año, por lo tanto, fechas con el día >12 YA NO son reconocidos como fecha
- si estas completamente seguro que tu modelo se trabajara SOLO en equipos de configuración IGUAL a tu sistema ?... (sigue así)

3) las TD (ni los CC) hacen sus cálculos sobre los datos de origen pero...
- NO tienen la facilidad de tratar en conjunto los datos con funciones como x.SI.conjunto por lo que...
- ciertos cálculos se deben hacer dese la tabla con los datos de origen

4) tus formulas en la hoja datos refieren a columnas COMPLETAS (G:G, E:E, F:F, etc.) pero...
- no porque se pueda, significa que DEBAS hacer ese tipo de referencias
- (ya te veré cuando los datos crezcan y veas una desmejora en el rendimiento del modelo), en todo caso...
- define nombres con referencia a rangos dinámicos o convierte los datos en tablas (ListObjets) como base para la TD

ahora, como prefieres que demos tratamiento y ajustes a los puntos 2, 3 y 4 ?

Enlace a comentario
Compartir con otras webs

Hola Héctor, primero de todo agradecerte la respuesta. Te respondo a los puntos que me comentar:

1. No se qué puede ser porque a mi me sale bien, no me cambia nada

2. En la columna E:E tengo la fórmula de FECHANUMERO sobre el texto de la columna A:A y me sale bien para lo que lo necesito, de todas formas lo reviso

3. Ok lo reviso

4. Ok, voy a investigar sobre esto porque no lo conozco bien e intento corregirlo.

Por otro lado, no se si has podido ver en la TD que cuando hago el campo calculado, lo hace bien en las filas pero cuando hago el Subtotal lo que hace es aplicar también la fórmula y no suma los datos del campo calculado. Sabes si eso se puede hacer de alguna forma?

Gracias

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Buenas tardes! Tengo el siguiente código: Private Sub btnCargaBancos_Click() Dim TasaCompra, TasaVenta As Double Dim InvBanesco, InvVzla, MontoBanesco, MontoVzla As Double Dim TasaDiaBan, TasaDiaVzla, TasaActual As Double 'Inversion = Val(txtInversion.Text) InvBanesco = Val(CDbl(txtInverBanesco.Text)) InvVzla = Val(CDbl(txtInverVzla.Text)) TasaCompra = Val(CDbl(txtTasaCompra.Text)) TasaVenta = Val(CDbl(txtTasaVenta.Text)) MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055)      TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then     TasaActual = TasaDiaBan Else     TasaActual = TasaDiaVzla End If MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco.Value = MontoBanesco txtBcoVenezuela.Value = MontoVzla txtTasaDiaria.Value = TasaActual End Sub   Como se puede apreciar InvBanesco ,  InvVzla , TasaCompra y TasaVenta, son valores que introduce el usuario a través de los respectivos cuadros de texto. Tengo los siguientes problemas: a. Las fórmulas no se ejecutan correctamente (pareciese que no reconociese los números entrados vía cuadros de texto). b. Al darle valor cero (0) a cualquiera de los valores de InvBanesco o  InvVzla, me genera un error en TasaDiaBan o TasaDiaVzla (según sea el caso), aunque, como se puede apreciar, debería generar un valor cero (0). Como dije en mi presentación estoy empezando en esto de la codificación...y quiero aprender de Uds! Agradezco su ayuda! Nota: lamentablemente el fichero es mas grande de lo permitido y no pude anexarlo.  
    • Hola buenas tardes. En una hoja plantilla donde realizo diferentes consultas de datos. tengo ya establecido dos formulas diferentes con función SI y buscar. estos buscan diferentes rangos de datos y recibendiferentes resultados. Cada formula varia según una palabra o numero  ejemplo si pongo Xl pone la formula 1 y si pongo cualquier numero entre 1 y 3 pone la segunda formula. Lo que necesito hacer es que si en una celda de la columna B3 pongo XL debería de considerar la formula 1 y si pusiera el numero 1 me pondría la segunda formula, dentro de la misma formula. Ya agregue la función SI($C3="Xl",Formula1.. Pero no me funciona, espero me puedan ayudar.   Muchas gracias Mariano   Formula doble si en celda existe.xlsx
    • Sub control2558() Application.ScreenUpdating = False Dim I As Integer I = 4 While Sheets("FT-ADF-2558").Cells(I, 102) <> "" Sheets("FT-ADF-2558").Cells(6, 82) = Sheets("FT-ADF-2558").Cells(I, 102) Dim NombreArchivo, RutaArchivo As String NombreArchivo = "Hoja Control " & Sheets("FT-ADF-2558").Cells(I, 102) RutaArchivo = ActiveWorkbook.Path & "\" & NombreArchivo & ".xlsm" Dim NuevoLibro As Workbook Set NuevoLibro = Workbooks.Add Sheets("FT-ADF-2558").Copy Before:=NuevoLibro.Sheets(1) NuevoLibro.SaveAs Filename:=RutaArchivo NuevoLibro.Close I = I + 1 Wend MsgBox ("Proceso generado con éxito") Application.ScreenUpdating = True End Sub  
    • Ese error es porque no existe la hoja 10 con ese nombre, entonces cámbialo por FT-ADF-2558
    • Hola, gracias. No se ejecuta...   sale esto: se ha producido el error "424"  en tiempo de ejecución. Se requiere un objeto   Le doy en depurar y me sale en amarillo esta parte  While Hoja10.Cells(I, 102) <> ""        
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.