Cuando usa la combinación de correspondencia de Word para generar cartas, sobres o etiquetas, el campo Bloque de direcciones inserta un nombre y una dirección con formato de su origen de datos. Pero a veces necesita que el Bloque de direcciones muestre información diferente según un valor de sus datos, como mostrar el nombre de una empresa para contactos comerciales y un nombre personal para contactos individuales. Word no permite colocar un campo IF directamente dentro de un campo Bloque de direcciones. Este artículo explica cómo solucionar esa limitación insertando condicionales IF/ELSE alrededor del campo Bloque de direcciones o en su lugar, usando el sistema de códigos de campo de Word. Aprenderá la sintaxis exacta y los pasos para crear contenido de dirección condicional que cambia según cualquier campo de su origen de datos.
Puntos clave: Uso de condicionales IF/ELSE con el bloque de direcciones en la combinación de correspondencia
- Alt+F9 para alternar los códigos de campo: Muestra el código de campo subyacente del Bloque de direcciones para que pueda editarlo o reemplazarlo con un campo IF condicional.
- Ctrl+F9 para insertar un nuevo campo: Crea un par de llaves donde puede escribir manualmente el código de campo IF.
- Nombres de campos combinados de su origen de datos: Deben coincidir exactamente con los encabezados de columna para que la condición IF se evalúe correctamente.
- Códigos de campo anidados para condiciones complejas: Puede combinar varios campos IF o usar el campo Bloque de direcciones como uno de los resultados verdadero/falso.
Cómo funciona el campo Bloque de direcciones y por qué IF/ELSE no puede ir dentro de él
El campo Bloque de direcciones en la combinación de correspondencia de Word es un único código de campo que extrae datos de los campos asignados en su origen de datos. Cuando inserta un Bloque de direcciones, Word crea un código de campo similar a este:
{ ADDRESSBLOCK \c "en-US" }
Este código de campo le indica a Word que genere un bloque con formato usando el nombre del destinatario, la dirección, la ciudad, el estado y el código postal. No puede insertar un campo IF dentro de las llaves del propio campo ADDRESSBLOCK. Si lo intenta, Word ignora la sintaxis IF o produce un error.
La solución es reemplazar por completo el Bloque de direcciones con un campo IF que contenga los componentes de dirección que necesita. Como alternativa, puede conservar el Bloque de direcciones y envolverlo dentro de un campo IF para que solo aparezca cuando una condición sea verdadera. La sintaxis del campo IF en Word sigue esta estructura:
{ IF [field name] [operator] [value] [true text] [false text] }
El nombre del campo debe coincidir con un encabezado de columna en su origen de datos. El operador puede ser =, <>, >, <, >= o <=. El texto verdadero y el texto falso pueden incluir texto sin formato, otros campos combinados o incluso un campo ADDRESSBLOCK anidado.
Pasos para insertar un condicional IF/ELSE que reemplace el bloque de direcciones
Estos pasos suponen que ya ha conectado su documento principal a un origen de datos e insertado un Bloque de direcciones. Reemplazará ese Bloque de direcciones con un campo IF condicional que muestra contenido de dirección diferente según el valor de un campo.
- Muestre el código de campo del Bloque de direcciones existente
Presione Alt+F9 para alternar la visualización de los códigos de campo. El código de campo del Bloque de direcciones aparece entre llaves. Seleccione todo el campo, incluidas las llaves, y luego presione Suprimir para eliminarlo. Presione Alt+F9 de nuevo para volver a la vista normal. - Inserte un nuevo campo IF
Presione Ctrl+F9 para insertar un par de llaves de campo vacías. El cursor estará dentro de las llaves. Escriba el siguiente código de campo, reemplazando los marcadores de posición con los nombres y valores reales de sus campos de datos:IF [FieldName] = "[Value]" "[TrueText]" "[FalseText]"
Por ejemplo, si su origen de datos tiene una columna llamada “ContactType” y desea mostrar “Company Name” cuando ContactType sea igual a “Business” y “First Name Last Name” cuando ContactType sea cualquier otra cosa, escriba:IF ContactType = "Business" "{ MERGEFIELD Company }" "{ MERGEFIELD FirstName } { MERGEFIELD LastName }" - Agregue el resto de los campos de dirección
Después del campo IF, presione Entrar e inserte los campos combinados de dirección restantes, como Street, City, State y ZIP. Puede insertar cada campo combinado presionando Ctrl+F9 y escribiendoMERGEFIELD [FieldName]o usando el botón Insertar campo combinado en la pestaña Correspondencia. El resultado final debería verse así:{ IF ContactType = "Business" "{ MERGEFIELD Company }" "{ MERGEFIELD FirstName } { MERGEFIELD LastName }" }{ MERGEFIELD Street }{ MERGEFIELD City }, { MERGEFIELD State } { MERGEFIELD ZIP } - Pruebe la combinación condicional
En la pestaña Correspondencia, haga clic en Vista previa de resultados. Use los botones de flecha para recorrer los registros. Verifique que la condición IF muestre el nombre correcto para cada tipo de contacto. Si la condición no se evalúa como se espera, compruebe que el nombre del campo en la instrucción IF coincida exactamente con el encabezado de columna, incluidas mayúsculas y espacios.
Pasos para envolver un bloque de direcciones existente dentro de un campo IF
Si desea conservar el formato del Bloque de direcciones pero mostrarlo solo cuando una condición sea verdadera, envuelva el Bloque de direcciones dentro de un campo IF. Esto es útil cuando desea suprimir la dirección para ciertos registros, como cuando un campo “DoNotMail” está establecido en Yes.
- Inserte el Bloque de direcciones como de costumbre
En la pestaña Correspondencia, haga clic en Bloque de direcciones y configure los campos según sea necesario. Haga clic en Aceptar para insertarlo. - Corte el Bloque de direcciones al portapapeles
Seleccione el campo Bloque de direcciones (incluidos los corchetes si los códigos de campo están visibles) y presione Ctrl+X. - Inserte un campo IF y pegue el Bloque de direcciones dentro
Presione Ctrl+F9 para crear llaves de campo vacías. Escriba la condición IF, pero deje el texto verdadero vacío. Presione Ctrl+V para pegar el Bloque de direcciones en la posición del texto falso. Por ejemplo, para ocultar la dirección cuando DoNotMail sea igual a Yes, escriba:IF DoNotMail = "Yes" "" "{ ADDRESSBLOCK \c "en-US" }"
Presione F9 para actualizar el campo, luego presione Alt+F9 para volver a la vista normal. - Obtenga una vista previa de los resultados
Haga clic en Vista previa de resultados en la pestaña Correspondencia. Los registros con DoNotMail establecido en Yes muestran una línea en blanco donde aparecería la dirección. Los registros con cualquier otro valor muestran el Bloque de direcciones completo.
Errores comunes y limitaciones al usar IF/ELSE con el bloque de direcciones
El campo IF no muestra nada o muestra el texto incorrecto
La causa más común es una discrepancia entre el nombre del campo en la instrucción IF y el encabezado de columna en el origen de datos. Los nombres de campo distinguen mayúsculas de minúsculas y deben incluir los espacios exactamente como aparecen. Abra su origen de datos en Excel y verifique el texto exacto del encabezado de columna. Además, asegúrese de que el valor en la condición IF esté entre comillas dobles rectas, no comillas tipográficas.
Word muestra el código de campo en lugar de la dirección
Esto sucede cuando los códigos de campo están activados. Presione
Alt+F9 para ocultar los códigos de campo y mostrar el resultado combinado. Si el problema persiste, seleccione todo el documento y presione F9 para actualizar todos los campos.
El campo IF solo funciona para comparaciones de texto, no para números o fechas
Los campos IF de Word comparan valores de texto. Si su campo contiene números o fechas, Word los convierte a texto antes de la comparación. Para campos numéricos, use el operador = con el número como texto, por ejemplo
. Para fechas, use la fecha como texto en el mismo formato que su origen de datos, por ejemplo IF Age = "25". Word no admite aritmética de fechas dentro de campos IF.IF StartDate = "1/1/2025"
Los campos IF anidados se vuelven ilegibles
Puede anidar campos IF colocando un campo IF dentro del texto verdadero o falso de otro. Sin embargo, cada campo anidado requiere su propio conjunto de llaves Ctrl+F9. Para lógica compleja, considere usar un campo calculado en su origen de datos (como una fórmula de Excel) en lugar de anidar varios campos IF en Word.
Condicional IF/ELSE vs Bloque de direcciones: diferencias clave
| Elemento | Campo condicional IF/ELSE | Campo Bloque de direcciones |
|---|---|---|
| Definición | Un código de campo que muestra una de dos cadenas de texto según una condición | Un campo preformateado que combina campos de nombre, empresa y dirección de su origen de datos |
| Personalización | Usted controla cada carácter del resultado | Word controla el formato según su configuración regional y la asignación de campos |
| Lógica condicional | Lógica IF/ELSE integrada | Sin lógica condicional; siempre muestra los campos asignados |
| Complejidad del código de campo | Requiere escribir manualmente los nombres y valores de los campos | Se inserta automáticamente con un cuadro de diálogo |
| Mejor caso de uso | Cuando necesita contenido de dirección diferente según un campo de datos | Cuando todos los registros usan el mismo formato de dirección con los mismos campos |
Use un condicional IF/ELSE cuando sus datos contengan un campo que determine qué componentes de la dirección mostrar. Use el Bloque de direcciones cuando cada registro tenga el mismo conjunto de campos de dirección y desee que Word maneje automáticamente el espaciado y la puntuación.
Ahora puede crear documentos de combinación de correspondencia que muestren contenido de dirección diferente según cualquier campo de su origen de datos. Comience identificando el campo que actuará como condición. Escriba el código de campo IF con el nombre de campo y el valor exactos. Pruebe con Vista previa de resultados para confirmar el resultado. Para escenarios avanzados, intente anidar un segundo campo IF dentro del texto verdadero o falso para manejar una tercera condición, o use el Bloque de direcciones como texto falso para recurrir a una dirección con formato predeterminada.