- 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"
vendredi 20 mai 2011
Les méthodes d'extractions dans Slidie
Les différentes méthodes d'extractions de modalités dans Slidie :
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 :
Détails de la mise en forme des valeurs :
Résultat :
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 :
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 :
Inscription à :
Articles (Atom)