Comment attribuer une clé en fonction du nombre de clés disponibles et de la valeur de l'indicateur?


0

J'ai besoin d'aide pour écrire une formule qui effectue les tâches suivantes:

  1. Regarde si un indicateur = 1
  2. Si indicateur = 1, recherchez la valeur de clé en fonction du nombre disponible pour cette clé particulière.
  3. Continuez à rechercher des valeurs supplémentaires en utilisant l'historique des clés utilisées pour cette ligne particulière
  4. Réinitialiser et répéter pour la ligne suivante

Par exemple:

COLUMN   A      B   C   D       E       F   G   H       I       J   K   L   M
         Row    Indicators      |       Matched Key     |       Key Counts          
           3    U1  U2  U3      |       U1  U2  U3      |       A   B   C   D
           4    1   0   1       |       B   N/A D       |       0   1   0   1   
           5    1   1   1       |       A   A   D       |       2   0   0   2  

La formule que je dois écrire concerne la section "Clé correspondante".

Lecture de la rangée 4 à gauche:

  • U1 et U3 ont tous les deux des indicateurs, je vais donc dans le tableau Chiffres clés pour trouver que j'ai 1 B et un D
  • U1 dans "Matched Key" obtient "B" comme clé et U3 dans "Matched Key" obtient D. U2 ne reçoit aucune valeur car son indicateur est défini sur 0.

Au rang 5:

  • U1, U2 et U3 nécessitent tous une affectation de clé.
  • Je regarde dans "Key Counts" et vois que j'ai 2 A et 1 D.
  • U1 et U2 obtiennent les A et U3 un des D (il en restera un).

Pourquoi U2 est-il assigné A dans la rangée 5?
Petr Fedorov

J'ai 2 "A" clés disponibles dans la rangée 5, la priorité d'attribution des clés fonctionne de gauche à droite. Donc, d’abord, je vais utiliser tous les A disponibles, puis les B, etc.
mrkb80

@ mrkb80 Veuillez modifier votre formule dans la question.
Excellll

Réponses:


0

J'ai pu répondre à ma propre question à l'aide de formules matricielles (cette formule concerne la cellule H4):

{=IF(D4=1,OFFSET($I$2,0,COLUMN(INDEX(OFFSET($J$4,0, ( (MIN(IF((J4:M4>=1) *(J4:M4<>0)*(O4:R4>=SUM(B4:D4)),COLUMN(J4:M4)))-1))-COLUMN($I$2) ):$N$4,MATCH(TRUE,OFFSET($J$4,0,  ( (MIN(IF((J4:M4>=1) *(J4:M4<>0)*(O4:R4>=SUM(B4:D4)),COLUMN(J4:M4)))-1))-COLUMN($I$2)  ):$N$4>=1,0)))-COLUMN($I$4)),NA())}

J'ai dû ajouter une autre "matrice" pour les comptes cumulés (qui se situe dans la plage O4: R5):

COLUMN  N     O    P   Q    R
        Row   Cumulative Counts         
          3    A    B   C   D
          4    1    2   4   4
          5    2    2   2   3

Autres façons de peau ce chat, mais cela fonctionne pour moi.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.