Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser le retour matricielle

5 réponses
Avatar
GOWAP
Bonjour,

Je cherche a exploité avec les fonctions Excel (et non pas en Macro VB) la
fonction "SI" matricielle, qui me renvois du texte.

Par exemple

A1=t1 ; B1 =t2 ; C1=t3
A2=0 ; B2=1 ; C2=0
A3=1 ; B3=0 ; C3=1

l'idée est d'obtenir le texte suivant les lignes 2 = "t2" et 3 = "t1;t3".
C'est à dire, les titres des colonnes qui ont une valeurs numérique non nul.

Avec la fonction =SI(A2:C2<>0;A1:C1) sous forme matriciel, j'obtiens (dans
l'assitant)
Test_logique : A2:C2<>0 = {Vrai\faux\Vrai}
Valeur_si_vrai : A1:C1 = {\"t1"\"t2"\"t3"}
Valeur_si_faux : ""
Resultat : {""\"t2"\""}

Comment utilisé le résultat de cette fonctionne matricielle pour l'avoir
sous forme de texte ? (résultat dans une seul cellule).


Merci,
GOWAP

5 réponses

Avatar
Tatanka
Salut,

Essaie cette fonction personnalisée.
Colle :

Function Liste(plage As Range) As String
v = ""
For Each c In plage
i = i + 1
If c = 1 Then v = v & ";" & "t" & i
Next c
If Len(v) = 0 Then Liste = v Else Liste = Mid(v, 2, Len(v) - 1)
End Function

dans un module standard, entre la formule =liste(a2:c2) en D2
et recopie vers le bas.

Serge



"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:
Bonjour,

Je cherche a exploité avec les fonctions Excel (et non pas en Macro VB) la fonction "SI" matricielle, qui me renvois du texte.

Par exemple

A1=t1 ; B1 =t2 ; C1=t3
A2=0 ; B2=1 ; C2=0
A3=1 ; B3=0 ; C3=1

l'idée est d'obtenir le texte suivant les lignes 2 = "t2" et 3 = "t1;t3".
C'est à dire, les titres des colonnes qui ont une valeurs numérique non nul.

Avec la fonction =SI(A2:C2<>0;A1:C1) sous forme matriciel, j'obtiens (dans l'assitant)
Test_logique : A2:C2<>0 = {VraifauxVrai}
Valeur_si_vrai : A1:C1 = {"t1""t2""t3"}
Valeur_si_faux : ""
Resultat : {"""t2"""}

Comment utilisé le résultat de cette fonctionne matricielle pour l'avoir sous forme de texte ? (résultat dans une seul cellule).


Merci,
GOWAP




Avatar
GOWAP
Merci de la réponse,

mais j'ai bien précisé "sans VB", seulement avec les fonctions de bases.

Pourquoi ?
car si la fonction "SI" retourne une matrice de cellules, c'est qu'il doit
bien y avoir une possibilité de l'exploiter.

Je suis intérésé par le traitement matricielle avec les macros de base.

Merci,
GOWAP


"Tatanka" a écrit dans le message de news:

Salut,

Essaie cette fonction personnalisée.
Colle :

Function Liste(plage As Range) As String
v = ""
For Each c In plage
i = i + 1
If c = 1 Then v = v & ";" & "t" & i
Next c
If Len(v) = 0 Then Liste = v Else Liste = Mid(v, 2, Len(v) - 1)
End Function

dans un module standard, entre la formule =liste(a2:c2) en D2
et recopie vers le bas.

Serge



"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:

Bonjour,

Je cherche a exploité avec les fonctions Excel (et non pas en Macro VB)
la fonction "SI" matricielle, qui me renvois du texte.

Par exemple

A1=t1 ; B1 =t2 ; C1=t3
A2=0 ; B2=1 ; C2=0
A3=1 ; B3=0 ; C3=1

l'idée est d'obtenir le texte suivant les lignes 2 = "t2" et 3 = "t1;t3".
C'est à dire, les titres des colonnes qui ont une valeurs numérique non
nul.

