Bonjour,
J'ai un système qui calibre les données et produit les informations comme suit :
| ID de pneu | Bande de roulement | Profondeur | Traîne | nous | psi |
| 2326 | Intérieur | 0,618584 | 0,117774 | 0,417314 | 21.15549 |
| 2326 | Extérieur | 0,740841 | 0,417079 | 0,417314 | 21.15549 |
| 2327 | Intérieur | 0,329065 | 0,218903 | 0,365071 | 25.65573 |
| 2327 | Extérieur | 0,478055 | 0,214953 | 0,365071 | 25.65573 |
L'identification du pneu est lue deux fois, une fois pour les lectures de la bande de roulement intérieure et une fois pour l'extérieur. Existe-t-il un script que je peux utiliser pour le réorganiser en tant que tel:
| ID de pneu | Profondeur intérieure | Profondeur extérieure | Traînée intérieure | Traînée extérieure | nous | psi |
| 2326 | 0.61858445 | 0.74084057 | 0,1177737 | 0,4170794 | 0,41731 | 21.1555 |
| 2327 | 0.32906451 | 0.47805545 | 0,2189025 | 0,2149527 | 0,36507 | 25.6557 |
Ici, il n'y a qu'une seule participation par pneu. Les entrées pour Depth et Drag ont été renommées Inner ou Outer et les colonnes identiques viennent d'être fusionnées en une seule. Ceci est un extrait d'une feuille beaucoup plus grande avec beaucoup plus de colonnes - certaines différentes, d'autres identiques.
Idéalement, le script peut déterminer quelles cellules sont identiques en fonction de l'ID fatigué et supprimer simplement les répliques. Mais un script configuré avec des noms prédéterminés peut également fonctionner, car les noms de colonne ne changent jamais.
Merci!
@jthi , @txnelson , vous deux avez énormément aidé la dernière fois ! Merci pour ça! Je ne sais pas vraiment quelle approche adopter et je n'ai rien trouvé de similaire dans les solutions précédentes.
C'est une approche par force brute, mais ça marche.Notez les variables pour les colonnes fractionnées et les colonnes non fractionnées.
dt = New Table( "Base Tire Data", Add Rows( 4 ),
New Column( "Tire ID", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [2326, 2326, 2327, 2327] ) ),
New Column( "Tread", Character( 16 ), "Nominal",
Set Values( {"Inner", "Outer", "Inner", "Outer"} ) ),
New Column( "Depth", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.618584, 0.740841, 0.329065, 0.478055] ) ),
New Column( "Drag", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.117774, 0.417079, 0.218903, 0.214953] ) ),
New Column( "uS", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [0.417314, 0.417314, 0.365071, 0.365071] ) ),
New Column( "psi", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [21.15549, 21.15549, 25.65573, 25.65573] ) )
);
nr = nrows(dt);
dtt = New Table( "Split Tires");
dtt << new column("Tire ID", Numeric, "Continuous", Format( "Best", 12 ));
split_cols = {"Depth", "Drag"};
nonsplit_cols = {"uS", "psi"};
for (i = 1, i <= nitems(split_cols), i++,
inn_col = "Inner " || split_cols[i];
out_col = "Outer " || split_cols[i];
dtt << new column(inn_col, Numeric, "Continuous", Format( "Best", 12 ));
dtt << new column(out_col, Numeric, "Continuous", Format( "Best", 12 ));
);
for (i = 1, i <= nitems(nonsplit_cols), i++,
one_col = nonsplit_cols[i];
dtt << new column(one_col, Numeric, "Continuous", Format( "Best", 12 ));
);
dtt << Add Rows( nr/2 );
k = 0;
for (i = 1, i <= nr, i+=2,
k++;
for (m = 1, m <= nitems(split_cols), m++,
one_col = split_cols[m];
inn_col = "Inner " || split_cols[m];
out_col = "Outer " || split_cols[m];
column(dtt, inn_col)[k] = column(dt, one_col)[i];
column(dtt, out_col)[k] = column(dt, one_col)[i+1];
);
column(dtt, "Tire ID")[k] = column(dt, "Tire ID")[i];
for (m = 1, m <= nitems(nonsplit_cols), m++,
one_col = nonsplit_cols[m];
column(dtt, one_col)[k] = column(dt, one_col)[i];
);
);