web-dev-qa-db-fra.com

Google Sheets Array Formula sur les cellules horizontales et verticales?

Dans une feuille, je fais des calculs horizontalement, mais je ne peux pas construire la formule array pour développer le calcul verticalement sur chaque ligne. Voir la fiche suivante:

https://docs.google.com/spreadsheets/d/1FbeoKhiJ3jqYXqfIgAK_tHXPZ_Z1Xrm33ulu9gomXuE/edit#gid=16063565

enter image description here

Sélectionnez l'onglet "arrayformula", et pointez sur la formule dans la colonne F

=COUNTA(B3:E3)

Comment puis-je appliquer arrayformula pour qu'il puisse s'étendre à toutes les lignes?

1
Riccardo
=ARRAYFORMULA(IF(LEN(A3:A), 
 MMULT(IFERROR(LEN(B3:E)/LEN(B3:E), 0), TRANSPOSE(COLUMN(B2:E2)^0)), ))

0

1
user0

En fouillant le Web, j'ai trouvé un Google Post qui dit:

Les fonctions d'agrégation telles que sum () ne produiront pas de résultats multicellules dans un wrapper arrayformula (). Pour calculer les totaux ligne par ligne des valeurs numériques des colonnes A à C à partir de la ligne 2, utilisez la simple addition au lieu de sum ():

= formule du tableau (A2: A + B2: B + C2: C)

Quand il y a beaucoup de colonnes, ou si le tableau à additionner ligne par ligne n'est pas une plage mais une autre expression de tableau, utilisez mmult ():

= matrice de formule (mmult (A2: C; transposée (signe (colonne (A2: C))))))

Voir la feuille illustrative préparée par Top Contributor APL + pour plus d'informations sur l'utilisation de mmult ().

Certaines autres fonctions d'agrégation qui ne sont pas propices à une utilisation dans une formule matricielle sont répertoriées ci-dessous avec des exemples de solutions permettant de générer des résultats ligne par ligne.

et () - utilisez l'arithmétique booléenne: = arrayformula (if ((A2: A = "OK") * * (B2: B> 10); "Prêt"; ""))

ou () - utilisez l'arithmétique booléenne: = arrayformula (if ((A2: A = "Oui") + + A2 (A: "peut-être"); "positif"; ""))

moyenne () - addition et utilisation: = formule de tableau ((A2: A + B2: B + C2: C)/3)

count () - utilise isnumber () et addition: = arrayformula (isnumber (A2: A) + isnumber (B2: B) + isnumber (C2: C))

counta () - n'utilise pas (isblank ()) et addition: = arrayformula (not (isblank (A2: A)) + non (isblank (B2: B)) + non (isblank (C2: C)))

concatenate () - utilise l'opérateur &:: = arrayformula (A2: A & B2: B & C2: C)

join () - utilise l'opérateur &:: array array (A2: A & "," & B2: B & "," & C2: C)

max () - utilise if (): = arrayformula (if (A2: A> B2: B; A2: A; B2: B))

min () - utilise if (): = arrayformula (if (A2: A <B2: B; A2: A; B2: B))

product () - utilise l'opérateur *: = arrayformula (A2: A * B2: B * C2: C)

2
Riccardo