BYROW ne fonctionne pas comme je veux

Bonjour,

En C1:C4, j'ai mis des fonctions ETENDRE. Je cherche à faire la même chose avec BYROW :

=BYROW(A1:A4;LAMBDA(x;ETENDRE(x;;DECALER(x;;1);x)))

Ca me renvoie "#CALC!". Pouvez-vous corriger ?

Merci.

Daniel

17byrow.xlsx (11.39 Ko)

Bonjour à tous !

Une proposition alternative ?

=LET(
     m;MAP(A1:A4;B1:B4;LAMBDA(t;n;JOINDRE.TEXTE(";";;ETENDRE(t;;n;t))));
     FRACTIONNER.TEXTE(JOINDRE.TEXTE("|";;m);";";"|";;;"")
)

Bonsoir JFL , DanielC ,

Comme il n'y a pas le résultat souhaité, je ne suis pas certain d'avoir tout compris...

Cette formule ne le ferait-elle pas ? :=CHOISIRCOLS(SI(A1:G4="";"";A1:G4);1;3;4;5;6;7)

Bonjour à tous,

J'ai trouvé un contournement (plus compliqué) mais j'aurais aimé savoir pourquoi la formule ne fonctionnait pas.

Daniel

Bonsoir à tous de nouveau !

@mafraise : Hello !

Je pense que notre ami désire construire son tableau sur la base des colonnes A et B uniquement.

Bonsoir à tous de nouveau !

@DanielC : Hello !

....... j'aurais aimé savoir pourquoi la formule ne fonctionnait pas.

Les plages dynamiques nécessitent une taille constante. Si vous cliquez dans le tableau retourné par ma proposition, vous constaterez que la plage traitée est "normalisée".

@JFL,

Je suis lent à comprendre. Qu'est-ce que tu appelles une plage "normalisée" ?

Bonsoir à tous !

@JFL,

Je suis lent à comprendre. Qu'est-ce que tu appelles une plage "normalisée" ?

La matrice retournée dans votre exemple fait 4 x 5 (le nombre de colonnes / lignes est constant.)

J'ai donc mis toutes les valeurs de la colonne B à 5 et ça ne fonctionne pas. Elle ne fonctionne que si toutes les cellules de la colonne B sont égales à 1

Bonsoir à tous de nouveau !

Il est nécessaire d'avoir un délimiteur par dimension (ligne et colonne).

Par ailleurs, ne pas perdre de vue que la fonction BYROW retourne un tableau de x lignes sur UNE colonne.

Oui, c'est ça ! BYROW retourne un tableau de même dimension que le tableau original.

Merci !

Bonsoir à tous de nouveau !

Oui, c'est ça ! BYROW retourne un tableau de même dimension que le tableau original.

Pas nécessairement de même dimension que la plage originelle !

Exemple : Pour un BYROW de la plage A1:C15 vous obtiendrez un vecteur de 15 lignes (sur UNE colonne).

Bonjour à tous,

Une petite parenthèse en passant ...

@Daniel : Excel gère très mal les tableaux (contrairement à Google Sheets) et tu peux te retrouver avec une formule qui devrait fonctionner sur le papier mais qui va t'afficher une erreur sur Excel.

Pour avoir bien testé ce type de fonctions sur les 2 tableurs, je peux te dire combien Excel est frustrant avec ce type de fonctions et combien Sheets est un plaisir à côté

Pour ton problème, j'avais écris quelques formules pour tester, dont voici 3 exemple :

=BYROW(A1:A4;LAMBDA(j;MAP(SEQUENCE(1;OFFSET(j;;1));LAMBDA(i;j))))
=MAP(A1:A4;B1:B4;LAMBDA(i;j;MAP(SEQUENCE(1;j);LAMBDA(k;i))))
=MAP(A1:A4;B1:B4;LAMBDA(i;j;MAKEARRAY(1;j;LAMBDA(k;l;i))))

Aucune n'a fonctionné avec Excel alors que les 3 fonctionnent parfaitement avec Sheets

image

Cordialement,

Bonjour Sébastien, merci.

Oui, mais pfff, Google Sheets, c'est même pas payant !

Rechercher des sujets similaires à "byrow fonctionne pas comme veux"