Saltar al contenido

Que funcion podria usar?


cvina

Recommended Posts

publicado

 

Hola a todos 

Estoy creando una tabla para el control del rendimiento de unas líneas de envasado,  en la tabla de datos no tengo la capacidad de cada tipo de botella ya que en función de la capacidad de la botella el nominal de la linea es diferente.

Entonces buscando me he dado cuenta que en la descripción del articulo aparece la capacidad pero este dato habría que extraerlo, pero no siempre va en la misma posición

como podría extraerlo?

he usado la función ENCONTRAR, pero solo me permite buscar una cadena  

os dejo un ejemplo de la tabla

muchas gracias por la ayuda

Nominales.xlsxFetching info...

publicado

hola:

seria la solución pero es que cada día se incorporan nuevos artículos que previamente habría que incorporar al catalogo  diariamente para realizar la extracción y son mas de 5000 artículos 

no habría otra forma? 

gracias por la respuesta

publicado

Hola,

observando el listado de muestra que has mandado, se puede observar la falta de homogeneidad a la hora de especificar la capacidad
de cada artículo. En algunos hay un quebrado (3/4), en otros hay un número decimal con coma (1,5), otros con punto (1.5), y a éstos le sigue
una L mayúscula con punto o sin punto,... etc, y si viera el resto del listado habría más casos.

El problema surge por operar de una forma no normalizada y el problema persitirá a lo largo del tiempo, pues como dices, se irán incorporando nuevos
artículos al listado y estos mantendrán la misma dinámica de descripción del artículo que los anteriores.

Por tanto, esperar una solución que consiga los que necesitas al 100% es poco factible. No obstante, no todo está perdido y aquí te explico mi solución que te aproximará
bastante a lo que necesitas aunque no estará exenta de darle un repaso.

Pasos a seguir:

1. Insertar una columna despues de la columna DesArticulo

image.thumb.png.3385b27eecc8e3b1bee7f9abb45c9d1d.png

2. En la celda F2 escribes '3/4 (un apostrofe -> ', el tres -> 3, la barra -> / y el cuatro 4). No confundir el apóstrofe con el acento; y pulsar Enter.

Antes de pulsar Enter:

image.thumb.png.b1882691ce54af00c4c39cd7cbff3ab8.png

Después de pulsar Enter:

image.thumb.png.7c6b89e52108896c77cadb25a9696c05.png

3. Ahora la casilla activa será F3 y es ahí donde debes pulsar la combinación de teclas: Shift + Ctrl + E

image.thumb.png.833b3ee25919ef841dd06305988bdb0c.png

El resultado es bastante bueno, teniendo en cuenta el punto de partida.

Espero que te sirva

Saludos

publicado

[Esta respuesta se estaba escribiendo mientras @Frank2021 escribía la suya. Quizá este ya obsoleta]

Hola,

De todas formas, aunque lo extraigas, en algún sitio tendrás que indicarle  a Excel como interpretar el valor de extracción, porque una veces extraerás 3/4 y otras 0.75 entre otras.

¿Solo tienes 4 formatos? No veo tan descabellado que añadas una columna donde categorices el formato de cada producto. Puedes que tengas 5000 referencias, pero los "planning" de fabricación "diarios/semanales" solo incluirán algunas referencias.

Si pudieras indicar todo el proceso completo, podriamos dar mas opciones.

Saludos.

publicado

hola de nuevo,

En el caso de Frank 2021 he probado este procedimiento  con todo el archivo que hay ahora, ( unas 1400 entradas) y me genera usando su procedimiento muchas celdas con datos inconexos.

por cierto, este procedimiento que hace? ctrl+shift+E 

Como dice  NJNSP indico el proceso completo:

Son 15 formatos, ya que son 4 por 3 líneas que cambian de formato  + 3 líneas  con formato fijo

todos los días SAP genera un listado  el  cual  se copia en el Excel para el calculo de  los  rendimientos:

este archivo tiene alrededor de 30 artículos que corresponden a los artículos envasados en el día

los campos son los que os he puesto en el ejemplo ( luego añado campos  para que en una t. dinámica me de : el mes, el año , etc.) 

esto es el procedimiento, simple: copiar y pegar una tabla sobre otra.

 

saludos 

 

publicado

Hola de nuevo,

Por darle otro enfoque al problema:

os dejo un archivo en el que he incorporado una columna de capacidad la cual se introduciría a mano y una tabla donde figuran las capacidades con las lineas y los nominales

el objeto de esto es que cuando en una fila introducimos el Nº de linea, y su capacidad usando la tabla de capacidades nos introdujese en la columna de nominales el nominal que le corresponderia a esa linea con esa capacidad.

 

alguien sabria como hacerlo?

gracias de nuevo?

NOMINALES V2.xlsxFetching info...

publicado

Pues @Janlui ya te a dado la solución a lo que pedias.

Yo solo quería añadir que trabajo en algo muy similar a lo tuyo,  y aunque no estoy en producción, sí trabajo con maestro de materiales. Busca por SAP que seguro que hay alguna visualización que te permita exportar mas datos a Excel. O prepárate un maestro de artículos en excel (exportado de SAP), y poco a poco vas metiendo la capacidad de cada articulo, luego lo conectas con el listado diario y así te evitas introducir a mano la capacidad en el listado diario.

Parece mucho curro, pero al hacerlo poco a poco, no se hace pesado y luego avanzas muchísimo porque las fabricaciones son repetitivas.

 

publicado

buenos dias,  

Resuelto el problema con el aporte de Janlui. En cuanto a SAP no me hables... esto da menos datos que Villarejo? hemos pasado de un ERP hecho a medida, al cual podías pedirle cualquier dato o hacer una Query para visualizar cualquier cosa,  a un sistema "standar" que da lo que puede y lo que no te apañas con Excel, eso si el nivel de Excel ha subido un montón en la empresa. 

muchísimas gracias por la ayuda que me habéis prestado 

saludos ?

publicado

Buenoooo, no sé,

Nuestro SAP está MUY personalizado y la verdad es que podemos sacar mucha información, aunque en realidad no nos hace falta con las transacciones y variantes de visualización que tenemos, por lo menos en mi departamento

publicado

hola ,

ya, esa es la solución, pero con un SAP  standar ya me dirás. SAP tiene unos comerciales fantasticos que son capaces de vender hielo a los esquimales. y te  juran por su madre que con el standar vas sobrado. y luego la realidad es que los que hacen la implantación dicen esa famosa frase " esto es lo que hay"

saludos 

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.