Contando cuántas veces existen múltiples cadenas de texto diferentes en una celda

3

He estado luchando para contar cuántas veces aparecen múltiples cadenas de texto diferentes en una celda.

En columna A, Tengo una cadena de texto con varios tipos de archivos, y estoy tratando de contar cuántos de cada tipo de archivo aparecen en esa cadena.

¿Alguna fórmula cuenta la cantidad de veces que se produce una cadena de texto en una sola celda?


Resultado Esperado

enter image description here

NBG
fuente
1
¡Bienvenido a superusuario! Aparentemente tienes dos cuentas de superusuario: NBG y NBSG SG . Esto interferirá con los comentarios, la edición de sus propias publicaciones y la aceptación de una respuesta. Por favor, tómese el tiempo para utilizar Este tutorial del Centro de ayuda y pídale al personal de Stack Exchange que fusione sus cuentas.
robinCTS

Respuestas:

2

¿Alguna fórmula cuenta la cantidad de veces que se produce una cadena de texto en una sola celda?

No directamente, pero puedes calcularlo:

=(LEN(A1) - LEN(SUBSTITUTE(A1,"doc",""))) / LEN("doc")


Actualizar

Cambiar la fórmula para buscar palabras completas solo lo haría muy complicado con las fórmulas estándar de Excel.

Aquí lo uso gratis Regex Buscar / Reemplazar complemento

Con eso puedes usar esta fórmula:

=(LEN(A1)-LEN(RegExReplace(A1,"(\W?)doc(?!\w)","$1")))/LEN("doc")

Cómo funciona:

  • (?!\w) es un lookahead negativo, considera solo doc cuando no le sigue esa letra
  • (\W?) - como este complemento no es compatible con la visualización, aquí utilizo una construcción de grupo, buscando una letra que no sea letra antes doc

(Nota: me gusta ese complemento y no estoy afiliado a él de ninguna manera)

Máté Juhász
fuente
No tengo la puntuación de reputación suficiente para responder @ Máté Juhász. De acuerdo con su respuesta, la fórmula también calculará la palabra "documento". Si pego la fórmula = (LEN (A2) - LEN (SUSTITUYE (A2, "doc", ""))) / LEN ("doc") Por lo tanto, la columna B mostrará el resultado. 2 en lugar de 1 . Gracias por su comentario, pero no es una buena fórmula para resolver mi pregunta.
NBSG SG
@NBSGSG por favor vea mi actualización
Máté Juhász
1

Para su situación específica, una solución de fórmula es relativamente simple.

Ingrese la siguiente fórmula en B2 y ctrl-enter / copy-paste / fill-down / auto-fill en el resto de la columna de la tabla:

=(LEN($A2&",")-LEN(SUBSTITUTE($A2&",","/doc,","")))/LEN("/doc,")

Repita esta fórmula para las otras columnas, cambiando la doc al tipo de archivo de la columna. Sin embargo, para el no. of text columna, necesitas usar plain En vez de text.

Explicación:

Agregando una coma al final de la cadena en la columna A garantiza que la subcadena que estamos buscando siempre se delimita con una / prefijo y un , sufijo.

La cuenta de las ocurrencias de la subcadena es, entonces, simplemente la diferencia entre la longitud de la cadena completa y la cadena completa con las subcadenas delimitadas eliminadas, dividida por la longitud de la subcadena delimitada.



También se puede construir una fórmula un poco más complicada que extraiga el tipo de archivo que se va a contar desde el encabezado mismo, por lo que solo se requiere una única fórmula para toda la tabla:

Worksheet Screenshot

Ingrese la siguiente fórmula en B2 y ctrl-enter / copy-paste / fill-down & amp; right / auto-fill en el resto de la tabla:

=(LEN($A2)+1-LEN(SUBSTITUTE($A2&",","/"&MID(B$1,8,LEN(B$1))&",","")))/(LEN(MID(B$1,8,LEN(B$1)))+2)

Tenga en cuenta que el encabezado de la columna H tiene que ser cambiado a no. of plain para que esta fórmula funcione según sus requerimientos.

Explicación:

Esta fórmula funciona esencialmente de la misma manera que la anterior.

La única diferencia importante es que, en lugar de codificar el tipo de archivo, MID(B$1,8,LEN(B$1)) Se utiliza para extraerlo del encabezado. Esto es esencialmente el equivalente a un solo argumento de dos MID() función que extrae la subcadena desde el octavo carácter hasta el final de la cadena. ( LEN(B$1) se utiliza en lugar de un número arbitrariamente grande, ya que da como resultado la solución "más limpia" sin posibilidad de error.)

La otra pequeña diferencia en esta fórmula es una ligera simplificación lograda al codificar las longitudes de los delimitadores.

robinCTS
fuente