2017-03-28 1 views
0

Je suis nouveau à Sharepoint 2010 avec ce que j'appellerais un niveau d'expérience de codage highschool freshman, bien que je puisse généralement trébucher et bricoler. Je n'ai actuellement pas accès au concepteur Sharepoint, mais à partir des recherches que j'ai faites jusqu'à présent, cela peut être nécessaire. Pourtant, j'espère trouver une solution OOTB au problème ci-dessous.Comment conditionner plus de 18 champs en fonction de la sélection de deux listes déroulantes

J'ai été chargé de construire une feuille de suivi de résolution d'incidents sur Sharepoint. Mon patron est très soucieux d'être audité par le droit, et a des exigences très spécifiques sur les informations requises. La colonne A contient une liste déroulante de 5 choix qui indiquent la solution finale. Colonne B Contient une liste déroulante avec 4 choix qui indiquent le problème initial. En fonction des sélections dans A et B, les différentes colonnes de C-X doivent être vides, non vides, ou contenir des entrées spécifiques. La seule façon que je peux trouver pour faire cela est de créer une liste de validation contenant un imbriqué si pour chaque combinaison de A et B résultant de 20 ifs imbriqués. Cependant sharepoint est limité à 7 ifs imbriqués, donc je cherche des solutions possibles.

* Cette liste sera principalement accessible en mode Feuille de données, de sorte que les solutions de type "HTML dans une colonne calculée" ne sont pas viables.

Répondre

1

Vous pouvez utiliser des colonnes calculées pour diviser la formule de validation en plusieurs blocs gérables.

Commençons par un exemple simple.

Condition 1: Si le problème initial était que l'ordinateur de l'utilisateur était trop lent et la solution finale a été redémarré l'ordinateur, vous devez remplir la colonne [C].

Condition 2: Si le problème initial était que l'utilisateur était en feu et la solution finale a été les arroser avec de l'eau, vous devez remplir la colonne [D].

Vous pouvez effectuer cette validation de la liste en une seule formule, comme ci-dessous:

=IF(
    AND([A]="Restarted Computer",[B]="Computer is slow"), 
    NOT(ISBLANK([C])), 
    IF(
     AND([A]="Doused with water",[B]="User is on fire"), 
     NOT(ISBLANK([D]), 
     TRUE 
    ) 
) 

Mais ce qui est long et laid (surtout quand vous condensent à une ligne). Au lieu de cela, vous pouvez ajouter deux colonnes calculées, une pour chaque condition que vous souhaitez vérifier. Pour les besoins de cet exemple, disons que vous ajoutez une colonne appelée C_is_valid et une colonne appelée D_is_valid:

C_is_valid formule de colonne calculée:

=IF(AND([A]="Restarted Computer",[B]="Computer is slow"),NOT(ISBLANK([C])),TRUE) 

D_is_valid formule de colonne calculée:

IF(AND([A]="Doused with water",[B]="User is on fire"),NOT(ISBLANK([D]),TRUE) 

Formule de validation mise à jour:

=AND([C_is_valid],[D_is_valid]) 

Il est facile de voir comment cela peut simplifier même un ensemble très complexe de conditions de validation ...

=AND(C_is_valid,AND(D_is_valid,AND(E_is_valid,AND(F_is_valid,AND(G_is_valid,AND(H_is_valid,I_is_valid))))) 

Mais même cela pourrait être simplifié en consolidant certaines de ces AND() s en plusieurs colonnes calculées, afin que votre formule de validation finale pourrait être aussi simple que:

=AND([First set of conditions is valid],[Second set of conditions is valid]) 
+0

Savez-vous s'il y a un limite de caractères ou limite de colonne? Je vais essayer votre suggestion un peu, mais je peux voir que c'est un problème. Aussi, avez-vous des suggestions pour construire cette monstruosité d'une formule? J'ai entendu des gens suggérer la construction de la formule dans Excel, mais puisque le point de partage et les colonnes de référence Excel de différentes manières, cela ne semble pas trop utile. – CMWilli

+0

Il y a une limite de 255 caractères par formule, et une [limite de colonne] (https://technet.microsoft.com/fr-fr/library/cc262787 (v ​​= office.14) .aspx # Column) est plus difficile à mais il plafonne à 48 (mais chaque colonne calculée consomme aussi 28 octets et une liste ne peut pas avoir plus de 8000 octets consommés par toutes les colonnes). J'ai utilisé Excel, qui fonctionne mieux si vous attribuez un nom à une cellule (de préférence en faisant correspondre le nom de votre colonne) et que vous faites référence à cela dans vos formules Excel. Si vos noms de colonnes ne contiennent pas d'espaces, vous n'avez pas besoin de les placer dans les [crochets], donc c'est quelque chose. – Thriggle