Saltar al contenido

Analizar datos de celdas de excel que tienen varios valores


Recommended Posts

publicado

Buenas noches
Tengo una hoja de excel en la que en algunas celdas tengo varios valores.

Como podría sacar datos desglosados a través de una tabla dinámica (u otra forma)?

Es posible?

Me explico:

En la celda A2 tengo los siguientes valores:

_ Alojamiento

_ Suministros

En la celda A3 tengo los siguientes valores:

_ Tasas

_ Alojamiento.

Necesito sacar cuantos valores hay de  cada uno de ellos (desglosado), es decir, me tendría que dar:

Alojamiento: 2

Suministros: 2

Tasas: 1

A ver si alguien me echa una mano, por favor.

Gracias.

publicado

Hola a ambos,

@SUSANA GARCIA-ABAD FERNANDEZ, vayamos por partes:

Primer tema:

hace 12 horas, SUSANA GARCIA-ABAD FERNANDEZ dijo:

Me explico:  En la celda A2 tengo los siguientes valores:  _ Alojamiento  _ Suministros

En la celda A3 tengo los siguientes valores:  _Tasas  _ Alojamiento.

Aquí veo una ambigüedad: en una única celda (ese A2, por ejemplo), supongo que tienes o bien 'Alojamiento', o bien 'Suministros'. Si tienes las dos cosas a la vez (y digo lo mismo para A3), creo que deberías explicar más certeramente ese o esos contenidos a qué se refieren, o cómo hay que leerlos.

Segundo tema:

hace 12 horas, SUSANA GARCIA-ABAD FERNANDEZ dijo:

Como podría sacar datos desglosados a través de una tabla dinámica (u otra forma)?

Es posible?

 ....................................................

Necesito sacar cuantos valores hay de  cada uno de ellos (desglosado), es decir, me tendría que dar:

Alojamiento: 2

Suministros: 2

Tasas: 1

La tabla dinámica la puedes construir con relativa facilidad, pero siempre dependiendo de cómo tengas estructurados esos datos (y aquí te recuerdo mi anterior comentario sobre cómo hay que interpretar tu explicación al respecto).

Y sobre esa "otra forma", puedo sugerirte una sencilla fórmula con la función =CONTAR.SI, o tal vez =CONTAR.SI.CONJUNTO, siempre apuntando a cómo tengas dispuestos tus datos. Puedes encontrar fácilmente información sobre esas 2 funciones; incluso el propio 'Help' de Excel lleva ejemplos resueltos donde puedes observar su funcionamiento y sintaxis.

He repetido en varias ocasiones eso de '...cómo estén estructurados tus datos...', ya que no has adjuntado ningún archivo, dejándolo prácticamente todo a la imaginación de quien quiera ayudarte, algo que no suele traducirse en resultados efectivos. Si con la respuesta que te da @GabrielRaigosase resuelve tu problema, perfecto; en caso contrario mejor sube un archivo con datos concretos (no hace falta que sean reales, puedes introducir datos ficticios o inventados, pero procura que conformen la misma estructura que la que tenga tu archivo real).

Saludos,

publicado
hace 11 horas, Victor7 dijo:

Hola a ambos,

@SUSANA GARCIA-ABAD FERNANDEZ, vayamos por partes:

Primer tema:

Aquí veo una ambigüedad: en una única celda (ese A2, por ejemplo), supongo que tienes o bien 'Alojamiento', o bien 'Suministros'. Si tienes las dos cosas a la vez (y digo lo mismo para A3), creo que deberías explicar más certeramente ese o esos contenidos a qué se refieren, o cómo hay que leerlos.

Segundo tema:

La tabla dinámica la puedes construir con relativa facilidad, pero siempre dependiendo de cómo tengas estructurados esos datos (y aquí te recuerdo mi anterior comentario sobre cómo hay que interpretar tu explicación al respecto).

Y sobre esa "otra forma", puedo sugerirte una sencilla fórmula con la función =CONTAR.SI, o tal vez =CONTAR.SI.CONJUNTO, siempre apuntando a cómo tengas dispuestos tus datos. Puedes encontrar fácilmente información sobre esas 2 funciones; incluso el propio 'Help' de Excel lleva ejemplos resueltos donde puedes observar su funcionamiento y sintaxis.

He repetido en varias ocasiones eso de '...cómo estén estructurados tus datos...', ya que no has adjuntado ningún archivo, dejándolo prácticamente todo a la imaginación de quien quiera ayudarte, algo que no suele traducirse en resultados efectivos. Si con la respuesta que te da @GabrielRaigosase resuelve tu problema, perfecto; en caso contrario mejor sube un archivo con datos concretos (no hace falta que sean reales, puedes introducir datos ficticios o inventados, pero procura que conformen la misma estructura que la que tenga tu archivo real).

Saludos,

Buenas noches:

Subo un archivo con datos concretos para que se vea mejor lo que explico: Como se puede algunas celdas hay varios valores, no solo uno y lo que necesito es que me haga un recuento de cada uno de los valores: x de suministros, x de alquiler, x de comunidad de vecinos, etc....

Un saludo.

Libro1.xlsx

publicado

Hola,

Basicamente es lo que le pase, solo que se tiene una tabla con mas columnas y se selecciona una sola, cuyo separador de textos es el "salto" de linea.

