Créer des formules efficaces avec @cell et @row

S’applique à

Smartsheet
  • Pro
  • Business
  • Enterprise

Optimisez vos formules pour améliorer les performances globales de votre feuille et éviter d’avoir à référencer manuellement des cellules dans les formules.

Plus le volume de vos feuilles augmente, plus il devient utile à leur performance de créer des formules efficaces. Voici un aperçu de deux fonctions qui vous aideront à rendre vos formules plus efficaces, @cell et @row.

Utiliser @cell pour effectuer des calculs de cellules plus intelligents

Lorsque vous souhaitez effectuer des calculs dans des formules qui portent sur des plages de cellules, par exemple :SUMIF, SUMIFS, COUNTIF, et COUNTIFS, vous pouvez utiliser l’argument @cell dans les critères de la fonction. L’argument @cell effectue un calcul sur chaque ligne pendant que la fonction principale (SUMIF par exemple) évalue les critères de la plage, rendant votre formule plus efficace.

Utilisons l’exemple des données de l’image ci-dessous : si vous voulez additionner le coût de toutes les tâches dont la date d’échéance était en 2014, créez la formule suivante :

=SUMIF([Date d’échéance]1:[Date d’échéance]5, YEAR(@cell) = 2014, Coût1:Coût5)

Formule @cell

Le résultat de la formule est de 875,75 $ (la somme des coûts de toutes les tâches dont la date d’échéance était en 2014).

ASTUCE : ajoutez la fonction IFERROR à votre formule pour vous assurer que vous n’obtenez pas d’erreur si @cell rencontre une cellule vide dans la formule. Par exemple :=COUNTIF(Date:Date, IFERROR(YEAR(@cell), 0) = 2016)

Utiliser @row pour améliorer les performances des formules

Avec @row, vous pouvez améliorer les performances avec le changement automatique des références de cellules dans une colonne (par exemple, le statut de vos tâches) pour un grand nombre de lignes.
Imaginons que nous voulions utiliser une formule pour changer automatiquement les symboles dans la colonne de statut de cette grille :

@row

 

Voici un exemple de formule que vous pourriez créer pour automatiser le changement de couleur de la pastille RJV de votre colonne Statut :

=IF(Achèvement3 <> 1, IF(TODAY() - [Date échéance]3 > 0, "Rouge", IF(TODAY() - [Date échéance]3 > -3, "Jaune", "Vert")))

La formule ci-dessus contient plusieurs références à des cellules de la ligne 3. En ajoutant une ligne au-dessus de la ligne 3, les résultats dans Smartsheet mettent automatiquement à jour toutes les références de cellule dans la formule à la ligne 4. Smartsheet modifierait également les formules dans chaque ligne inférieure de la même manière. Plus le nombre de formules qui doivent être modifiées est élevé, plus vos performances dans Smartsheet sont affectées.

Pour tenter d’améliorer les performances de vos feuilles, remplacez les numéros de ligne par @row dans vos références de cellule. Voici à quoi ressemblerait la formule en utilisant @row :

=IF(Achèvement@row <> 1, IF(TODAY() - [Date échéance]@row > 0, "Rouge", IF(TODAY() - [Date échéance]@row > -3, "Jaune", "Vert")))

Smartsheet n’aura pas besoin de modifier les références de cellules si la ligne est déplacée, ce qui accélère les temps de chargement et d’enregistrement de la feuille. Vous pouvez également copier et coller cette formule sans avoir à modifier manuellement les numéros de ligne des références de cellule, ce qui vous fait gagner du temps lorsque vous devez copier vos formules.