1. Faro

Nivel 8 · Desafío final: entrega una exportación de clientes limpia

La solicitud

De Angela Lewis, Analista de datos sénior

“Marketing quiere nuestros clientes de Missouri para la invitación a la tienda temporal de St. Louis. Antes de que la lista salga de nuestro equipo, quiero una copia limpia: ciudad y estado correctos, una comprobación de duplicados por correo y una columna que diga qué estaba mal en cada fila, para que marketing vea lo que arreglamos y nadie reciba dos invitaciones.”

Tu objetivo

Paso 1 de 3. En G2:G48, la ciudad de la columna E sin espacios sobrantes y con cada palabra en mayúscula inicial. En H2:H48, el estado de la columna F recortado y en mayúsculas.

  • Llena G2:H48 con los valores correctospendiente
  • Con fórmulas, no con números escritospendiente
  • Usa TRIM PROPER UPPERpendiente

Paso 1 · tu hoja

Excel
La hoja de este nivel
ABCDEFGHIJKLMN
1customer_idfirst_namelast_nameemailcitystateclean_cityclean_stateemail_keycopiesproblemsRows with a problem
221MargaretThompsonmthompson57@gmail.comKansas CityMO
338DianeCastillodiane.castillo@gmail.comSt. LouisMO
472JamesBrownjamesbrown1972@aol.comKansas City MO
579ChristopherRobertschristopher.roberts@gmail.comSt. LouisMO
6185CynthiaWallacecwallace14@yahoo.comSt. LouisMO
7196WeiDiazweidiaz1993@gmail.comKansas CityMO
8209JeffreyGarciajeffrey.garcia@gmail.comKansas CityMO
9233AaliyahColemanacoleman@harlowstudio.comSt. LouisMO
10267EdwardRusselledwardrussell1996@gmail.comSt. LouisMO
11356SamuelCruzscruz78@yahoo.comSt. LouisMO
12380CarlosThompsoncarlos.thompson@gmail.comKansas CityMO
13397AaronEdwardsaaronedwards1968@gmail.comSt. LouisMO
14455NoahBarnesnbarnes@parkrowhotels.comSt. LouisMO
15499ThomasDavistdavis10@comcast.net Kansas CityMO
16573JoshuaRichardsonjoshua.richardson@gmail.comSt. LouisMO
17577ScottThomassthomas25@gmail.comKansas CityMO
18594AndrewAndersonandrewanderson2000@gmail.comKansas CityMO
19622AmandaGomezamanda.gomez@yahoo.comKANSAS CITYMO
20705SofiaLeesofia.lee@gmail.comSt. LouisMO
21712SofiaThomassofiathomas1993@outlook.comSt. LouisMO
22713JustinHayesjhayes11@gmail.comSt. LouisMO
23718SofiaAndersonsofia.anderson@yahoo.comSt. LouisMO
24740DeborahKellydeborahkelly1960@hotmail.comKansas CityMO
25768ChristinaWrightchristinawright1991@outlook.comKansas CityMO
26785PeterWallacepeterwallace1993@gmail.comKansas CityMO
27812JoyceRiverajoyce.rivera@yahoo.comSt. LouisMO
28954MasonWallacemwallace75@outlook.comSt. LouisMO
29960JoycePetersonjoyce.peterson@yahoo.comKansas CityMO
301004RebeccaKimrebecca.kim@gmail.comSt. LouisMO
311055GaryCoxgary.cox@yahoo.comSt. LouisMO
321060MariaWhitemwhite44@gmail.comSt. LouisMO
331151StephenMitchellstephen.mitchell@gmail.comKansas CityMO
341234AnthonyMartinezanthony.martinez@aol.comSt. LouisMO
351307NathanBrooksnbrooks94@gmail.comSt. LouisMO
361313WilliamBakerwbaker@bluecedarhomes.comSt. LouisMO
371472RichardJimenezrjimenez73@gmail.comSt. Louis MO
381544CalebBaileycbailey10@icloud.comKansas CityMO
391556MelissaMendozammendoza@evergreenproperties.comSt. LouisMO
401563DebraJimenezdjimenez29@gmail.comKansas CityMO
411587OliviaSullivanolivia.sullivan@outlook.comKansas CityMO
421711BrookeRichardsonbrookerichardson1980@hotmail.comSt. LouisMO
431761BrendaHarrisbharris64@icloud.comSt. LouisMO
441894StephenLongstephen.long@gmail.comKansas CityMO
451951MichaelMendozammendoza84@outlook.comKansas CityMO
461994DennisLongdennislong1975@gmail.comSt. LouisMO
472006EdwardRussell edwardrussell1996@gmail.comSt. LouisMO
482012NoahBarnes nbarnes@parkrowhotels.comSt. LouisMO
49
50