Se hace la consulta, se deja solo la columna de interes, se dividen los textos, se ponen en una sola columna y luego se hace la TD.

Cuando cambien los datos de origen se actualiza la TD como siempre se ha hecho, clic derecho actualizar.

image.thumb.png.ff409366a5092949e7b00a527e27a850.png

La respuesta que doy es según lo que entendí, si no es lo esperado puedes explicar con mas detalle y con base en los datos entregados cual es el resultado deseado.

El power query es un herramienta propia del Excel, la encuentras en la ficha "Datos", grupo "Obtener y transformar datos", carga la tabla y permite transformarla, en este caso es para extraer la columna "Detalle_gasto_justi" y transformarla.

image.thumb.png.f60d2e0d0d2d73632df3eaa3498c3cd9.png

Dando doble clic en la "Tabla1" de la consulta puedes ver los pasos aplicados.

image.thumb.png.2f7244a33a9eae1e6c703c9acb6323b3.png

A partir de esa tabla se hace la TD.

Saludos

Conteo detalle con PQ.xlsx

publicado

¡Hola a todos!

En 22/10/2022 at 13:43 , SUSANA GARCIA-ABAD FERNANDEZ dijo:

Como podría sacar datos desglosados a través de una tabla dinámica (u otra forma)?

Es posible?

Definitivamente siendo que esa tabla viene así, me inclino por power query

Pero te dejo un aporte con formulación de Excel 365

En la que llamo 365, podrás ver que en la columna A, extraigo las categorías y a partir de esta, obtengo el recuento, en otra tabla 

Ya nos comentaras

 

Dividir texto Apilar Byrow_GP.xlsx

publicado

Hola de nuevo a todos,

La verdad es que yo había interpretado que el problema era más sencillo.

En cualquier caso, @SUSANA GARCIA-ABAD FERNANDEZ, si con las soluciones de @GabrielRaigosa y @Gerson Pineda resuelves el problema, pues perfecto: punto final y a otra cosa.

Yo subo otro archivo con una diferente interpretación de lo que buscas: necesita un recuento de los registros únicos de la columna F (tal como aparecen ahí), que conseguimos en la columna I con una fórmula también M365.

A continuación, nada nuevo: con simples =CONTAR.SI y =SUMAR.SI en las columnas J:K, obtenemos las veces que aparece cada uno de esos conceptos (insisto: tal como aparecen en la columna F), y de acuerdo con tu petición inicial:

En 23/10/2022 at 22:03 , SUSANA GARCIA-ABAD FERNANDEZ dijo:

...lo que necesito es que me haga un recuento de cada uno de los valores: x de suministros...

lo que yo entiendo como "recuento", que sería un total de cada uno de los conceptos, siempre de acuerdo con la descripción de la columna F (o la columna I, que es lo mismo).

@SUSANA GARCIA-ABAD FERNANDEZ, ya tienes otra aportación con una óptica diferente. Con todo, si sigue quedando algún agujero por rellenar, sería conveniente que volvieras a subir el archivo, pero esta vez añadiendo a mano los nuevos datos que se necesiten, indicando también dónde (en la misma hoja, en otra hoja,...) hay que plasmarlos. Seguro que así podremos dar carpetazo final al tema.

Saludos,

Libro1 (Bis).xlsx

publicado

Que tal Victor

Creo que la clave de este enjambre está aquí:

En 22/10/2022 at 13:43 , SUSANA GARCIA-ABAD FERNANDEZ dijo:

En la celda A2 tengo los siguientes valores:

_ Alojamiento

_ Suministros

En la celda A3 tengo los siguientes valores:

_ Tasas

_ Alojamiento.

Necesito sacar cuantos valores hay de  cada uno de ellos (desglosado), es decir, me tendría que dar:

Alojamiento: 2

Suministros: 2

Tasas: 1

Para obtener los totales, necesita separar lo que está dentro de cada celda

Pero igual es otra cosa ?

publicado
hace 12 horas, GabrielRaigosa dijo:

365... !YES!

Dejemos otro aporte para ser usado con MSO 365

Olvide esas nuevas funciones, y aprovechando tu método, lo he utilizado aplicando un pequeño cambio

Además, incluí un aporte más con power query, que desde luego se puede llevar a una TD, para su completo análisis

 

Dividir texto Apilar contar - Byrow_GP_PQ_GR.xlsx

  • 1 month later...
publicado

Buenas tardes:

En primer lugar pediros disculpas por no haber contestado antes (causas de fuerza mayor,....).

En segundo lugar, veo que funciona con el power query en el archivo que subí a modo de ejemplo pero sin embargo en la hoja de excel que tengo de trabajo no me funciona y no entiendo por qué; he seguido todos los pasos.

Me estoy volviendo loca!!!

publicado
En 10/12/2022 at 14:43 , SUSANA GARCIA-ABAD FERNANDEZ dijo:

sin embargo en la hoja de excel que tengo de trabajo no me funciona y no entiendo por qué

¿Que error te muestra?

Puede ser por el nombre de la tabla

En todo caso, vuelvo y subo el libro, he reemplazado la formula 365, es decir ahora podrás ver en una sola, el resultado

image.png

 

Dividir texto APILARV REDUCE EXCLUIRP_PQ_GP.xlsx

Archivado

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

  • 109 ¿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
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • 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.