# Filtrer une plage numérique sur un histogramme

> Prise en main de Range Plume : choisir une plage de prix, de surfaces ou de délais en voyant leur distribution, des données au segment réglé.

- Language: French
- Web page: https://plumevisuals.com/fr/tutoriels/filtrer-une-plage-numerique
- Published: 2026-10-01
- Visual: Range Plume, technical reference: https://plumevisuals.com/ai/visuals/range-pulse.md
- If an option name in this tutorial differs from the technical reference, the reference is right (it is generated from the visual's code).

## En bref

- **Ce que fait le visuel.** Range Plume est un segment (un visuel qui sert à filtrer le reste de la page) pour les colonnes de **nombres** : prix, surface, âge, délai… Il dessine l'**histogramme** de la colonne (combien de lignes tombent dans chaque tranche de valeurs) et pose deux poignées dessus. Imaginez la règle graduée d'un magasin de chaussures, avec au-dessus le nombre de clients pour chaque pointure : vous voyez où se trouve le gros de la clientèle avant de choisir « du 38 au 42 ». Un encadré chiffre ce que la plage retient : nombre de lignes, part du total, médiane.
- **Quand l'utiliser :**
  - filtrer des annonces, des commandes ou des clients par tranche de prix, de montant ou d'âge ;
  - écarter les valeurs extrêmes d'une analyse en un clic ;
  - proposer des tranches métier nommées (« Studio », « Familial »…) ★ ;
  - savoir tout de suite combien de lignes et quelle part du chiffre d'affaires la plage garde.
- **Quand préférer autre chose :** pour cocher des valeurs précises dans une liste (catégories, ou plusieurs tranches non contiguës), prenez Bar Slicer Plume. Pour des **dates**, prenez Period Plume ou Date Picker Plume (voir le tableau ci-dessous).
- **À la fin, vous saurez :**
  - préparer une colonne numérique et une mesure de comptage ;
  - régler l'histogramme, les poignées et les préréglages ;
  - lire l'encadré d'impact de la plage ;
  - créer des tranches nommées ★ ;
  - corriger les problèmes les plus fréquents (colonne refusée, barres toutes égales, lenteur).
- **Ce qu'il vous faut :** Power BI Desktop (version récente), le visuel Range Plume installé (voir [les bases communes](/fr/tutoriels/bien-demarrer-visuels-plume)), une colonne de type **nombre** (entier ou décimal).

**Range, Period ou Date Picker : lequel des trois segments choisir ?**

| Votre besoin | Segment à choisir | Pourquoi |
|---|---|---|
| Filtrer des **nombres** entre un minimum et un maximum (prix, surface, âge, délai) | **Range Plume** | Il lit une colonne numérique et montre la distribution des valeurs (histogramme). Il refuse les dates. |
| Choisir une **période** en voyant la **tendance** d'une mesure, avec des périodes **glissantes** (« 30 derniers jours » qui se recale chaque jour) et une comparaison à N-1 ★ | **Period Plume** | Il dessine une frise de la mesure dans le temps et envoie des filtres de dates relatifs. Il accepte aussi des données mensuelles ou annuelles. |
| Choisir des **jours précis dans un calendrier** : une date, une semaine, un mois, plusieurs dates ★, ou seulement certains jours (vendredis, fins de mois), avec les jours sans données grisés | **Date Picker Plume** | Il affiche un vrai calendrier mois par mois et des règles de dates sélectionnables. Ses raccourcis envoient des dates fixes. |

## Les données à fournir

**La forme attendue.** Range Plume reçoit **une ligne par valeur distincte** de la colonne à filtrer. Si 12 annonces coûtent exactement 185 000 €, le visuel reçoit une seule ligne « 185 000 », accompagnée du nombre d'annonces concernées. D'où trois éléments :

- **une colonne numérique** : c'est elle qui sera filtrée. Ce doit être une **colonne** (une donnée stockée ligne par ligne dans une table), pas une **mesure** (un calcul DAX fait à la volée, voir le [glossaire](/fr/tutoriels/bien-demarrer-visuels-plume#glossaire)), car Power BI ne sait filtrer que des colonnes ;
- **une mesure de comptage** (`COUNTROWS`) : elle dit combien de lignes ont chaque valeur. Sans elle, chaque valeur distincte compte pour 1 et les barres de l'histogramme sont fausses ;
- **une mesure additive** facultative (somme d'un montant, d'un volume) : l'encadré dira quelle part de ce total la plage retient.

**Jeu de données d'exemple** : 12 annonces immobilières fictives en Gironde, table `Annonces`.

| Ville | Pièces | Surface (m²) | Prix |
|---|---|---|---|
| Bordeaux | 2 | 45 | 215000 |
| Bordeaux | 3 | 68 | 312000 |
| Bordeaux | 4 | 92 | 445000 |
| Mérignac | 3 | 72 | 289000 |
| Mérignac | 5 | 118 | 468000 |
| Pessac | 2 | 41 | 172000 |
| Pessac | 4 | 88 | 335000 |
| Talence | 1 | 24 | 128000 |
| Talence | 3 | 63 | 258000 |
| Bègles | 4 | 95 | 318000 |
| Bègles | 6 | 160 | 590000 |
| Arcachon | 5 | 140 | 1150000 |

Le même jeu, prêt à coller dans **Modélisation › Nouvelle table** :

```dax
Annonces =
DATATABLE (
    "Ville", STRING,
    "Pièces", INTEGER,
    "Surface (m²)", INTEGER,
    "Prix", INTEGER,
    {
        { "Bordeaux", 2, 45, 215000 },
        { "Bordeaux", 3, 68, 312000 },
        { "Bordeaux", 4, 92, 445000 },
        { "Mérignac", 3, 72, 289000 },
        { "Mérignac", 5, 118, 468000 },
        { "Pessac", 2, 41, 172000 },
        { "Pessac", 4, 88, 335000 },
        { "Talence", 1, 24, 128000 },
        { "Talence", 3, 63, 258000 },
        { "Bègles", 4, 95, 318000 },
        { "Bègles", 6, 160, 590000 },
        { "Arcachon", 5, 140, 1150000 }
    }
)
```

**Les mesures à créer** (**Modélisation › Nouvelle mesure**, une mesure à la fois) :

```dax
// Compte les lignes de la table Annonces dans le contexte courant :
// pour la valeur 185 000, il renvoie le nombre d'annonces à ce prix.
// À glisser dans « Nombre de lignes (poids) ».
Nb annonces = COUNTROWS ( Annonces )

// Additionne les prix : c'est la mesure « additive » dont l'encadré
// affichera la part retenue par la plage. À glisser dans « Mesure (impact) ».
Volume (prix cumulés) = SUM ( Annonces[Prix] )

// Facultatif : une mesure à afficher dans une carte à côté du segment.
// Elle suit la plage choisie dans Range Plume.
Prix médian = MEDIAN ( Annonces[Prix] )

// Facultatif : part des annonces gardées par la plage.
// REMOVEFILTERS retire le filtre posé sur la colonne Prix
// pour obtenir le total « sans plage » au dénominateur.
Part des annonces =
DIVIDE (
    [Nb annonces],
    CALCULATE ( [Nb annonces], REMOVEFILTERS ( Annonces[Prix] ) )
)
```

**Les pièges de préparation**

- **Type de colonne.** Seules les colonnes **Nombre entier** ou **Nombre décimal** entrent dans la zone **Champ numérique**. Une colonne de texte (« 215 000 € » saisi comme texte) ou de dates est refusée. Vérifiez le type dans **Vue Tableau › Outils de colonne › Type de données**.
- **Trop de valeurs distinctes.** Le visuel charge au plus **100 000 valeurs distinctes**. Des montants avec centimes en créent vite des dizaines de milliers. Filtrez plutôt une colonne arrondie (colonne calculée) :

  ```dax
  // -3 arrondit au millier, 0 à l'unité, 1 au dixième
  Prix arrondi = ROUND ( Annonces[Prix], -3 )
  ```

- **Valeurs vides ou poids nul.** Les valeurs dont la mesure de comptage est vide ou égale à 0 sont ignorées.
- **Des valeurs négatives ?** Elles sont acceptées par le curseur, mais l'échelle logarithmique ne s'applique qu'aux valeurs positives, et les **Plages personnalisées ★** ne savent pas écrire de borne négative.

## Pas à pas : votre premier Range Plume en 10 minutes

1. Dans **Modélisation › Nouvelle table**, collez le code `DATATABLE` de la partie [« Les données à fournir »](#les-donnees-a-fournir) et validez. La table `Annonces` apparaît dans le volet **Données** avec 12 lignes.
2. Sélectionnez la table `Annonces`, puis dans **Modélisation › Nouvelle mesure**, créez `Nb annonces` et `Volume (prix cumulés)`. Les deux mesures apparaissent sous la table, avec une icône de calculatrice.
3. Dans le volet **Visualisations**, cliquez sur l'icône de **Range Plume**. Un cadre vide s'ajoute à la page, avec ses zones de champs.
4. Glissez la colonne `Prix` dans la zone **Champ numérique**. L'histogramme apparaît avec deux poignées, les cases **Minimum** et **Maximum**, des boutons de préréglages et l'encadré d'impact. Un petit ⓘ signale qu'il manque la mesure de comptage.
5. Glissez `Nb annonces` dans **Nombre de lignes (poids)**. Le ⓘ disparaît : la hauteur des barres est maintenant le vrai nombre d'annonces.
6. Glissez `Volume (prix cumulés)` dans **Mesure (impact)**. L'encadré affiche aussi la part du volume retenue.
7. Dans le volet **Format**, carte **Format des nombres** : réglez **Unités** sur *Milliers*, puis tapez ` €` (une espace, puis le symbole) dans **Suffixe (ex. €)**. Les valeurs se lisent « 250 k € ».
8. Carte **Impact de la plage** : tapez `annonces` dans **Nom des lignes (ex. commandes)**. L'encadré parle maintenant d'« annonces » au lieu de « lignes ».

9. Ajoutez à côté un visuel **Carte** natif de Power BI avec la mesure `Nb annonces`. Elle affiche 12.
10. Dans Range Plume, tapez `150k` dans la case **Minimum**, validez avec **Entrée**, puis `350k` dans **Maximum** et **Entrée**. Le filtre s'applique : la carte affiche 7, l'encadré indique 7 annonces retenues (58 % des lignes) et environ 41 % du volume.

11. Cliquez sur **Effacer** dans l'en-tête du visuel. Le filtre est retiré : la carte revient à 12.

## En cas de problème

| Ce que vous voyez | Cause probable | Solution |
|---|---|---|
| La colonne n'entre pas dans **Champ numérique** | La colonne est de type texte ou date | Changez son type en nombre (Power Query ou **Outils de colonne › Type de données**), ou créez une colonne calculée numérique |
| Les barres ont toutes la même hauteur, ou un ⓘ dans l'encadré | La zone **Nombre de lignes (poids)** est vide | Ajoutez une mesure `COUNTROWS` |
| Icône d'avertissement « The visual loads at most 100,000 values… » / visuel lent | Trop de valeurs distinctes (montants avec centimes) | Filtrez une colonne arrondie |
| Histogramme écrasé sur la gauche | Quelques valeurs très élevées | **Échelle horizontale** *Logarithmique* ou **Hauteur des barres** *Racine* |
| L'échelle ne commence pas à 0 | Elle suit les données | Remplissez **Borne minimale imposée** / **Borne maximale imposée** |
| Des valeurs au-delà d'une poignée restent dans le rapport | La poignée est en bout d'échelle et **Bornes ouvertes aux extrémités** est activé | Désactivez ce réglage |
| Un préréglage ne suit plus les nouvelles données | Les préréglages sont envoyés comme une plage fixe | Cliquez de nouveau sur le bouton après l'actualisation |
| Une saisie est signalée comme non reconnue | Texte mal formé | Tapez un nombre simple (« 250000 ») |
| Un filigrane « Aperçu premium » s'affiche | **Plages personnalisées ★**, un style, une palette ou un Thème JSON ★ sans clé valide | Videz le réglage ★ ou collez une clé (partie commune) |

## À retenir

- Une colonne numérique et une mesure `COUNTROWS` suffisent pour un histogramme exact.
- Une valeur distincte = une ligne reçue : arrondissez les colonnes trop précises.
- Les préréglages et l'encadré d'impact disent tout de suite ce que la plage retient.
- Les préréglages sont figés au clic ; **Bornes ouvertes aux extrémités** garde les valeurs au-delà d'une poignée en bout d'échelle.
- Pour des dates, prenez Period Plume (périodes, tendance) ou Date Picker Plume (calendrier).

## Pour aller plus loin

- [Range Plume : 9 cas pratiques (tranches nommées, valeurs extrêmes…)](/fr/tutoriels/range-plume-cas-pratiques) : des recettes pour les besoins courants.
- [Range Plume : tous les champs et réglages expliqués](/fr/tutoriels/range-plume-champs-et-reglages) : chaque zone de champ et chaque réglage.
- [Bien démarrer avec les visuels Plume](/fr/tutoriels/bien-demarrer-visuels-plume) : installation, licence, styles et réglages communs à tous les visuels.
- La fiche du visuel : [Range Plume](/fr/visuels/range-pulse). Une question : [support](/fr/support).