Cargando el editor…

    ResultadoPresiona Comprobar para comparar G2:H48

    Mote revisa tu resultado

    Presiona Comprobar. Cada celda correcta se vuelve una luciérnaga en tu linterna.

    Paso 2 · tu hoja

    Excel
    La hoja de este nivel
    ABCDEFGHIJKLMN
    1customer_idfirst_namelast_nameemailcitystateclean_cityclean_stateemail_keycopiesproblemsRows with a problem
    221MargaretThompsonmthompson57@gmail.comKansas CityMOKansas CityMO
    338DianeCastillodiane.castillo@gmail.comSt. LouisMOSt. LouisMO
    472JamesBrownjamesbrown1972@aol.comKansas City MOKansas CityMO
    579ChristopherRobertschristopher.roberts@gmail.comSt. LouisMOSt. LouisMO
    6185CynthiaWallacecwallace14@yahoo.comSt. LouisMOSt. LouisMO
    7196WeiDiazweidiaz1993@gmail.comKansas CityMOKansas CityMO
    8209JeffreyGarciajeffrey.garcia@gmail.comKansas CityMOKansas CityMO
    9233AaliyahColemanacoleman@harlowstudio.comSt. LouisMOSt. LouisMO
    10267EdwardRusselledwardrussell1996@gmail.comSt. LouisMOSt. LouisMO
    11356SamuelCruzscruz78@yahoo.comSt. LouisMOSt. LouisMO
    12380CarlosThompsoncarlos.thompson@gmail.comKansas CityMOKansas CityMO
    13397AaronEdwardsaaronedwards1968@gmail.comSt. LouisMOSt. LouisMO
    14455NoahBarnesnbarnes@parkrowhotels.comSt. LouisMOSt. LouisMO
    15499ThomasDavistdavis10@comcast.net Kansas CityMOKansas CityMO
    16573JoshuaRichardsonjoshua.richardson@gmail.comSt. LouisMOSt. LouisMO
    17577ScottThomassthomas25@gmail.comKansas CityMOKansas CityMO
    18594AndrewAndersonandrewanderson2000@gmail.comKansas CityMOKansas CityMO
    19622AmandaGomezamanda.gomez@yahoo.comKANSAS CITYMOKansas CityMO
    20705SofiaLeesofia.lee@gmail.comSt. LouisMOSt. LouisMO
    21712SofiaThomassofiathomas1993@outlook.comSt. LouisMOSt. LouisMO
    22713JustinHayesjhayes11@gmail.comSt. LouisMOSt. LouisMO
    23718SofiaAndersonsofia.anderson@yahoo.comSt. LouisMOSt. LouisMO
    24740DeborahKellydeborahkelly1960@hotmail.comKansas CityMOKansas CityMO
    25768ChristinaWrightchristinawright1991@outlook.comKansas CityMOKansas CityMO
    26785PeterWallacepeterwallace1993@gmail.comKansas CityMOKansas CityMO
    27812JoyceRiverajoyce.rivera@yahoo.comSt. LouisMOSt. LouisMO
    28954MasonWallacemwallace75@outlook.comSt. LouisMOSt. LouisMO
    29960JoycePetersonjoyce.peterson@yahoo.comKansas CityMOKansas CityMO
    301004RebeccaKimrebecca.kim@gmail.comSt. LouisMOSt. LouisMO
    311055GaryCoxgary.cox@yahoo.comSt. LouisMOSt. LouisMO
    321060MariaWhitemwhite44@gmail.comSt. LouisMOSt. LouisMO
    331151StephenMitchellstephen.mitchell@gmail.comKansas CityMOKansas CityMO
    341234AnthonyMartinezanthony.martinez@aol.comSt. LouisMOSt. LouisMO
    351307NathanBrooksnbrooks94@gmail.comSt. LouisMO St. LouisMO
    361313WilliamBakerwbaker@bluecedarhomes.comSt. LouisMOSt. LouisMO
    371472RichardJimenezrjimenez73@gmail.comSt. Louis MOSt. LouisMO
    381544CalebBaileycbailey10@icloud.comKansas CityMOKansas CityMO
    391556MelissaMendozammendoza@evergreenproperties.comSt. LouisMOSt. LouisMO
    401563DebraJimenezdjimenez29@gmail.comKansas CityMOKansas CityMO
    411587OliviaSullivanolivia.sullivan@outlook.comKansas CityMOKansas CityMO
    421711BrookeRichardsonbrookerichardson1980@hotmail.comSt. LouisMOSt. LouisMO
    431761BrendaHarrisbharris64@icloud.comSt. LouisMOSt. LouisMO
    441894StephenLongstephen.long@gmail.comKansas CityMOKansas CityMO
    451951MichaelMendozammendoza84@outlook.comKansas CityMOKansas CityMO
    461994DennisLongdennislong1975@gmail.comSt. LouisMOSt. LouisMO
    472006EdwardRussell edwardrussell1996@gmail.comSt. LouisMOSt. LouisMO
    482012NoahBarnes nbarnes@parkrowhotels.comSt. LouisMOSt. LouisMO
    49
    50

    Cargando el editor…

      ResultadoPresiona Comprobar para comparar I2:J48

      Mote revisa tu resultado

      Presiona Comprobar. Cada celda correcta se vuelve una luciérnaga en tu linterna.

      Paso 3 · tu hoja

      Excel
      La hoja de este nivel
      ABCDEFGHIJKLMNO
      1customer_idfirst_namelast_nameemailcitystateclean_cityclean_stateemail_keycopiesproblemsRows with a problem
      221MargaretThompsonmthompson57@gmail.comKansas CityMOKansas CityMOmthompson57@gmail.com1
      338DianeCastillodiane.castillo@gmail.comSt. LouisMOSt. LouisMOdiane.castillo@gmail.com1
      472JamesBrownjamesbrown1972@aol.comKansas City MOKansas CityMOjamesbrown1972@aol.com1
      579ChristopherRobertschristopher.roberts@gmail.comSt. LouisMOSt. LouisMOchristopher.roberts@gmail.com1
      6185CynthiaWallacecwallace14@yahoo.comSt. LouisMOSt. LouisMOcwallace14@yahoo.com1
      7196WeiDiazweidiaz1993@gmail.comKansas CityMOKansas CityMOweidiaz1993@gmail.com1
      8209JeffreyGarciajeffrey.garcia@gmail.comKansas CityMOKansas CityMOjeffrey.garcia@gmail.com1
      9233AaliyahColemanacoleman@harlowstudio.comSt. LouisMOSt. LouisMOacoleman@harlowstudio.com1
      10267EdwardRusselledwardrussell1996@gmail.comSt. LouisMOSt. LouisMOedwardrussell1996@gmail.com2
      11356SamuelCruzscruz78@yahoo.comSt. LouisMOSt. LouisMOscruz78@yahoo.com1
      12380CarlosThompsoncarlos.thompson@gmail.comKansas CityMOKansas CityMOcarlos.thompson@gmail.com1
      13397AaronEdwardsaaronedwards1968@gmail.comSt. LouisMOSt. LouisMOaaronedwards1968@gmail.com1
      14455NoahBarnesnbarnes@parkrowhotels.comSt. LouisMOSt. LouisMOnbarnes@parkrowhotels.com2
      15499ThomasDavistdavis10@comcast.net Kansas CityMOKansas CityMOtdavis10@comcast.net1
      16573JoshuaRichardsonjoshua.richardson@gmail.comSt. LouisMOSt. LouisMOjoshua.richardson@gmail.com1
      17577ScottThomassthomas25@gmail.comKansas CityMOKansas CityMOsthomas25@gmail.com1
      18594AndrewAndersonandrewanderson2000@gmail.comKansas CityMOKansas CityMOandrewanderson2000@gmail.com1
      19622AmandaGomezamanda.gomez@yahoo.comKANSAS CITYMOKansas CityMOamanda.gomez@yahoo.com1
      20705SofiaLeesofia.lee@gmail.comSt. LouisMOSt. LouisMOsofia.lee@gmail.com1
      21712SofiaThomassofiathomas1993@outlook.comSt. LouisMOSt. LouisMOsofiathomas1993@outlook.com1
      22713JustinHayesjhayes11@gmail.comSt. LouisMOSt. LouisMOjhayes11@gmail.com1
      23718SofiaAndersonsofia.anderson@yahoo.comSt. LouisMOSt. LouisMOsofia.anderson@yahoo.com1
      24740DeborahKellydeborahkelly1960@hotmail.comKansas CityMOKansas CityMOdeborahkelly1960@hotmail.com1
      25768ChristinaWrightchristinawright1991@outlook.comKansas CityMOKansas CityMOchristinawright1991@outlook.com1
      26785PeterWallacepeterwallace1993@gmail.comKansas CityMOKansas CityMOpeterwallace1993@gmail.com1
      27812JoyceRiverajoyce.rivera@yahoo.comSt. LouisMOSt. LouisMOjoyce.rivera@yahoo.com1
      28954MasonWallacemwallace75@outlook.comSt. LouisMOSt. LouisMOmwallace75@outlook.com1
      29960JoycePetersonjoyce.peterson@yahoo.comKansas CityMOKansas CityMOjoyce.peterson@yahoo.com1
      301004RebeccaKimrebecca.kim@gmail.comSt. LouisMOSt. LouisMOrebecca.kim@gmail.com1
      311055GaryCoxgary.cox@yahoo.comSt. LouisMOSt. LouisMOgary.cox@yahoo.com1
      321060MariaWhitemwhite44@gmail.comSt. LouisMOSt. LouisMOmwhite44@gmail.com1
      331151StephenMitchellstephen.mitchell@gmail.comKansas CityMOKansas CityMOstephen.mitchell@gmail.com1
      341234AnthonyMartinezanthony.martinez@aol.comSt. LouisMOSt. LouisMOanthony.martinez@aol.com1
      351307NathanBrooksnbrooks94@gmail.comSt. LouisMO St. LouisMOnbrooks94@gmail.com1
      361313WilliamBakerwbaker@bluecedarhomes.comSt. LouisMOSt. LouisMOwbaker@bluecedarhomes.com1
      371472RichardJimenezrjimenez73@gmail.comSt. Louis MOSt. LouisMOrjimenez73@gmail.com1
      381544CalebBaileycbailey10@icloud.comKansas CityMOKansas CityMOcbailey10@icloud.com1
      391556MelissaMendozammendoza@evergreenproperties.comSt. LouisMOSt. LouisMOmmendoza@evergreenproperties.com1
      401563DebraJimenezdjimenez29@gmail.comKansas CityMOKansas CityMOdjimenez29@gmail.com1
      411587OliviaSullivanolivia.sullivan@outlook.comKansas CityMOKansas CityMOolivia.sullivan@outlook.com1
      421711BrookeRichardsonbrookerichardson1980@hotmail.comSt. LouisMOSt. LouisMObrookerichardson1980@hotmail.com1
      431761BrendaHarrisbharris64@icloud.comSt. LouisMOSt. LouisMObharris64@icloud.com1
      441894StephenLongstephen.long@gmail.comKansas CityMOKansas CityMOstephen.long@gmail.com1
      451951MichaelMendozammendoza84@outlook.comKansas CityMOKansas CityMOmmendoza84@outlook.com1
      461994DennisLongdennislong1975@gmail.comSt. LouisMOSt. LouisMOdennislong1975@gmail.com1
      472006EdwardRussell edwardrussell1996@gmail.comSt. LouisMOSt. LouisMOedwardrussell1996@gmail.com2
      482012NoahBarnes nbarnes@parkrowhotels.comSt. LouisMOSt. LouisMOnbarnes@parkrowhotels.com2
      49
      50

      Cargando el editor…

        ResultadoPresiona Comprobar para comparar K2:K48, N1

        Mote revisa tu resultado

        Presiona Comprobar. Cada celda correcta se vuelve una luciérnaga en tu linterna.

        La lección

        La copia limpia

        La petición de Angela es todo el capítulo en una hoja. La exportación contiene a los 47 clientes de Missouri, en A1:F48, exactamente como los tiene la tabla de clientes: una ciudad en mayúsculas, una ciudad con un espacio inicial, un estado con uno final y dos personas que tienen dos cuentas cada una. Añadirás columnas limpias junto a las originales y una columna problems que explica cada cambio, y luego contarás las filas que necesitaron alguno.

        Se aplica la regla del inicio del capítulo: las columnas originales no se tocan. Marketing recibe las columnas limpias; tú conservas el rastro.

        Paso 1: ciudad y estado

        G2   =PROPER(TRIM(E2))
        H2   =UPPER(TRIM(F2))

        Rellena ambas hacia abajo hasta la fila 48. Comprueba por muestreo las filas que la exportación tenía mal: E15 (' Kansas City') y E19 (KANSAS CITY) se convierten ambas en Kansas City; E37 ('St. Louis ') se convierte en St. Louis; F4 (' MO') y F35 ('MO ') se convierten en MO.

        Paso 2: la clave de correo y su conteo

        I2   =LOWER(TRIM(D2))
        J2   =COUNTIF($I$2:$I$48,I2)

        Aquí el conteo es un número, no TRUE/FALSE: un 2 le dice a marketing que hay dos cuentas detrás de una persona. Las filas 47 y 48 son las cuentas posteriores de Edward Russell (fila 10) y Noah Barnes (fila 14). Ambas se exportaron con un espacio inicial en el correo, que es exactamente el caso que se le escapa a un COUNTIF en bruto sobre la columna D.

        Paso 3: la columna de problemas

        Cada comprobación se convierte en un IF que devuelve una palabra o el texto vacío "":

        Pieza Devuelve una palabra cuando
        IF(EXACT(E2,G2),"","city") la ciudad limpia difiere de la original en cualquier carácter, mayúsculas incluidas
        IF(EXACT(F2,H2),"","state") lo mismo para el estado
        IF(J2>1,"duplicate","") la clave de correo aparece más de una vez

        TEXTJOIN(delimiter, ignore_empty, text1, text2, …) une sus piezas con el delimitador. Con TRUE como segundo argumento salta las vacías, así que nunca obtienes ", , duplicate":

        K2   =TEXTJOIN(", ",TRUE,IF(EXACT(E2,G2),"","city"),IF(EXACT(F2,H2),"","state"),IF(J2>1,"duplicate",""))

        Luego cuenta las filas que tienen cualquier problema:

        N1   =COUNTIF(K2:K48,"?*")

        El criterio "?*" es un patrón con comodines: ? es exactamente un carácter y * cualquier cantidad de ellos, así que coincide con cualquier texto de al menos un carácter y deja fuera los resultados vacíos. Devuelve 9. TEXTJOIN existe en Excel 2019 y posteriores, Microsoft 365 y Google Sheets. En Excel más antiguo, une las piezas con & y envuelve el resultado en TRIM.

        Pensar como un analista

        Nueve de 47 filas tenían algo mal, y la columna de problemas le dice a marketing cuáles y por qué. Eso hace fácil responder la siguiente pregunta: ¿qué copia de Edward Russell recibe la invitación? Es una decisión de negocio (conservar la cuenta con pedidos, aquí la original, filas 10 y 14), y la hoja la hace visible en lugar de tomarla en silencio.

        Antes de enviar cualquier lista limpia, comprueba tres cosas:

        • ningún valor limpio empieza o termina con un espacio: =COUNTIF(G2:G48," *") y =COUNTIF(G2:G48,"* ") deben devolver 0;
        • las filas duplicadas vienen en pares (aquí 4, un número par);
        • el conteo de N1 coincide con lo que esperas de los datos en bruto, para que la fórmula no haya marcado todo ni nada.

        Errores comunes

        • Contar duplicados sobre la columna D en bruto: en esta exportación no encuentra ningún duplicado.
        • Comparar con <> en el paso 3: KANSAS CITY no se marcaría, porque <> ignora las mayúsculas.
        • TEXTJOIN con FALSE como segundo argumento: las piezas vacías se quedan y el resultado se lee , , duplicate.
        • Un rango de COUNTIF sin fijar en el paso 2: las filas cercanas al final dejan de encontrar a sus pares.

        Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.