¿Cómo contaría el número de coincidencias entre una lista separada por comas y una columna de referencia en Excel?

¿Cómo contaría el número de coincidencias entre una lista separada por comas y una columna de referencia en Excel?

Tengo un conjunto de números separados por comas. Cada conjunto representa una serie de números únicos que se relacionan con un proyecto. ¿Cómo puedo escribir una fórmula para buscar en una hoja de referencia cualquier número de elementos de la lista y devolver un valor codificado?

Incluiré ejemplos (anónimos) a continuación para cada hoja (tablas 1-5) y el resultado previsto/esperado. Me imagino que tiene algo que ver con SUMA, FRECUENCIA, ÍNDICE o alguna otra fórmula matricial, pero no puedo entenderlo. puedes ver mi preguntaaquítambién, pero tiene prácticamente la misma información.

He usado "PAGculo" "Ftodo" y "METROissing" pero todo funciona.

Lógica:

La fórmula debe realizar los siguientes pasos.

  1. Extraiga la lista de números de cada celda en la columna C detabla 4.
  2. BuscarTabla 3(columna D) para ejemplos de los números de la lista.
    2b. Si aparece algún número en la lista, verifique si la auditoría ha fallado (indicado por el texto "fallido" en la columna B deTabla 3).
    2c. Si es así, imprimaF.
    2do. Si no es así, imprimaPAG.
  3. Si no aparece ninguno de los números de la lista, imprimaMETRO.

Mesas:

tabla 1

Esta tabla es la hoja de referencia principal. Enumera todos los UID con el nombre, el servidor y el proyecto.

 Unique ID     Name         Server Address     Project
 10000         Company 1    Server 1           Project 1
 10001         Company 2    Server 2           Project 2
 10002         Company 3    Server 3           Project 3
 10003         Company 3    Server 3           Project 4
 10004         Company 3    Server 3           Project 5
 10005         Company 3    Server 3           Project 6
 10006         Company 4    Server 4           Project 7
 10007         Company 4    Server 4           Project 7
 10008         Company 4    Server 4           Project 7
 10009         Company 5    Server 5           Project 8
 10010         Company 6    Server 6           Project 9
 10011         Company 7    Server 7           Project 10
 10012         Company 8    Server 8           Project 11
 10013         Company 8    Server 8           Project 11
 10014         Company 8    Server 8           Project 11
 10015         Company 8    Server 8           Project 11
 10016         Company 8    Server 8           Project 11
 10017         Company 8    Server 8           Project 11
 10018         Company 8    Server 8           Project 11
 10019         Company 8    Server 8           Project 11
 10020         Company 8    Server 8           Project 11
 10021         Company 9    Server 9           Project 12
 10022         Company 10   Server 10          Project 13
 10023         Company 11   Server 10          Project 14
 10024         Company 12   Server 10          Project 15
 10025         Company 13   Server 10          Project 16
 10026         Company 14   Server 10          Project 17
 10027         Company 15   Server 10          Project 18
 10028         Company 16   Server 10          Project 19
 10029         Company 17   Server 10          Project 20
 10030         Company 18   Server 10          Project 21
 10032         Company 19   Server 10          Project 23
 10033         Company 19   Server 10          Project 24

Tabla 2

esta tabla tiene la misma información quetabla 1pero agrupa cada UID en su proyecto respectivo. Actualmente no lo uso, pero ¿podría ser útil? Lo eliminaré si no.

 Company Trading Name     Project     UID     UID     UID     UID
 Company 1                Project 1   10000
 Company 2                Project 2   10001
 -----------------------------------------------------
 Company 4                Project 7   10006   10007   10008

Tabla 3

esta tabla es donde se pegan los resultados de la auditoría. Siguen este diseño exactamente, con la columna de notas con la palabra fallido si la auditoría no ha pasado (el formato condicional resalta esto actualmente), y el UID se extrae mediante una simple función IZQUIERDA. Las columnas Nombre y empresa luego utilizan una BUSCARV contra el UID entabla 1para tomar el nombre/servidor.

Notes                                   Time Rec.      UID     Name        Server
Audit for company passed:10001          auto           10001   Company 2   Server 2  
Audit for company passed:10006          auto           10006   Company 4   Server 4
Audit for company failed:10007          auto           10007   Company 4   Server 4  

tabla 4

Esta es la hoja de auditoría. La fórmula iría a la columna D y el resultado se copiaría/pegaría como valores cada día. He completado algunos ejemplos aquí de cómo debería verse después.

 Server     Name         Project (UID)                          Today's Date
 Server 1   Company 1    Project 1 (10000)                       P
 Server 2   Company 2    Project 2 (10001)                       N
 Server 3   Company 3    Project 3 (10002,10003,10004,10005)     F
 Server 4   Company 4    Project 4 (10006,10007,10008)           P
 -----------------------------------------------------
 Server 10  Company 10  Project 13 (10022)                       P
 Server 10  Company 11  Project 14 (10023)                       M
 Server 10  Company 12  Project 15 (10024)                       P
 Server 10  Company 13  Project 16 (10025)                       P
 Server 10  Company 15  Project 18 (10027)                       F
 Server 10  Company 16  Project 19 (10028)                       P
 Server 10  Company 17  Project 20 (10029)                       M
 Server 10  Company 18  Project 21 (10030)                       P
 Server 10  Company 19  Project 22 (100310)                      P
 Server 10  Company 19  Project 23 (10032)                       P
 Server 10  Company 19  Project 24 (10033)                       M

