{"id":1476,"date":"2016-09-26T18:36:15","date_gmt":"2016-09-26T23:36:15","guid":{"rendered":"http:\/\/www.perucontable.com\/excelcontable\/?p=1476"},"modified":"2023-10-26T21:39:58","modified_gmt":"2023-10-27T02:39:58","slug":"funcion-personalizada-excelpara-descomponer-nombres-y-apellidos-codigo-libre","status":"publish","type":"post","link":"https:\/\/www.perucontable.com\/excelcontable\/funcion-personalizada-excelpara-descomponer-nombres-y-apellidos-codigo-libre\/","title":{"rendered":"Funci\u00f3n personalizada (Excel) Para descomponer nombres y apellidos \u2013 C\u00f3digo libre."},"content":{"rendered":"<p>En alguna oportunidad hemos tenido la necesidad de separar los apellidos y nombres ya sea de nuestros trabajadores, clientes o proveedores y nos hemos encontrado con la tediosa tarea de hacerlo uno por uno ante esto PERU CONTABLE pone a su disposici\u00f3n un peque\u00f1o aplicativo para ser utilizado libremente en las tareas diarias si as\u00ed lo deseamos.<\/p>\n<p><a href=\"http:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2016\/09\/asdasd.bmp\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-1477\" src=\"http:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2016\/09\/asdasd.bmp\" alt=\"asdasd\" width=\"1366\" height=\"768\"><\/a><\/p>\n<p>Para esto haremos uno de las funciones personalizadas que nos permite crear Excel dichas funciones son las contenidas en el c\u00f3digo VBA adjuntado; ahora bien, el orden en que puede estar los datos son los siguientes:<\/p>\n<p>1.- Apellidos y Nombres.<\/p>\n<p>2.- Nombres y Apellidos.<\/p>\n<p>Las funciones a usar son las siguientes:<\/p>\n<ul>\n<li>Apellidos y nombres (1)<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">Apellido paterno= \u201cAPEL_PAT(N7;1)\u201d<\/p>\n<p style=\"padding-left: 60px;\">Apellido Materno= \u201cAPEL_MAT(N7;1)\u201d<\/p>\n<p style=\"padding-left: 60px;\">Primer nombre= \u201cPRIMER_NOMBRE(N7;1)\u201d<\/p>\n<p style=\"padding-left: 60px;\">Segundo nombre= \u201cSEGUNDO_NOMBRE(N7;1)\u201d<\/p>\n<ul>\n<li>Nombres y Apellidos (2)<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\">Apellido paterno= \u201cAPEL_PAT(N11;2)\u201d<\/p>\n<p style=\"padding-left: 60px;\">Apellido Materno= \u201cAPEL_MAT(N11;2)\u201d<\/p>\n<p style=\"padding-left: 60px;\">Primer nombre= \u201cPRIMER_NOMBRE(N11;2)\u201d<\/p>\n<p style=\"padding-left: 60px;\">Segundo nombre= \u201cSEGUNDO_NOMBRE(N11;2)\u201d<\/p>\n<p><strong>Para mayores detalles veamos el siguiente video:<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/6du6AH_y4I4\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Descargar archivo excel:&nbsp;<a href=\"http:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2016\/09\/Libro1.xlsm\">libro1<\/a><\/p>\n<p><strong><u>C\u00f3digo en VBA (macros) utilizado.<\/u><\/strong><br \/>\nPublic I As Integer<\/p>\n<p>Public N\u00b0_DIGITOS As Byte<\/p>\n<p>Public ORDEN As Byte<\/p>\n<p>Public criterio As Byte<\/p>\n<p>Public DIG As String<\/p>\n<p>Public w As String<\/p>\n<p>Public XC As String<\/p>\n<p>Public NOMBRE_APELLIDO As String<\/p>\n<p>Public ID As Double<\/p>\n<p>Public SEGUIR As Boolean<\/p>\n<p>\u2018VISITA NUESTRA TIENDA VIRTUAL<\/p>\n<p>\u2018SISTEMA CONTABLE EXCEL \u2013 ACCES V.3.0:::: http:\/\/www.perucontable.com\/tienda\/producto\/sistema-contable-excel\/<\/p>\n<p>\u2018APLICATIVO PLE 5.0:::::::::::::::::::::: http:\/\/www.perucontable.com\/tienda\/producto\/macro-aplicativo-libros-electronicos\/<\/p>\n<p>\u2018GESTOR DE PLANILLAS ELECTRONICAS:::::::: http:\/\/www.perucontable.com\/tienda\/producto\/gestor-planillas-beneficios-sociales\/<\/p>\n<p>\u2018GESTOR DE INVENTARIOS::::::::::::::::::: http:\/\/www.perucontable.com\/tienda\/producto\/control-almacen-excel\/<\/p>\n<p>Public Function APEL_PAT(DATO As String, TIPO As Byte) As String<\/p>\n<p>Call TEMP(DATO)<\/p>\n<p>N\u00b0_DIGITOS = Len(Trim(DATO))<\/p>\n<p>DIG = Mid(Trim(DATO), 1, 1)<\/p>\n<p>w = 1<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>ORDEN = ORDEN \u2013 1<\/p>\n<p>Select Case ORDEN<\/p>\n<p>Case 3<\/p>\n<p>If TIPO = 1 Then criterio = 1 Else criterio = 2<\/p>\n<p>Case 4<\/p>\n<p>If TIPO = 1 Then criterio = 1 Else criterio = 3<\/p>\n<p>End Select<\/p>\n<p>ORDEN = 1<\/p>\n<p>For II = 1 To N\u00b0_DIGITOS + 1<\/p>\n<p>If DIG = \u201d \u201d Or II = N\u00b0_DIGITOS + 1 Then<\/p>\n<p>NOMBRE_APELLIDO = XC<\/p>\n<p>If ORDEN = 1 And criterio = ORDEN Then<\/p>\n<p>APEL_PAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 2 And criterio = ORDEN Then<\/p>\n<p>APEL_PAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 3 And criterio = ORDEN Then<\/p>\n<p>APEL_PAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 4 And criterio = ORDEN Then<\/p>\n<p>APEL_PAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 5 And criterio = ORDEN Then<\/p>\n<p>APEL_PAT = NOMBRE_APELLIDO<\/p>\n<p>End If<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>\u2018FIN = 5<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>ORDEN = ORDEN + 1<\/p>\n<p>Else<\/p>\n<p>XC = XC + DIG<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>End If<\/p>\n<p>Next II<\/p>\n<p>End Function<\/p>\n<p>Public Function APEL_MAT(DATO As String, TIPO As Byte) As String<\/p>\n<p>Call TEMP(DATO)<\/p>\n<p>N\u00b0_DIGITOS = Len(Trim(DATO))<\/p>\n<p>DIG = Mid(Trim(DATO), 1, 1)<\/p>\n<p>w = 1<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>ORDEN = ORDEN \u2013 1<\/p>\n<p>Select Case ORDEN<\/p>\n<p>Case 3<\/p>\n<p>If TIPO = 1 Then criterio = 2 Else criterio = 3<\/p>\n<p>Case 4<\/p>\n<p>If TIPO = 1 Then criterio = 2 Else criterio = 4<\/p>\n<p>End Select<\/p>\n<p>ORDEN = 1<\/p>\n<p>For II = 1 To N\u00b0_DIGITOS + 1<\/p>\n<p>If DIG = \u201d \u201d Or II = N\u00b0_DIGITOS + 1 Then<\/p>\n<p>NOMBRE_APELLIDO = XC<\/p>\n<p>If ORDEN = 1 And criterio = ORDEN Then<\/p>\n<p>APEL_MAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 2 And criterio = ORDEN Then<\/p>\n<p>APEL_MAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 3 And criterio = ORDEN Then<\/p>\n<p>APEL_MAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 4 And criterio = ORDEN Then<\/p>\n<p>APEL_MAT = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 5 And criterio = ORDEN Then<\/p>\n<p>APEL_MAT = NOMBRE_APELLIDO<\/p>\n<p>End If<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>\u2018FIN = 5<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>ORDEN = ORDEN + 1<\/p>\n<p>Else<\/p>\n<p>XC = XC + DIG<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>End If<\/p>\n<p>Next II<\/p>\n<p>End Function<\/p>\n<p>Public Function PRIMER_NOMBRE(DATO As String, TIPO As Byte) As String<\/p>\n<p>Call TEMP(DATO)<\/p>\n<p>N\u00b0_DIGITOS = Len(Trim(DATO))<\/p>\n<p>DIG = Mid(Trim(DATO), 1, 1)<\/p>\n<p>w = 1<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>ORDEN = ORDEN \u2013 1<\/p>\n<p>Select Case ORDEN<\/p>\n<p>Case 3<\/p>\n<p>If TIPO = 1 Then criterio = 3 Else criterio = 1<\/p>\n<p>Case 4<\/p>\n<p>If TIPO = 1 Then criterio = 3 Else criterio = 1<\/p>\n<p>End Select<\/p>\n<p>ORDEN = 1<\/p>\n<p>For II = 1 To N\u00b0_DIGITOS + 1<\/p>\n<p>If DIG = \u201d \u201d Or II = N\u00b0_DIGITOS + 1 Then<\/p>\n<p>NOMBRE_APELLIDO = XC<\/p>\n<p>If ORDEN = 1 And criterio = ORDEN Then<\/p>\n<p>PRIMER_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 2 And criterio = ORDEN Then<\/p>\n<p>PRIMER_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 3 And criterio = ORDEN Then<\/p>\n<p>PRIMER_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 4 And criterio = ORDEN Then<\/p>\n<p>PRIMER_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 5 And criterio = ORDEN Then<\/p>\n<p>PRIMER_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>End If<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>\u2018FIN = 5<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>ORDEN = ORDEN + 1<\/p>\n<p>Else<\/p>\n<p>XC = XC + DIG<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>End If<\/p>\n<p>Next II<\/p>\n<p>End Function<\/p>\n<p>Public Function SEGUNDO_NOMBRE(DATO As String, TIPO As Byte) As String<\/p>\n<p>Call TEMP(DATO)<\/p>\n<p>N\u00b0_DIGITOS = Len(Trim(DATO))<\/p>\n<p>DIG = Mid(Trim(DATO), 1, 1)<\/p>\n<p>w = 1<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>ORDEN = ORDEN \u2013 1<\/p>\n<p>Select Case ORDEN<\/p>\n<p>Case 3<\/p>\n<p>If TIPO = 1 Then criterio = 5 Else criterio = 5<\/p>\n<p>Case 4<\/p>\n<p>If TIPO = 1 Then criterio = 4 Else criterio = 2<\/p>\n<p>End Select<\/p>\n<p>ORDEN = 1<\/p>\n<p>For II = 1 To N\u00b0_DIGITOS + 1<\/p>\n<p>If DIG = \u201d \u201d Or II = N\u00b0_DIGITOS + 1 Then<\/p>\n<p>NOMBRE_APELLIDO = XC<\/p>\n<p>If ORDEN = 1 And criterio = ORDEN Then<\/p>\n<p>SEGUNDO_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 2 And criterio = ORDEN Then<\/p>\n<p>SEGUNDO_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 3 And criterio = ORDEN Then<\/p>\n<p>SEGUNDO_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 4 And criterio = ORDEN Then<\/p>\n<p>SEGUNDO_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>ElseIf ORDEN = 5 And criterio = ORDEN Then<\/p>\n<p>SEGUNDO_NOMBRE = NOMBRE_APELLIDO<\/p>\n<p>End If<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>\u2018FIN = 5<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>ORDEN = ORDEN + 1<\/p>\n<p>Else<\/p>\n<p>XC = XC + DIG<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>End If<\/p>\n<p>Next II<\/p>\n<p>End Function<\/p>\n<p>Public Function TEMP(DATO As String)<\/p>\n<p>N\u00b0_DIGITOS = Len(Trim(DATO))<\/p>\n<p>DIG = Mid(Trim(DATO), 1, 1)<\/p>\n<p>w = 1<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>ORDEN = 1<\/p>\n<p>For II = 1 To N\u00b0_DIGITOS + 1<\/p>\n<p>If DIG = \u201d \u201d Or II = N\u00b0_DIGITOS + 1 Then<\/p>\n<p>NOMBRE_APELLIDO = XC<\/p>\n<p>NOMBRE_APELLIDO = \u201c\u201d<\/p>\n<p>\u2018FIN = 5<\/p>\n<p>XC = \u201c\u201d<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>ORDEN = ORDEN + 1<\/p>\n<p>Else<\/p>\n<p>XC = XC + DIG<\/p>\n<p>w = w + 1<\/p>\n<p>DIG = Mid(Trim(DATO), w, 1)<\/p>\n<p>End If<\/p>\n<p>Next II<\/p>\n<p>End Function<\/p>\n<p>Esperamos que sea de utilidad hasta el siguiente post un saludo contable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En alguna oportunidad hemos tenido la necesidad de separar los apellidos y nombres ya sea de nuestros trabajadores, clientes o proveedores y nos hemos encontrado con la tediosa tarea de hacerlo uno por uno ante esto PERU CONTABLE pone a su disposici\u00f3n un peque\u00f1o aplicativo para ser utilizado libremente en las tareas diarias si as\u00ed [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":14410,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[83,53],"tags":[],"yst_prominent_words":[],"_links":{"self":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/1476"}],"collection":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/comments?post=1476"}],"version-history":[{"count":2,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/1476\/revisions"}],"predecessor-version":[{"id":17250,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/1476\/revisions\/17250"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media\/14410"}],"wp:attachment":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media?parent=1476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/categories?post=1476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/tags?post=1476"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/yst_prominent_words?post=1476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}