vendredi 20 mai 2011

Les méthodes d'extractions dans Slidie

Les différentes méthodes d'extractions de modalités dans Slidie :


  • 1 2 -> Extrait les deux premières lignes / colonnes / calculs / pages
  • "Marque" -> Extrait la ligne / colonne / calcul / page ayant pour texte "Marque"
  • -1 -> Extrait le dernier item
  • $"Le*" -> Extrait les items débutants par le texte "Le"
  • $"*le*" -> Extrait les items contenant le texte "Le". "Elle", "épeler", "lettre" seront conservés.
  • $"*le" -> Extrait les items finissant par le texte "Le"
  • 3..5 -> Extrait les items de 3 à 5
  • "Marque".2 -> Extrait le second item du sous-titres "Marque"
Pour tous les extractions textuelles, la casse n'a pas d'importance.

mardi 15 mars 2011

Mise en forme conditionnelle d'un tableau par rapport à une colonne de référence

Objectif : Appliquer des couleurs de fonds de cellules d'un tableau selon un calcul de différence de pourcentages par rapport à une colonne de référence.

Tableau en entrée :



La colonne de référence est la colonne "Ensemble".
L'objectif est de coloriser les fonds de cellules en rouge / vert quand la différence est inférieure / supérieure de 15% à la colonne ensemble.

Première étape : Script de calcul

# Récupération du tableau
t = ARG1

# Seuil de comparaison par rapport (0.15 car les nombres sont au format pourcentage)
SEUILCOMP = 0.15

# Récupération de la première colonne de référence
Base = t.Columns[1].Calculations["CALC1"]

# Récupération des autres colonnes à tester contre la colonne de référence
Crit = t.Columns.Remove(1).Calculations["CALC1"]

# Calcul de la différence entre le critère et la base
delta = Crit - Base

#Fonction de transformation du delta
def ApplyThreshold(x, s):
if x >= s:
return "Pos"
elif x <= -s:
return "Neg"
return ""

#Application de la fonction valeurs par valeurs
delta.ChangeValues(lambda x: ApplyThreshold(x, SEUILCOMP))

# Résultat final avec stockage d'un nouveau calcul résultat : "DELTA"
t = MergeCalculations (t.Calculations["CALC1"],MergeColumns (Base,delta))
SetCalculationText (t, 2, "DELTA")

RESULT = t


Seconde étape : Mise en forme



Cette étape se décompose en 3 blocs :

  • Mise en forme des calculs (%)

  • Mise en forme des valeurs

  • Suppression du calcul "DELTA"


Détails de la mise en forme des valeurs :



Résultat :


Trier un tableau avec deux clés de tris

Objectif : Trier un tableau selon le "total ++" et, en cas d'égalité, sur le "total ++"

Tableau d'entrée :




Script de transformation :

# Récupération du tableau
t = ARG1

# Liste des valeurs de la première colonne de tri
col1 = list(t.Columns[1].Values)

# Liste des valeurs de la seconde colonne de tri
col2 = list(t.Columns[2].Values)

# Liste des positions de 1 au nombre de lignes
positions = list(Range(1, t.Rows.Size))

# Tri de la liste des positions selon les deux clés de tri
positions.sort(key = lambda x: (col1[x-1], col2[x-1]), reverse = True)

# Récapitulatif du nouvelle ordre des postions
log.Info(positions)

# Extraction du tableau selon le vecteur de positions ordonnées par le tri.
RESULT = t.Rows[positions]


Résultat :