5
(2)

Union de tables/matrices

Fonctions ASSEMB.V/ASSEMB.H

Rôle : Consolider/combiner/empiler des tables/matrices verticalement ou horizontalement.

Disponibilité

  • Windows : 2208 (build 15601)
  • Mac : 16.65 (build 220911)
  • Web : introduit le 15 septembre 2022
  • iOS : 2.65 (build 220905)
  • Android : 16.0.15629

Syntaxe

=ASSEMB.V(Matrice1 [; Matrice2][;...Matrice254])
=ASSEMB.H(Matrice1 [; Matrice2][;...Matrice254])

Matrice1 à 254 : Tables / matrices à associées (Acceptent les références 3D), valeurs scalaires (Numérique, alphanumérique, booléen).

La matrice résultante correspondra à la matrice de plus grandes dimensions pour la dimension non empilée (pour que toutes les valeurs « tiennent »). Les éléments manquants des matrices plus petites seront remplacés par #N/A.

Exemple 1

=ASSEMB.H("aa";10;VRAI;C10;SEQUENCE(;3);B4:C4)
Excel Fonction ASSEMB

Exemples 2 & 3

Excel : Fonctions de manipulation des matrices
Exemple de la fonction ASSEMB.V

Formule 2 :

  • La matrice la plus large est celle à 3 colonnes (matrice bleu).
  • On va empiler avec elle 2 matrices verticalement, la matrice verte de 2 colonnes et une constante matricielle de 2 colonnes).
  • Excel complète les éléments manquants de ces 2 dernières matrices avec des #N/A.

Formule 3 :

  • On masque les #N/A avec la fonction SIERREUR.

Exemple 4

Objectif : On veut consolider les résultats de deux filtres (Sexe="F") appliqués sur deux bases de données (bleu et verte).

Excel : Fonctions de manipulation des matrices
Exemple de la fonction ASSEMB.V
=ASSEMB.V(FILTRE(A2:C5;C2:C5="F");FILTRE(E2:G4;G2:G4="F"))

Pourquoi ne pas simplement positionner les fonctions FILTRE l'une au-dessus de l'autre ?

Si le nombre de réponse du 1er filtre (du haut) change, on aura alors des lignes vides (s’il y a moins de réponse) ou l’erreur #PROPAGATION ! (s’il y a plus de réponse car butant sur la 2eme fonction FILTRE).

Solution de remplacement pour ASSEMB.H

=CHOISIR({1.2};B2:B4;D2:D4) <=> =ASSEMB.H(B2:B4;D2:D4)

Transformation de la table/matrice

Passage d'une table/matrice 2D en 1D (DANSLIGNE/DANSCOL)

Objectif : Passer une table/matrice ayant une dimension Ligne et une dimension colonne (2D) en une Table/matrice n’ayant plus qu’une dimension soit ligne ou soit colonne (1D).

Disponibilité

  • Windows : 2208 (build 15601)
  • Mac : 16.65 (build 220911)
  • Web : introduit le 15 septembre 2022
  • iOS : 2.65 (build 220905)
  • Android : 16.0.15629

Syntaxe

=DANSLIGNE (Array [; Ignore] [; Scan_by_column])
=DANSCOL  (Array [; Ignore] [; Scan_by_column])

Array : La table / matrice (Accepte les références 3D).

Ignore : Choix des valeurs à conserver ou ignorer

  • [0] => On garde les valeurs vides (remplacer par 0) et les valeurs d’erreurs.
  •  1  => Les valeurs vides sont ignorées (non récupérées).
  •  2  => Les valeurs d’erreurs sont ignorées (non récupérées).
  •  3 => Les valeurs vides et d’erreurs sont ignorées (non récupérées).

Scan_by_column : Au lieu de d’extraire les valeurs ligne par ligne, le faire colonne par colonne.

Remarque :
Superbe traduction de Microsoft de TOROW/TOCOL qui devient DANSLIGNE*DANSCOL.
Perso j’aurais pris ENLIGNE/ENCOL 😊.

Exemples 1, 2 & 3

Excel : Fonctions de manipulation des matrices
Fonctions DANSLIGNE-DANSCOL

Exemple 4

Objectif : Dépivoter un tableau pour l’exploiter comme base de données d’un TCD par exemple (Cas classique).

Tableau à dépivoter

Excel : Fonctions de manipulation des matrices

Résultat

