FINDXTREME: Je compte sur vos avis sur ce projet … Par avance
Bonjour a tous
Je vous annonce la pre release de FINDXTREME.
Je viens vous en faire part afin de connaitre votre intérêt qu’un tel UDF aurait pour vous.
Après cette lecture , un peu longue, je le reconnais, pourriez vous m'écrire ce que vous attendriez vous apporterez d'un tel UDF.
Dans quel cadre l'utiliseriez vous? Gestion, Analyste , RH?
Quel serait votre type d’utilisation? Uniquement à partir de données de feuilles Excel, autres …? Quels sources?
Etc.
Tout simplement, dite moi si ce projet vous semble intéressant
Presentation FINDXTREME
Un moteur de recherche pour tous les utilisateurs
FindXtreme est un outil puissant et accessible qui transforme la manière dont vous recherchez, filtrez et extrayez des données dans Excel, fichiers CSV et, pour les utilisations avancées, interroger ACCESS et même SQL Server.
FindXtreme s'adapte à vos besoins du moment et vous offre une expérience fluide, intuitive, efficace grâce des capacités évolutives!
Que vous ayez des besoins simples, habituels aux quotidiens, des analyses intermédiaires ou des projets complexes alors FindXtreme s'adapte à l'évolution de vos besoins.
Ecrit uniquement en VBA, Il est capable de faire des recherches simples en moins de 5 secondes sur 500 000 lignes sur 5 colonnes voire plus.
Zéro préparation, juste à saisir la recherche comme celle ci pour avoir votre résultat en 11 secondes pour 100 000 lignes en affichant 3 colonnes (ici D, C, A) :
= FINDXTREME("@A IN [1,3,7] AND @H NOT BETWEEN [01/01/2000:31/12/2012 , 01/01/1900:31/12/1950] ",(2:100001),"D,C,A") -> COST: 26,9
Explication de la recherche: Dans la colonne A on recherche les valeurs 1, 3 ou 7 mais avec des dates dans la colonne H qui NE SONT PAS entre les 2 périodes de dates indiquées.
FindXtreme c'est l'assurance de la simplicité jusqu'aux attentes des experts.
Certes FindXtreme ne transformera pas Excel en base de données, il n'est pas fait pour cela, MAIS …
Vous analyserez vos données Excel comme un pro... sans être un pro. Vite bien et facilement!
FindXtreme c'est aussi la facilité d'affichage des résultats et de pouvoir choisir:
- Les colonnes
- L'ordre que vous voulez!!
TOUT CELA EN 1 LIGNE DANS VOTRE BARRE DE FORMULE EXCEL!
Et pour les Pros, les Experts, les vrais les costauds alors?
FindXtreme ne vous apprendra plus rien, vous savez déjà tout ou presque 😉 … sauf que c'est bien plus simple, plus facile avec FindXtreme.
Par contre pour vous le temps c'est de l'argent. C'est votre métier!
Alors certes FindXtreme n'est pas le plus rapide en vitesse pure mais si vous ajouter les temps des préparations et autres manipulations nécessaires pour avoir un résultat final, alors là FindXtreme est votre compagnon!!
Un exemple: Faire des recherches multi zones (y compris dans vos fichiers CSV...) afin de vous permettre de faire des échantillonnages, devient un jeu d'enfant.
Cette capacité est étendue jusque dans la fonction Between pour les recherches entre bornes/limites tant en valeurs qu'en termes de dates
Que ce soit :
•la recherche simple
•opérations arithmétiques sur des colonnes
•dates
•variables (appelées Alias) avec la possibilité de les afficher dans les résultats ET dans l'ordre que vous voulez.
TOUT CELA EN 1 LIGNE SANS PREPARATION PREALABLE!
Pour les experts: FINDXTREME est écrit en pure VBA et basé sur des moteurs TOKEN ET RPN eux aussi écrit en VBA.
J’aimerais la participation de quelques utilisateurs afin de le tester.
A priori, au moins dans sa version Light, FINDXTREME sera gratuit.
Rien n’est décidé …. je n’en suis pas là.😉
Ce sujet vous intéresse?
Alors n'hésitez pas et je vous fournirai plus d'information.
Peut être seriez vous intéressé d'être un béta testeur et participer à la finalisation et l'évolution de FINDXTREME?
Dites le moi.
P.S.:
Je ne voudrais pas surcharger le forum.
Bonjour
Faut voir...
A+ François
Opérateurs Supportés
1. Arithmétiques
Opérateur | Description | Exemple |
| + | Addition | @Prix + @Taxes |
| - | Soustraction | @total - @Remise |
| * | Multiplication | @Prix * 1.2 |
| / | Division | @Montant / @Taux |
| \ | Division entière | @Stock \ @Pack |
| % | Pourcentage | @Prix * 120% |
| ^ | Puissance | @Dimension ^ 3 |
2. Comparaison
Opérateur | Description | Exemple |
| = | Égal | @Status = "OK" |
| <> | Différent | @Code <> "ABC" |
| > | Supérieur | @Prix > 100 |
| >= | Supérieur/égal | @Stock >= 10 |
| < | Inférieur | @Qté < 50 |
| <= | Inférieur/égal | @Marge <= 20 |
3. Opérateurs logiques
Opérateur | Description | Exemple |
| AND ou && | Et | @Prix > 0 AND @Stock > 0 |
| OR ou || | Ou | @Status = "OK" OR @Valid = 1 |
| XOR | Que l'un ou que l'autre | @Status = 'OK' XOR @Valid = 1 |
| NOT | Non | NOT(@Status = 'Closed') |
Fonctions de comparaisons
Fonctions de comparaisons | Description | Exemple |
| IN […, …] | Liste d'éléments | @Produits IN ['T shirt', 'Polo'] |
| BETWEEN […] | Bornes uniques | @Date BETWEEN [01/01/2025:30/06/2025] |
| BETWEEN […, …, …, ] | Bornes multiples | @Date BETWEEN [01/01/2025:31/03/2025, 01/07/2025:30/09/2025, …] |
| LIKE | Recherche partielle dans un texte | @Name LIKE "N*" à Tous les noms commençant par N |
Fonctions de dates
Fonctions de dates | Description | Exemple |
| TODAY() | Liste d'éléments | Date du jour |
| DAY(@colonne) | Retourne le n° du jour d'une date dans la colonne/champs | Day(@A)+2 Ajoute 2 au jour. |
| DAYNAME(@colonne) | Le nom du jour de la date (Lundi, Mardi etc.) | DayName(@H) |
| DAYNUM(@colonne) | Le jour de la date en chiffre (1=Lundi, 2=Mardi etc.) | DayNum(@H) |
| WEEK | N° de la semaine de la date | WEEK (@H) |
| MONTH | N° du mois | MONTH (@H) |
| MONTHNAME | Le nom du mois | MONTHNAME (@H) |
| YEAR | L'année | YEAR (@H) |
4. Pour les experts!
Fonctions Alias (Variables) | Description | Exemple |
Alias#Nom1= … , Alias#Nom2= … :: | Alias pré déclarés avant leurs utilisations dans la requête | Alias#Alias1=@A, Alias#Alias2=@B :: #Alias1 between[3:5] … |
Alias#Nom1{ … } | Déclaration dans la requête, "à la volée" | (Alias#CB{@F*@C}+(#CB/2))> 100 |
Exemple d'utilisation mixtes avec les 2 ensembles |
On utilise #Alias1 est multiplié par 2 dans la définition de #Alias2. | Alias#Alias1= @A :: Alias#Alias2{# Alias1* 2} >10 |
Notes importantes
• @ est pour référencer les colonnes ou des noms de champs
• # est utilisé pour désigner les Alias (des variables)
• Les expressions textuelles: Excel exige que les chaines soient entre guillemets doubles.
A la place, FindXtreme vous permet d'utiliser une la simple ' pour encadrer vos chaines de textes.
• Les parenthèses peuvent être imbriquées
Version Light: Pas imbrication de parenthèse.
Version Medium : 3 niveaux d'imbrication ( ...(…(…)))
Version High: 6 niveaux d'imbrication
Pour la version High: À la demande, ce bridage volontaire à 6 niveaux peut être redéfinie
• Le cache et "courts-circuits" optimisent les calculs répétitifs et les performances.
Bonjour à tous,
Intéressant, ça me fait penser à la fonction QUERY dans Google Sheets.
C'est certainement un très gros projet VBA, mais personnellement pour de telles recherches j'utiliserai plutôt PowerQuery (Peut-être le fais-tu tourner en interne ?).
Bonjour Fanfan38
Merci pour votre intérêt.
Je viens de mettre plus de précision ci dessus.
Pourriez vous me dire dans quel context, pour quel utilisation (gestion, taille des traitements etc.) un tel logiciel est intéressant pour vous
Si vous désirez plus d'informations n'hésitez pas.
P.S.:
(Peut-être le fais-tu tourner en interne ?).
-> Non ce n'est pas un produit interne. Je l'ai écrit seul (Moteurs Tokens, RPN etc.) en VBA. Un an de développement et quelques milliers de code plus tard, j'en actuellement je finalise la pré release avec la capacité d'offrir 3 versions: Light, Medium et High
J'ai quelques mises au point à faire avant que ce soit livrable bien que tout fonctionne.
Pour info:
Une requête simple comparaison: environ 5s pour 500 000 lignes.
Une requête complexe (avec par exemple des Between multi bornes, Not, In, Alias etc avec parenthèses imbriquées etc.): 100 000 lignes en moins 40 secondes suivant la complexité.
Rappel: Le tout avec la capacité de choisir les colonnes résultats (nombre non limité) que l'on désire voire ET dans l'ordre que l'on veut !!
bonjour saboh12617
FindXtreme ne prétend pas remplacer Power Query ni transformer Excel en SGBD. Ce n'est ni son role ni celui d'Excel 😉😁
Par contre son objectif est d'être polyvalent, du plus simple au plus sophistiqué (pour les costaud, les durs de dur 😲😂) de façon rapide SANS PREPARATION avoir à se "prendre la tête" avec des imbrications, des créations de colonnes annexes .
Vous voulez en savoir plus?
SOYONS CONCRET
Des exemples: Du plus simple au plus complexe
1. Mes premiers pas
@ville = "Paris"
→ "Donne-moi tous les Parisiens"
2. Je combine des critères
@ville = "Paris" AND @Age > 30
→ "Parisiens de plus de 30 ans"
3. J'utilise des listes
@ville IN [Paris,Lyon,Marseille] AND @Age BETWEEN [25:40]
→ "3 villes, âge entre 25 et 40"
@ville IN [Paris, Lyon, Marseille] AND @Age BETWEEN [1:17, 65:100]
→ "3 villes, âge entre 1 et 17 ou entre 65 et 100"
4.J'ajoute des calculs
YEAR(@DateInscription) >= 2020 AND @Montant > 1000
→ "Inscrits depuis 2020 avec gros montants"
TODAY() - @DateInscription>=2 AND @Montant > 500
→ "Inscrits depuis 2 ans ou plus avec un montant > 500"
5.Je deviens un pro (les Alias)
Alias#Anciennete{TODAY()-@DateInscription} > 365
AND Alias#PanierMoyen{@Total/@NbAchats} > 50
→ "Clients fidèles (>1 an) avec bon panier moyen"
En Résumé
FindXtreme vous permet de :
- Écrire en 1 ligne ce qui prendrait 10 lignes de formules Excel
- Analyser 500,000 lignes en moins de 30 secondes
- Réutiliser vos requêtes (sauvegarde & partage)
- Travailler sur Excel/CSV/Access/SQL avec la même syntaxe
- Être autonome sans dépendre d'un expert SQL
Prêt à Essayer ?
Commencez simple :
@Age > 25
Puis montez en puissance :
DayName(@Date) IN [lundi,samedi] AND YEAR(@Date) >= 2024
Et devenez un expert :
Alias#Age{YEAR(TODAY())-YEAR(@DateNaissance)} BETWEEN [18:65]
AND @ville IN [Paris,Lyon,Marseille]