lunes, febrero 06, 2012

Formato condicional numérico

Josep me consulta cómo cambiar el formato numérico de una celda en función del valor de otra celda (celda de control). La idea es que si en la celda de control aparece el símbolo del Euro (€) el número de la celda formada condicionalmente reciba el forma “moneda-Euro”; si en la celda de control aparece el símbolo del dólar ($), el formato del número cambiará de acuerdo.

Microsoft introdujo en Excel 2007 (y en Excel 2010) la posibilidad de dar formato condicional numérico. Con las nuevas versiones de Excel podemos podemos hacer esto:



y si cambiamos el símbolo, veremos esto



En la celda B2 usamos Validación de Datos con la opción Lista



En E2 definimos dos reglas para el formato condicional



En las versiones de Excel Clásico (97-2003) no tenemos la posibilidad de definir el formato numérico con Formato Condicional. Así que tendremos que echar mano al Vba (macros). Lo que haremos es programar un evento en la hoja relevante

Private Sub Worksheet_Change(ByVal Target As Range)

    If Union(Target, Range("B2")).Address = Range("B2").Address Then
        If Range("B2") = "€" Then Range("E2").NumberFormat = "[$€-2] #,##0.00"
        If Range("B2") = "$" Then Range("E2").NumberFormat = "[$$-409]#,##0.00"
    End If
  
End Sub


¿Cómo saber qúe código de formato usar (por ejemplo "[$€-2] #,##0.00" para el Euro)? Formamos una celda con el formato deseado; abrimos el menú de formato de celdas y en Número elegimos la opción Personalizado. En la ventanilla Tipo veremos la sintaxis del formato


4 comentarios:

  1. Y en excel 2007-2010 como lo hariamos?

    ResponderBorrar
  2. Tal como está explicado en la primer parte de la nota. Fijate en las definiciones del formato condicional que se muestran en la cuarta imagen.

    ResponderBorrar
  3. Jose riu - Joseriu@hotmail.com16 mayo, 2012 17:11

    buenos dias Jorge.
    Quisiera consultarte si es posible obtener el colorindex de una celda con formato condicional; de modo de determinar en base al color, que condicion esta cumpliendo.
    desde ya muchas gracias.

    ResponderBorrar
  4. Efectivamente, Excel no reconoce el color de una celda si éste es dado con formato condicional. La forma de hacerlo es usando una función definida por el usuario (UDF).
    Te sugiero leer esta nota de Chip Pearson sobre el tema.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.