Excel : Fonctions de manipulation des matrices
=ASSEMB.V({"Produits"."Mois"."Qt"};ASSEMB.H(INDEX(A2:A4;DANSCOL(SEQUENCE(3)*1/(B2:D4<>"");2));INDEX(B1:D1;DANSCOL(SEQUENCE(;3)*1/(B2:D4<>"");2));DANSCOL(B2:D4;1)))

Le résultat est constitué de 4 matrices empilées :

  • Les titres de colonnes :
    {"Produits"."Mois"."Qt"}
  • La liste des produits :
    INDEX(A2:A4;DANSCOL(SEQUENCE(3)*1/(B2:D4<>"");2))

>>>Matrice des positions des lettres produits correspondantes :
SEQUENCE(3)*1/(B2:D4<>"")

Excel : Fonctions de manipulation des matrices
  • La liste des mois :
    INDEX(A2:A4;DANSCOL(SEQUENCE(;3)*1/(B2:D4<>"");2))

>>>Matrice des positions des noms des mois correspondantes :
SEQUENCE(;3)*1/(B2:D4<>"")

Excel : Fonctions de manipulation des matrices

Pourquoi le 1/ ?

INDEX(A2:A4;DANSCOL(SEQUENCE(3)*(B2:D4<>"");2)) renvoie 0 pour les cellules vides et INDEX renvoie alors la première valeur de la liste ! On a utilisé l'inversion 1/ pour transformer les FAUX (0) de B2:D4 <> "" en #DIV/0 ! ignorés via l'argument Ignore de DANSCOL.

  • La liste des Qt : DANSCOL(B2:D4;1)

Passage d'une table/matrice 1D en 2D (ORGA.LIGNES/ORGA.COLS)

Rôle : Faire l’inverse des précédentes fonctions DANSLIGNE/DANSCOL.
>Avec ORGA.LIGNES, on remplit la nouvelle matrice ligne/ligne.
>Avec ORGA.COLS, on remplit la nouvelle matrice colonne par colonne.

Disponibilité

  • Windows : 2208 (build 15601)
  • Mac : 16.65 (build 220911)
  • Web : introduit le 15-Sep-2022
  • iOS : 2.65 (build 220905)
  • Android : 16.0.15629

Syntaxe

=ORGA.LIGNES (vector ; Wrap_count [; Pad_with])
=ORGA.COLS   (vector ; Wrap_count [; Pad_with])

Vector : Vecteur en français, une matrice n’ayant qu’une dimension (une ligne de valeurs ou une colonne de valeurs) sinon on lève une erreur. 
Wrap_count : Nombre de valeurs pour la nouvelle dimension (pour ORGA.LIGNES = Nbre de colonne, pour ORGA.COLS = Nbre de lignes).
Pad_with : Avec quoi remplir les éléments vides supplémentaires de la matrice à la place du #N/A par défaut.

Exemple 1

Excel : Fonctions de manipulation des matrices
  • Les valeurs vides sont converties en 0.
  • Les 6 valeurs laissent 2 éléments vides (en vert) dans la matrice 4×2.

Exemple 2

Objectif : Distribuer uniformément une valeur de départ (Cellule verte E1) sur une semaine entre 2 groupes A et B par paquet de 15.

Excel : Fonctions de manipulation des matrices
Fonctions ORGA.LIGNES-ORGA.COLS
=ORGA.LIGNES(ASSEMB.V(SEQUENCE(ENT(E1)/15;;;0)*15;ARRONDI.SUP(MOD(E1;15)/2;0);ARRONDI.INF(MOD(E1;15)/2;0));2;"")

On groupe 3 matrices.

  • Matrice 1 : Les paquets entiers de 15.
    L’argument 0 (pas) de SEQUENCE permet d’obtenir une matrice de 1 transformée en une matrice de 15 avec *15.
  • Matrice 2 et 3 : On répartit le reste entre les 2 groupes A et B.
    Les fonctions d’arrondis sont là pour obtenir des nombres entiers et gérer le cas où le reste est une valeur impaire.

Pourquoi faire 2 fonctions et non une seule détectant le sens de l'argument Vector ?

Pour permettre de choisir le sens de remplissage des données.
Exemple : D’une matrice verticale, obtenir une matrice 2 lignes x 3 colonnes.

Matrice de départ verticale

Excel : Fonctions de manipulation des matrices

ORGA.COLS : Wrap_count = 2 (lignes)

Excel : Fonctions de manipulation des matrices

ORGA.LIGNES : Wrap_count = 3 (colonnes)

Excel : Fonctions de manipulation des matrices

Diminuer la taille de la matrice

Fonctions PRENDRE et EXCLURE

