¿Cómo usar la función contar.si, dentro de una macro?

Al trabajar con formulas dentro de Excel, la siguiente expresión me funciona bien (por ejemplo):
=contar.si(A1:A10,A1:A10)
Pero al tratar de usarla en una macro no funciona, ya intente varias opciones y nada, esta es la línea que uso para tratar de calcular:
WorksheetFunction. CountIf(Selection, Selection)
Donde Selection es A1:A10, otra cosa que he intentado pero tampoco funciona es la siguiente linea:
WorksheetFunction. CountIf(Range(“A1:A10”), Range(“A1:A10”))

1 Respuesta

Respuesta
6

Pero esta función

=contar.si(A1:A10,A1:A10)

El resultado es 0

Puedes revisar la función que tienes en excel,

El segundo parámetro, el criterio, no debe ser un rango, puede ser un valor numérico o texto o un valor que está en una sola celda, pero no un rango.

En VBa la sintaxis sería:

contar = Application.CountIf(Range("A1:A10"), "C")

En la variable contar te dice cuántas letras "C" hay en el rango de A1 a A10

Hola Dam, gracias por la pronta respuesta, efectivamente el resultado es 0 y en realidad es una parte de la formula que necesito; en general quiero saber el número de datos NO repetidos en una lista y la función que me da ese resultado es la siguiente:

=SUMAPRODUCTO(1/CONTAR.SI(A1:A10,A1:A10))

No necesito buscar algún número o cadena, sino al final saber el numero de datos únicos en una lista dada.

Por otro lado he resuelto el problema, aunque no se si sea lo mas conveniente (en realidad me parece que lo hice a fuerza bruta), te pongo el código que generé para ver que opinas y si crees que se pueda mejorar.

Range("K8") = "=(SumProduct(1/Countif(A1:A" & a - 1 & ",A1:A" & a - 1 & ")))"

Donde :

Range("K8") es la celda que guarda el calculo

a-1 hace el calculo para llegar (en el ejemplo que he puesto) a 10 y de tal forma representar la celda A10


La verdad no tengo mucha experiencia en macros pero hago el intento, y como lo comento en líneas anteriores, me parece que se pude optimizar con algún mejor código.

Saludos, espero comentarios. Pedro

SI esa fórmula te funciona, adelante, la veo bien.

Realiza tus pruebas con datos repetidos y con datos únicos, y revisa que la fórmula te funcione bien para ambos casos.

Saludos. Dam

En virtud de que se ha solucionado el problema, finalizo la pregunta.

Gracias por los comentarios y espero que a alguien le pueda servir la info.

Saludos.Pedro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas