1 votes

Compte Excel du nombre de fois où une valeur unique a été sélectionnée

J'ai un fichier long avec trois colonnes, la première colonne contient le nom des institutions, la deuxième colonne contient le nom des clients dans chaque institution et la troisième colonne contient un champ Oui/Non pour indiquer si un client spécifique dans une institution spécifique a été sélectionné.

Inst.   Cust.   Selected
INST_1  CUST_1  Yes
INST_1  CUST_2  Yes
INST_1  CUST_3  
INST_1  CUST_4  
INST_2  CUST_5  Yes
INST_2  CUST_6  
INST_2  CUST_7  
INST_3  CUST_8  Yes
INST_3  CUST_9  
INST_3  CUST_10 
INST_3  CUST_11 
INST_3  CUST_12 Yes
INST_3  CUST_13 
INST_3  CUST_14 
INST_4  CUST_15 
INST_4  CUST_16 Yes
INST_4  CUST_17 Yes
INST_4  CUST_18 Yes

Je souhaite calculer le nombre d'établissements dans lesquels un, deux ou plus de deux clients ont été sélectionnés.

Je suis familier des solutions utilisant des tableaux croisés dynamiques mais dans mon cas, il serait plus pratique que le résultat soit généré par une formule. Dans l'exemple, le résultat souhaité est :

nombre d'institutions avec un client sélectionné : 1

nombre d'institutions avec deux clients sélectionnés : 2

nombre d'institutions ayant trois clients sélectionnés ou plus : 1

0voto

rGggg Points 1

J'utiliserais la fonction de codage marco dans le plugin VBA. Je ne donnerai pas le code exact car il change régulièrement. Mais voici un pseudo-codage de base.

  1. "GET" les données de la cellule à regarder en premier. Une fois que vous avez compris comment votre Excel obtient des données, trouvez comment boucler ceci.
  2. Préparez la formule pour l'analyse puis "PUT" dans une cellule de données.
  3. Avance à la cellule suivante ou l'incrémente à la cellule suivante. Remarque : au lieu de GET et PUT, vous pourriez utiliser READ et WRITE. Je crois que la différence entre les deux est que l'un lit la valeur binaire et l'autre les valeurs de chaîne. La plupart des programmeurs utilisent des chaînes de caractères pour stocker des valeurs qu'ils transforment ensuite en flottant ou en int.

0voto

JosiP Points 1839

J'ai passé plus de temps et le problème et j'ai trouvé une solution en utilisant l'approche illustrée dans le post Compter les valeurs numériques uniques avec des critères

Pour mettre en œuvre la formule, j'ai ajouté une colonne supplémentaire transformant la colonne Inst. en une colonne contenant uniquement des ID numériques. Ceci est nécessaire pour pouvoir utiliser la formule FREQUENCY fonction.

Inst.   Inst_ID Cust.   Selected
INST_1     1    CUST_1  Yes
INST_1     1    CUST_2  Yes
INST_1     1    CUST_3  
INST_1     1    CUST_4  
INST_2     2    CUST_5  Yes
INST_2     2    CUST_6  
INST_2     2    CUST_7  
INST_3     3    CUST_8  Yes
INST_3     3    CUST_9  
INST_3     3    CUST_10 
INST_3     3    CUST_11 
INST_3     3    CUST_12 Yes
INST_3     3    CUST_13 
INST_3     3    CUST_14 
INST_4     4    CUST_15 
INST_4     4    CUST_16 Yes
INST_4     4    CUST_17 Yes
INST_4     4    CUST_18 Yes

Le nombre d'institutions qui ont été sélectionnées une seule fois peut maintenant être calculé comme suit SUM(1*(FREQUENCY(IF(Selected="Yes",Inst_ID),Inst_ID)=1)) . Les cas où les institutions ont été sélectionnées deux fois ou plus peuvent être calculés de manière similaire.

Le tableau de cases dans le FREQUENCY La fonction cal est également dirigée vers une liste d'Inst_ID uniques.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X