Hola! No sé si te he entendido bien, pero creo que lo que dices es que si tienes tres celdas pongamos A1, B1, C1 si en la primera celda hay una X en la celda D1 te escriba 33%, si en la primera y la segunda hay una X, en la celda D1 te escriba 66% y si en las tres hay una X en la celda D4 te escriba 100%.
Creo que esto lo puedes resolver simplemente usando la función SI que trae incorporada excel (IF en las versiones en inglés), sin necesidad de usar macros.
Esta es la sintaxis general de la función:
=SI(condición lógica; “Valor verdadero”; “Valor falso”)
Piensa en el siguiente ejemplo: En una hoja donde se reflejan las notas de unos alumnos, en donde quieres saber si el resultado de cada alumno es aprobado o suspenso.
Con la función lógica SI, puedes escribir una fórmula en la que indiques los siguiente: si la nota es menor de 5 te devuelva el valor Suspenso, y en caso contrario Aprobado.
La función que necesitas es:
=SI(A1< 5;" Suspenso ";" Aprobado ")
En tu ejemplo puedes saber si A1 tiene X así:
=SI(A1="X";"A1 TIENE X"; "A1 NO TIENE X")
Para crear condiciones se utilizan los símbolos relacionales de igualdad y comparación: =, <, >, <=, >=, <> (distinto de).
Si en una función queremos comparar o escribir texto, debe estar escrito entre "comillas". Para escribir un blanco escribe "".
Puedes expresar condiciones usando la función Y. Por ejemplo:
=SI(Y(A2="X";B2="X"); "A1 TIENE X Y A2 TAMBIEN"; "B1 O B2 NO TIENE X")
De la misma manera que puedes crear condiciones Y (and) también puedes crear condiciones O (or), por ejemplo:
=SI(O(A2="X";B2="X"); "A1 TIENE X O A2 TIENE X"; "A1 Y A2 NO TIENE X")
Ten en cuenta que en inglés en lugar de Y será AND, en lugar de O será OR, en lugar de SI será IF, etc.
De esta manera creo que puedes resolver lo que planteas
Saludos!