Avec la fonction =SI(A2:C2<>0;A1:C1) sous forme matriciel, j'obtiens
(dans l'assitant)
Test_logique : A2:C2<>0 = {VraifauxVrai}
Valeur_si_vrai : A1:C1 = {"t1""t2""t3"}
Valeur_si_faux : ""
Resultat : {"""t2"""}

Comment utilisé le résultat de cette fonctionne matricielle pour l'avoir
sous forme de texte ? (résultat dans une seul cellule).


Merci,
GOWAP








Avatar
Tatanka
mais j'ai bien précisé "sans VB", seulement avec les fonctions de bases.
Je t'ai proposé une fonction personnalisée. Pourquoi ?

Parce que je n'ai pas trouvé de matricielle qui peut faire ça ;-)
M'est avis cependant que quelqu'un finira par en trouver une !

Serge

"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:
Merci de la réponse,

mais j'ai bien précisé "sans VB", seulement avec les fonctions de bases.

Pourquoi ?
car si la fonction "SI" retourne une matrice de cellules, c'est qu'il doit bien y avoir une possibilité de l'exploiter.

Je suis intérésé par le traitement matricielle avec les macros de base.

Merci,
GOWAP


"Tatanka" a écrit dans le message de news:
Salut,

Essaie cette fonction personnalisée.
Colle :

Function Liste(plage As Range) As String
v = ""
For Each c In plage
i = i + 1
If c = 1 Then v = v & ";" & "t" & i
Next c
If Len(v) = 0 Then Liste = v Else Liste = Mid(v, 2, Len(v) - 1)
End Function

dans un module standard, entre la formule =liste(a2:c2) en D2
et recopie vers le bas.

Serge



"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:
Bonjour,

Je cherche a exploité avec les fonctions Excel (et non pas en Macro VB) la fonction "SI" matricielle, qui me renvois du texte.

Par exemple

A1=t1 ; B1 =t2 ; C1=t3
A2=0 ; B2=1 ; C2=0
A3=1 ; B3=0 ; C3=1

l'idée est d'obtenir le texte suivant les lignes 2 = "t2" et 3 = "t1;t3".
C'est à dire, les titres des colonnes qui ont une valeurs numérique non nul.

Avec la fonction =SI(A2:C2<>0;A1:C1) sous forme matriciel, j'obtiens (dans l'assitant)
Test_logique : A2:C2<>0 = {VraifauxVrai}
Valeur_si_vrai : A1:C1 = {"t1""t2""t3"}
Valeur_si_faux : ""
Resultat : {"""t2"""}

Comment utilisé le résultat de cette fonctionne matricielle pour l'avoir sous forme de texte ? (résultat dans une seul cellule).


Merci,
GOWAP












Avatar
Tatanka
Si tu ne tiens pas aux ; séparant les t1, t2 et t3, il y aurait cette chose :
=INDEX(SI(A2:C2<>0;$A$1:$C$1;"");1;1)&INDEX(SI(A2:C2<>0;$A$1:$C$1;"");1;2)&INDEX(SI(A2:C2<>0;$A$1:$C$1;"");1;3)
à valider par Ctrl+Maj+Entrée.

Serge



"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:
Merci de la réponse,

mais j'ai bien précisé "sans VB", seulement avec les fonctions de bases.

Pourquoi ?
car si la fonction "SI" retourne une matrice de cellules, c'est qu'il doit bien y avoir une possibilité de l'exploiter.

Je suis intérésé par le traitement matricielle avec les macros de base.

Merci,
GOWAP


"Tatanka" a écrit dans le message de news:
Salut,

Essaie cette fonction personnalisée.
Colle :

Function Liste(plage As Range) As String
v = ""
For Each c In plage
i = i + 1
If c = 1 Then v = v & ";" & "t" & i
Next c
If Len(v) = 0 Then Liste = v Else Liste = Mid(v, 2, Len(v) - 1)
End Function

dans un module standard, entre la formule =liste(a2:c2) en D2
et recopie vers le bas.

Serge



"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:
Bonjour,

Je cherche a exploité avec les fonctions Excel (et non pas en Macro VB) la fonction "SI" matricielle, qui me renvois du texte.

Par exemple

A1=t1 ; B1 =t2 ; C1=t3
A2=0 ; B2=1 ; C2=0
A3=1 ; B3=0 ; C3=1

l'idée est d'obtenir le texte suivant les lignes 2 = "t2" et 3 = "t1;t3".
C'est à dire, les titres des colonnes qui ont une valeurs numérique non nul.

Avec la fonction =SI(A2:C2<>0;A1:C1) sous forme matriciel, j'obtiens (dans l'assitant)
Test_logique : A2:C2<>0 = {VraifauxVrai}
Valeur_si_vrai : A1:C1 = {"t1""t2""t3"}
Valeur_si_faux : ""
Resultat : {"""t2"""}

Comment utilisé le résultat de cette fonctionne matricielle pour l'avoir sous forme de texte ? (résultat dans une seul cellule).


Merci,
GOWAP












Avatar
Sam
Bonjour,
on retrouve quelque chose de correcte si on sélectionne une matrice
"réponse" de 3 cellules dans laquelle on met ta formule.
mais le résultat est réparti dans 3 cellules.
Il faut peut être continuer à chercher du coté d'une somme de matrice (si ça
existe ?).
Cordialement
Michel

"GOWAP" <gowap@@fr.fm> a écrit dans le message de news:

Bonjour,

Je cherche a exploité avec les fonctions Excel (et non pas en Macro VB) la
fonction "SI" matricielle, qui me renvois du texte.

Par exemple

A1=t1 ; B1 =t2 ; C1=t3
A2=0 ; B2=1 ; C2=0
A3=1 ; B3=0 ; C3=1

l'idée est d'obtenir le texte suivant les lignes 2 = "t2" et 3 = "t1;t3".
C'est à dire, les titres des colonnes qui ont une valeurs numérique non
nul.

Avec la fonction =SI(A2:C2<>0;A1:C1) sous forme matriciel, j'obtiens (dans
l'assitant)
Test_logique : A2:C2<>0 = {VraifauxVrai}
Valeur_si_vrai : A1:C1 = {"t1""t2""t3"}
Valeur_si_faux : ""
Resultat : {"""t2"""}

Comment utilisé le résultat de cette fonctionne matricielle pour l'avoir
sous forme de texte ? (résultat dans une seul cellule).


Merci,
GOWAP