¿Cómo marcar todas las filas de una columna que contienen caracteres especiales pero permiten comas en Excel?

¿Cómo marcar todas las filas de una columna que contienen caracteres especiales pero permiten comas en Excel?

IEncontré una publicación antigua en Superusuario.donde el usuario intentaba marcar todas las filas de la columna A que contenían caracteres especiales. Una de las respuestas incluía una solución de formato condicional:

=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>45))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>90)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>95))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>122)*1)

Esta fórmula verifica cada carácter de cada nombre de archivo y determina si su código ASCII está fuera de los valores de caracteres permitidos. Los caracteres permitidos incluyen (AZ, az, 0-9, guiones bajos y guiones).

mi necesidad escasiexactamente lo mismo, excepto que también necesito permitir comas y no tengo el talento suficiente para descubrir cómo modificar el código para permitirlas. ¿Hay alguien que pueda ayudar?

Respuesta1

EDITAR: Regresé y leí el comentario original. Estas fórmulas deberían funcionar.

=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>45)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>44))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>90)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>95))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>122)*1)

Agregué este bit en las fórmulas anteriores:

(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>44)

44es el equivalente ASCII de un comma. Entonces, esta parte se encargará del comma.


Veo que cambiaste tu pregunta. ¿Puede proporcionar algunos valores de muestra para A1?

No entiendo bien la fórmula que proporcionaste; ROW(INDIRECT("1:"&LEN(A1)))siempre será 1; así que no sé cuál es el punto de llamarlo.


Simplemente cambie esta línea del otro enlace:

RegEx.Pattern = "[^A-Za-z0-9_-]"

A esto:

RegEx.Pattern = "[^A-Za-z0-9_\-,]"

información relacionada