La solicitud

De Andrew Ramos, Gerente de marketing
Tu objetivo
En D2:D41, construye el código de seguimiento: las 3 primeras letras de la categoría en minúsculas, un guion y luego el product_id. En E2:E41, construye el slug: el nombre en minúsculas con cada espacio reemplazado por un guion. En F2:F41, devuelve "yes" cuando el nombre contenga la palabra clave de I1 como palabra completa, y en caso contrario "no" (usa IF, ISNUMBER y SEARCH).
- Llena
D2:F41con los valores correctospendiente - Con fórmulas, no con números escritospendiente
- Usa
LOWERSUBSTITUTESEARCHISNUMBERpendiente
Tu hoja
| A | B | C | D | E | F | G | H | I | J | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | product_id | name | category | code | slug | has_keyword | Keyword | oak | ||
| 2 | 161 | Cove Jute Duvet Cover | Textiles | |||||||
| 3 | 162 | Oakley Jute Knit Throw | Textiles | |||||||
| 4 | 163 | Pine Cotton Area Rug | Textiles | |||||||
| 5 | 164 | Cove Wool Lumbar Pillow | Textiles | |||||||
| 6 | 165 | Weston Cashmere-Blend Quilt | Textiles | |||||||
| 7 | 166 | Harbor Wool Knit Throw | Textiles | |||||||
| 8 | 167 | Elm Cashmere-Blend Area Rug | Textiles | |||||||
| 9 | 168 | Upland Percale Lumbar Pillow | Textiles | |||||||
| 10 | 169 | Spruce Wool Duvet Cover | Textiles | |||||||
| 11 | 170 | Rowan Cashmere-Blend Throw Blanket | Textiles | |||||||
| 12 | 171 | Driftwood Percale Area Rug | Textiles | |||||||
| 13 | 172 | Maple Wool Throw Pillow | Textiles | |||||||
| 14 | 173 | Bramble Percale Quilt | Textiles | |||||||
| 15 | 174 | Vale Cashmere-Blend Knit Throw | Textiles | |||||||
| 16 | 175 | Glen Cotton Runner Rug | Textiles | |||||||
| 17 | 176 | Fairhaven Cotton Throw Pillow | Textiles | |||||||
| 18 | 177 | Delancey Cashmere-Blend Duvet Cover | Textiles | |||||||
| 19 | 178 | Sutton Wool Knit Throw | Textiles | |||||||
| 20 | 179 | Delancey Jute Area Rug | Textiles | |||||||
| 21 | 180 | Hazel Linen Throw Pillow | Textiles | |||||||
| 22 | 181 | Cedar Marble Bud Vase | Decor | |||||||
| 23 | 182 | Nantucket Brass Wall Mirror | Decor | |||||||
| 24 | 183 | Glen Glass Canvas Print | Decor | |||||||
| 25 | 184 | Thatcher Oak Candle | Decor | |||||||
| 26 | 185 | Ridge Brass Bud Vase | Decor | |||||||
| 27 | 186 | Birch Brass Floor Mirror | Decor | |||||||
| 28 | 187 | Ashford Oak Canvas Print | Decor | |||||||
| 29 | 188 | Fern Oak Candle Holder Set | Decor | |||||||
| 30 | 189 | Northfield Brass Bud Vase | Decor | |||||||
| 31 | 190 | Elm Brass Floor Mirror | Decor | |||||||
| 32 | 191 | Hazel Ceramic Canvas Print | Decor | |||||||
| 33 | 192 | Thatcher Marble Candle Holder Set | Decor | |||||||
| 34 | 193 | Delancey Brass Vase | Decor | |||||||
| 35 | 194 | Chester Brass Wall Mirror | Decor | |||||||
| 36 | 195 | Fairhaven Soy Wax Framed Print | Decor | |||||||
| 37 | 196 | Pine Glass Candle Holder Set | Decor | |||||||
| 38 | 197 | Ridge Soy Wax Vase | Decor | |||||||
| 39 | 198 | Harbor Oak Floor Mirror | Decor | |||||||
| 40 | 199 | Oakley Brass Framed Print | Decor | |||||||
| 41 | 200 | Cedar Ceramic Candle | Decor | |||||||
| 42 | ||||||||||
| 43 |
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Comprobar. Cada celda correcta se vuelve una luciérnaga en tu linterna.
Lo que recibe Andrew, y por qué
La lección
El ticket de Andrew son tres columnas, cada una construida con texto que ya está en la hoja. El truco en las tres no es una función nueva sino funciones dentro de funciones. Excel evalúa primero la más interna y entrega su respuesta hacia fuera, lo que te permite hacer en una celda lo que de otro modo llevaría dos o tres columnas auxiliares.
Un código a partir de parte de una columna
La categoría de C2 es Textiles. Andrew quiere tex-161:
D2 =LOWER(LEFT(C2,3))&"-"&A2
Léela desde dentro: LEFT(C2,3) es Tex, LOWER lo convierte en tex, y luego & añade un guion y el product_id. Estandarizar las mayúsculas es el sentido de LOWER aquí: si una exportación dice TEXTILES y otra Textiles, las dos siguen dando tex, y los códigos que deben coincidir coinciden. Los productos de Decor reciben dec-181 y así sucesivamente.
Un slug con SUBSTITUTE
SUBSTITUTE(text, old, new) reemplaza cada aparición de old por new:
E2 =LOWER(SUBSTITUTE(B2," ","-"))
Cove Jute Duvet Cover se convierte en cove-jute-duvet-cover. La fila 6, Weston Cashmere-Blend Quilt, ya tiene un guion; se queda, y el slug es weston-cashmere-blend-quilt. SUBSTITUTE acepta un cuarto argumento opcional para reemplazar solo una aparición: SUBSTITUTE(B2," ","-",1) cambia solo el primer espacio.
El mismo anidado limpia texto libre como comentarios de reseñas. =TRIM(LOWER(review)) pasa el texto a minúsculas, quita los espacios de ambos extremos y reduce a uno las series de espacios internos, y envolver eso en SUBSTITUTE(…,"!!","!") corrige una costumbre para la que Excel no tiene función. El capítulo 5 trata por completo de esa clase de limpieza.
¿El nombre contiene una palabra?
SEARCH(find, within) devuelve la posición donde empieza find, o #VALUE! cuando no está. ISNUMBER lo convierte en TRUE o FALSE, e IF en las palabras que quieres:
=IF(ISNUMBER(SEARCH($I$1,B2)),"yes","no")
Funciona en la fila 25, Thatcher Oak Candle. Ahora mira la fila 3: B3 es Oakley Jute Knit Throw, y oak está dentro de Oakley, así que la fórmula dice “yes” para una manta de yute. Lo mismo pasa en la fila 40, Oakley Brass Framed Print.
La solución es buscar la palabra con un espacio a cada lado, dentro del nombre con un espacio añadido en cada extremo, para que una palabra al principio o al final del nombre siga teniendo espacios alrededor:
F2 =IF(ISNUMBER(SEARCH(" "&$I$1&" "," "&B2&" ")),"yes","no")
Ahora " oak " se encuentra en " Thatcher Oak Candle " pero no en " Oakley Jute Knit Throw ". Rellenada hacia abajo, 4 de los 40 productos reciben “yes”. Cambia I1 a brass y la columna lo sigue: 8 productos.
FIND o SEARCH
FIND |
SEARCH |
|
|---|---|---|
| Mayúsculas y minúsculas | deben coincidir: FIND("oak","Oak") es #VALUE! |
se ignoran |
Comodines * y ? |
no | sí |
Los nombres dicen Oak y la celda de la palabra clave dice oak, así que SEARCH es la correcta. Usa FIND cuando las mayúsculas importen, por ejemplo para distinguir el código ABC de abc.
Errores comunes
- Sin ISNUMBER.
=IF(SEARCH(…),"yes","no")devuelve#VALUE!en cada fila sin la palabra, porque el error atraviesaIF. - Palabras parciales.
oakcoincide conOakley, yelmcoincidiría conHelmsley. Rellena con espacios cuando te refieras a una palabra completa. - LOWER en la pieza equivocada.
=LEFT(LOWER(C2),3)también funciona, pero=LOWER(LEFT(C2),3)tiene el 3 en la función equivocada: cuenta los paréntesis. - Teclear la palabra clave dentro de la fórmula. Déjala en
I1y fíjala, así la próxima campaña queda a una celda de distancia.
¡Linterna encendida!
Practicaste: nested functionslowersubstitutesearchisnumberif
- Resuelto
- Sin pistas
- Al primer intento