Rôle : Renvoyer une matrice à partir d’une autre matrice dont on a sélectionné (PRENDRE)/ignoré (EXCLURE) les n premières/dernières lignes/colonnes.

Disponibilité

  • Windows : 2208 (build 15601)
  • Mac : 16.65 (build 220911)
  • Web : introduit le 15 septembre 2022
  • iOS : 2.65 (build 220905)
  • Android : 16.0.15629

Syntaxe

=PRENDRE(array ; [rows] [; columns])
=EXCLURE(array ; [rows] [; columns])

Array : Matrice de départ.
Rows : Nombre de lignes à prendre/exclure (Positif : A partir du début, Négatif : A partir de la fin, Non renseigné : toutes).
Columns : Nombre de colonnes à prendre/exclure (Positif : A partir du début, Négatif : A partir de la fin, Non renseigné : toutes).

Si Rows/Columns sont supérieurs au nombre de lignes/colonnes de la matrice de départ, c’est toutes les lignes/colonnes de la matrice de départ qui sont utilisées.

Exemple

Afficher le Top3 des étudiants (sans tenir compte des ex aequo).

=PRENDRE(TRIER(FILTRE(B2:C6;C2:C6>=GRANDE.VALEUR(C2:C6;3));2;-1);3)

La fonction FILTRE renvoie 4 réponses du fait de l’égalité entre Luc et Chantal (8).
PRENDRE ne gardera que les 3 premières réponses (le tri décroissant sur Notes est obligatoire car sinon on risquerait de supprimer Marie ou Paul avec le PRENDRE).

Excel : Fonctions de manipulation des matrices

Fonctions CHOISIRLIGNES et CHOISIRCOLS

Rôle : Renvoyer une matrice correspondant à une sélection de lignes/colonnes d’une matrice à partir de leurs positions.

Disponibilité

  • Windows : 2208 (build 15601)
  • Mac : 16.65 (build 220911)
  • Web : introduit le 15-Sep-2022
  • iOS : 2.65 (build 220905)
  • Android : 16.0.15629

Syntaxe

CHOISIRLIGNES (array ; row_num1 [; row_num2]…[; row_num253])
CHOISIRCOLS   (array ; row_num1 [; row_num2]…[; row_num253])

Array : Matrice de départ.
Row_num : Postions des éléments à prendre.

Exemple

=CHOISIRLIGNES(B1:D10;{1;3};5;1)

De la plage/matrice B1:B10, on sélectionne les lignes 1, 3, 5 et à nouveau 1.

  • On peut utiliser une constante matricielle.
  • On obtient une matrice de 4 lignes (et 3 colonnes) avec la ligne 1 en double en 1er et 4ème position.

On obtient #VALUE si la valeur absolue d’un des arguments row_num est nulle ou dépasse le nombre de lignes/colonnes de Array.

Augmenter la taille de la matrice

Fonction ETENDRE

Rôle : Agrandir une matrice sur une ou deux dimensions (ligne/colonne).

Disponibilité

  • Windows : 2208 (build 15601)
  • Mac : 16.65 (build 220911)
  • Web : introduit le 15 septembre 2022
  • iOS : 2.65 (build 220905)
  • Android : 16.0.15629

Syntaxe

=ETENDRE(array ; [rows] [ ; columns] [ ; pad_with])

Array : Matrice à étendre.
Rows : Nombre de lignes de la matrice finale (>= à celle de départ, si manquante correspondra à la valeur correspondante de Array.
Columns : Nombre de colonne de la matrice finale (>= à celle de départ, si manquante correspondra à la valeur correspondante de Array.
Pad_with :  Valeur unique de remplissage pour les nouvelles lignes/colonnes.

Exemple

Objectif : Consolider/combiner/empiler 2 tables/matrices verticalement n’ayant pas la même taille.

Excel : Fonctions de manipulation des matrices
=ASSEMB.V(B2:C5;ETENDRE(B8:B9;;2;"Manquante"))

ASSEMB.V (tout comme ASSEMB.H) va se baser sur la plus grande matrice et ajouter des  #N/A aux valeurs manquantes. Pour contrôler cela vu qu’elle ne possède pas d’argument Pad_with, on utilise celui de la fonction ETENDRE.

Merci pour votre attention bienveillante.

Article intéressant ?

Cliquez sur une étoile pour noter cet article !

Note moyenne 5 / 5. Nombre de votes : 2

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Nous sommes désolés que cet article ne vous ait pas été utile !

Améliorons cet article !

Dites nous comment nous pouvons améliorer cet article ?

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *