Formule de massages à la table de données<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut à tous,
J'ai des milliers de colonnes de formule pour créer et supprimer les formules de ces colonnes.
donc, pour accélérer le processus, j’ajoute une formule de la manière suivante.
dt << Supprimer la formule d'évaluation (1);
pour la boucle (
nouveau col (formule);
dt << Supprimer la formule d'évaluation (0);
dt << Exécuter les formules;
)
2e pour la boucle
for boucle (Try (colonne (dt, Newcolname [ik]) << Supprimer la formule)) ;
Existe-t-il un moyen d'envoyer la formule de suppression de massage à datatable plutôt qu'à chaque colonne?
Depuis que la boucle pour supprimer les formules prend plus de 5 minutes supplémentaires.
Tout travail est hautement apprécié . superordinateur n'est pas une option.
Re: Massages formule au tableau de donnéesmichael.anderson
Bonjour Michael, votre idée semble très intéressante pour la création d’une formule utilisant des métrices. mais je ne sais pas dans quelle mesure nous pouvons tirer parti de ces méthodes.
Vous trouverez ci-dessous une situation: j’ai organisé mon nouveau nom de colonne et les formules correspondantes sous la forme de 2 colonnes dans une feuille Excel, la colonne de gauche est le nouveau nom des colonnes à ajouter au tableau et la colonne de droite contient de nombreuses formules complexes.
Maintenant, je dois ajouter ces types de 100 ou 1000 formules en utilisant pour boucle (jusqu'à présent, je sais). La boucle FOR ne sait donc pas ce qui est constant et quel est le nom de la colonne. donc j'utilise namexpr pour y parvenir: column (dttable, Newcolname [ij]) << set Formula (nameexpr (newcol1))
Ma question est donc la suivante: existe-t-il un moyen similaire (en utilisant expr) de faire de même avec les matrices sans obtenir les valeurs de colonne dans une matrice << GetAsMatrix?
newcol1 = 34 * col1 / 54 * col2-col3 / 2
newcol2 = col1 / 54 * col2-col3 / 2
newcol3 = 36 + col1 / 54 * col2-col3 / 2
newcol4 = 37 * 1e6 * col1 / 54 * col2-col3 / 2
Merci, RAM
Re: Massages formule au tableau de donnéesMerci MS. votre approche consistant à créer une nouvelle table via concaténer est fabuleuse. il conserve toutes les variables de la table et l'ordre des lignes, etc., mais sans formules. cela m'a aidé à éliminer le temps supplémentaire nécessaire à la suppression des formules. @!
Merci pour bonne suggestion. Formule de massages au tableau
Re: Massages formule au tableau de donnéesCompris... tout ce que vous demandez est encore possible de travailler avec les données sous forme de matrice ... Ce que je propose, c'est d'obtenir les données sous forme de matrice, de faire ces calculs, puis d'écrire les résultats dans un tableau de données. Vous pouvez ensuite ajouter les limites de spécifications, les unités, etc. comme vous le faisiez, mais il est inutile d'ajouter puis de supprimer les formules de la table de données. En général, l’origine de votre ralentissement est la modification de la table de données elle-même qui est (je pense) en train d’être reconstruite à chaque fois que vous modifiez la formule.
Si vous voulez vraiment tout conserver dans la table de données, définir la formule de colonne sur Empty () peut s'avérer plus rapide que de le supprimer ... mais il faudrait que vous essayiez pour le savoir avec certitude.
Meilleur,
M
Re: Massages formule au tableau de donnéesSalut m
Je suis sûr que métrique est beaucoup plus rapide au lieu d'utiliser des tableaux de données. mais j'ai besoin de données dans la table, car il est nécessaire d'utiliser un filtre de données local pour identifier les très petites améliorations au sein des divisions.
voici les étapes à suivre
1. formule nécessaire pour normaliser les paramètres électriques bruts par W et L, par exemple, Ion * W / * Wa.
2 Les limites de spécifications sont associées à la conversion des données en unités appropriées telles que pA, uA, nA, mV, mW en les multipliant par un facteur approprié.
3 l'étape 2 s'applique également à certains paramètres bruts nécessaires. C’est là que la suppression de la formule est nécessaire afin que les nouvelles colonnes puissent être converties de manière interdépendante.
Remarque:
1. nous ne pouvons pas fusionner le fichier de limite de formule et de spécification, car celle-ci est constamment mise à jour. donc doit le garder séparé.
2 La conversion d'unités de Merger n'est également pas une option.
RAM
Re: Massages formule au tableau de donnéesram.asra@gmail.com
Salut! Revenir un pas en arrière et chercher pourquoi les milliers de colonnes contenant des formules sont nécessaires pourrait être un meilleur point de départ.
Je sais que le calcul des valeurs en mémoire en tant que matrice est beaucoup plus rapide que le faire avec des tableaux de données. Cela éviterait également le besoin de colonnes. Cette année, à Discovery, il y avait eu une discussion plutôt saine sur ce point, la meilleure pratique étant d'éviter l'utilisation de formules de colonnes dans les scripts, dans la mesure du possible.
Pouvez-vous nous aider à comprendre un peu plus le cas d'utilisation?
Meilleur,
M
Re: Massages formule au tableau de donnéesUne solution de contournement à laquelle je viens de penser consiste à utiliser la formule qui supprime le pouvoir de Concatenate (). Le code ci-dessous crée une copie de la table de données, y compris les scripts et les variables de la table, mais sans formules.
dt = Tableau de données actuel () ; // Table avec des formules à supprimer
new_dt = dt << Enchaîner ( dt_temp = Nouvelle table ( "temp" , Nouvelle colonne ( "supprime moi" ))) ;
new_dt << supprimer la colonne ( "supprime moi" ) ;
Fermer ( dt_temp , nosave ) ;