Date du jour de semaine suivant

Premier billet de la saga ‘Weekday’ qui répond ici aux questions suivantes : « Quelle est la date du prochain lundi ? du prochain jeudi ? … ».
Ce billet présente aussi la fonction VBA ‘WeekDay()’ et sa matrice des résultats qui sert de base à la compréhension des algorithmes basés sur les jours de semaine.
Lire la suite

Indices de similarité entre deux chaînes de caractères

Après l’algorithme de Damerau-Levenshtein qui mesure la distance minimale d’édition entre deux textes, je présente un algorithme plus simple et donc plus rapide qui calcule différents indices de similarité (Cosinus, Dice, Jaccard, Kulczynski,…) à partir de n-grammes (n-grams/q-grams en anglais) ou sous-séquences continues de caractères.
Lire la suite

Similarité entre deux chaînes de caractères

Pour tenter de réduire l’imperfection des ITCC, IPCC, ITPCC voire ITPCCC et plus généralement ICC(*), de nombreux algorithmes sont proposés (Soundex, Jaro-Winkler, …) et l’algorithme de Damerau-Levenshtein que j’ai implémenté ici en VBA.
Voir aussi le billet sur les indices de similarité et le billet sur la distance de Jaro-Winkler.
Lire la suite

Trouver la Nième plus petite valeur d’un tableau

On a souvent besoin de trouver la valeur mini ou maxi d’un tableau de valeurs numériques mais plus rarement la 10ème plus petite valeur, la 10 000 000ème… Je vous présente ici une implémentation en VBA d’un algorithme tout en un, d’une rare simplicité qui sélectionne en une fraction de seconde la valeur du rang désiré.
Lire la suite

Approximer, en double précision, la loi normale gaussienne et son inverse

Je vous propose deux fonctions en VBA pour Access qui estiment la loi normale (ou loi de Laplace-Gauss) et son inverse en double précision. Pour rappel, Excel propose en standard ces fonctions (NORMDIST, NORMINV, NORMSDIST, NORMSINV) et des fonctions encore plus précises depuis Excel 2010 (NORM_DIST, NORM_INV, NORM_S_DIST, NORM_S_INV).

Courbe de Gauss
Lire la suite

Nombre de jours ouvrés sur une période

Combien y’a t’il de jours ouvrés (du lundi au vendredi) entre deux dates ? A cette question vieille comme le monde, on a eu droit à de nombreux algorithmes, parfois exacts mais rarement rapides.
Je vais vous expliquer le mien qui apparaît comme étant très efficient…
Lire la suite