Alternativamente tengo una quinta mesa,tabla 5, que busca automáticamente cualquier identificación faltante deTabla 3usando la siguiente fórmula:

=INDEX(Reference!$A$2:$A$160, SMALL(IF(ISERROR(MATCH(Reference!$A$2:$A$160, Check!$D$2:$D$350, 0)), (ROW(Reference!$A$2:$A$160)-MIN(ROW(Reference!$A$2:$A$160))+1), ""), ROWS($A$1:A1)))

CuandoTabla 3está vacío (se borra cada día), esto simplemente enumera todos los proyectos. Cuando se pega cualquier número de auditorías enTabla 3sin embargo, la lista entabla 5Se actualizará para mostrar cuáles faltan. Quizás haya una manera de incorporar esto en una fórmula final.

Tengo una versión no identificada por si alguien quiere trabajar con ella.

Gracias.

edición1: Alguien solicitó más detalles del sistema. Esto es en un entorno Windows 10 usando Excel 365.

Respuesta1

Intenté elaborar un enfoque que admito que no es muy escalable y utiliza algunas columnas auxiliares. No estoy muy seguro de si existe una forma directa de buscar valores separados por comas de una sola vez. Podría ser posible, pero no soy tan experto en Excel.

Además, creo que la versión de escritorio de Office 365 admite macros de VBA. Si tiene una versión de escritorio, puede optar por una solución macro VBA que puede ser más sencilla. Sin embargo, creo que las macros no son compatibles con la versión en línea.

Vea la siguiente instantánea.

ingrese la descripción de la imagen aquí

Hay 5 columnas auxiliares. H,M,N,O,P. H puede ser opcional, pero prefiero usar una secuencia numérica simple ya que es posible que los nombres de sus servidores no tengan el último carácter como Números como Servidor 1, Servidor 2 en ese orden.

En M4 coloque la siguiente fórmula y arrástrela hacia abajo.

=SUBSTITUTE(RIGHT(K4,LEN(K4)-FIND("(",K4)),")","")

Esto crea una lista adecuada de UID separados por comas.

En N4 coloque la siguiente fórmula y arrástrela hacia abajo hasta el número provisional de celdas. Cuando no haya nada que mostrar, el contenido de la celda estará en blanco, pero extiéndalo para un aprovisionamiento posterior, ya que el recuento de UID puede variar.

=VALUE(TRIM(MID(SUBSTITUTE(TEXTJOIN(",",TRUE,$M$4:$M$22),",",REPT(" ",99)),(ROW(1:1)-1)*99+1,99)))

En O4 coloca la siguiente fórmula y arrástrala hacia abajo.

=IF(ISNUMBER(VALUE(N4)),MATCH("*"&N4&"*",$M$4:$M$22,0),"")

Esto enumera las posiciones de los UID que se utilizarán más adelante.

En P4 coloque la siguiente fórmula y arrástrela hacia abajo.

=IF(ISNUMBER(VALUE(N4)),IF(ISNUMBER(FIND("passed",INDEX($B$4:$B$22,MATCH(VALUE(N4),$D$4:$D$22,0)))),"P",IF(ISNUMBER(FIND("failed",INDEX($B$4:$B$22,MATCH(VALUE(N4),$D$4:$D$22,0)))),"F","M")),"")

Esto decide el estado de cada UID de la Tabla 4.

Ahora la columna de salida L en mi ejemplo.

En L4 coloque la siguiente fórmula y arrástrela hacia abajo.

=IF(COUNTIFS($O$4:$O$22,H4,$P$4:$P$22,"M")=COUNTIF($O$4:$O$22,H4),"M",IF(COUNTIFS($O$4:$O$22,H4,$P$4:$P$22,"P")+COUNTIFS($O$4:$O$22,H4,$P$4:$P$22,"M")=COUNTIF($O$4:$O$22,H4),"P","F"))

Esto aplica la lógica final para decidir el estado de la auditoría Pasa, Falla o Falta según la lista transpuesta en las columnas auxiliares.

Puede convertir estos conjuntos de datos a tablas de Excel y utilizar referencias de Tabla[Encabezado] para hacerlo más dinámico.

Pruébelo y decida si podría resultarle útil. Acepto que no es tan bueno ya que utiliza varias columnas auxiliares. La idea es transponer una lista separada por comas a celdas contiguas y luego aplicar la búsqueda.

información relacionada