Página 1 de 1

Contar bajo condicion de longitud

Publicado: Mar Oct 05, 2021 9:23 pm
por arivas_2005
Saludos.
Habrá forma de usar una función para contar cadenas que tienen longitud fija o longitud menor (o mayor, etc) que un limite ?
googleando no logro ubicar una forma de hacer conteos con la contar.si, (que yo supongo se podría usar) por la supuesta condición de la longitud de cadena.
Gracias

Re: Contar bajo condicion de longitud

Publicado: Mié Oct 06, 2021 12:55 pm
por Neftali R
No termino de entender tu pregunta, contar cadenas que tienen longitud fija o longitud menor que...

Creo que no hay una función así pero puedes hacer tú una para que haga eso.

Podrías trabajar con matrices para eso, podrías hacer una función que pida 2 elementos de entrada, una matriz con las cadenas a comprobar y la condición.

Te hago un ejemplo simple.

Código: Seleccionar todo

Function ejemplo (mMatriz(), sCondicion As String) As Integer
Dim c, tmp, resultado As Integer
	If Left(sCondicion,1) = "=" Then
	tmp = CInt(Right(sCondicion,Len(sCondicion)-1)
		For c = 0 To UBound(mMatriz)
			If Len(mMatriz(c)) = tmp Then
			resultado = resultado + 1
			End If
		Next
	ElseIf Left(sCondicion,2) = "<=" Then
	tmp = CInt(Right(sCondicion,Len(sCondicion)-2)
		For c = 0 To UBound(mMatriz)
			If Len(mMatriz(c)) <= tmp Then
			resultado = resultado + 1
			End If
		Next
	End If
ejemplo = resultado
End Function
O puedes hacer una función diferemte por cada operador de comparación.

Una entrada válida para esa función podría ser.

Código: Seleccionar todo

ejemplo (Array("Comida","Maiz","Hambre","Alimento","Etc"),"=6")
Y eso daría como resultado 2.

Si esto no resuelve tu problema, por favor danos una descripción más detallada de lo que necesitas.

Re: Contar bajo condicion de longitud

Publicado: Mié Oct 06, 2021 3:07 pm
por FJCC-ES
Se puede hacer sin una macro con la función SUMAPRODUCTO.

Re: Contar bajo condicion de longitud[RESUELTO]

Publicado: Mié Oct 06, 2021 4:51 pm
por arivas_2005
Gracias:
Neftali R
FJCC-ES
por su apoyo.
con el ejemplo de SUMAPRODUCTO resuelvo mi pregunta.