J'essaie de créer une formule qui extrait les réponses d'un formulaire Google et les organise dans des lignes en corrélation avec le nom d'un client. Le nom est saisi manuellement et apparaît également dans une liste déroulante du formulaire. Ils doivent donc toujours correspondre.
J'ai utilisé =ARRAYFORMULA(IFERROR(VLOOKUP($A$3:$A,'Form Responses 1'!$B$2:$F, B2,FALSE ),""))
, où:
Dans l'exemple, j'ai mis en surbrillance les données dans les réponses au formulaire que j'essaye de faire apparaître pour chaque nom de la feuille "Liste en cours".
Essayez ceci: B3:
=ARRAYFORMULA(IFERROR(VLOOKUP($A$3:$A,SORT(FILTER({'Form Responses 1'!$B$2:$F$7,'Form Responses 1'!$A$2:$A$7},'Form Responses 1'!C2:C7<>""),6,0),B2,0)))
Faites glisser le remplissage vers la droite.
Il semble gros uniquement à cause du nom de votre feuille :( Sinon, il s’agit d’un simple filtre vide et d’un tri par A (horodatage)
Edit: formule simplifiée
Je ne vois pas de solution array formula pour cela. Voici une solution qui nécessite une formule par cellule sur la feuille "Liste courante".
Pour rechercher des numéros de téléphone de contact (colonne B de la liste actuelle):
=iferror(query('Form Responses 1'!$A:$F, "select C where B='" & $A3 & "' and C<>'' order by A desc limit 1 label C ''", 1))
La partie clé est la chaîne query
, qui est répétée ici pour des raisons de lisibilité:
select C
where B = '" & $A3 & "'
and C <> ''
order by A desc
limit 1
label C ''
Donc, nous sélectionnons l'entrée de C où
Le fait de marquer le résultat comme chaîne vide '' signifie que nous obtenons une sortie à cellule unique, comme vous le souhaitez. Le dernier paramètre de query
est le nombre de lignes d'en-tête dans les données source.
La formule ci-dessus peut être copiée en bas de la ligne afin que vous obteniez des numéros de téléphone pour tout le monde.
Pour les autres champs de texte (adresse, préférence pizza), la formule est ajustée en remplaçant C par une autre lettre (D ou E) à trois endroits.
Pour le dernier champ, qui n'est pas un texte mais une date, remplacez également la condition non vide C<>''
par F is not null
. (Le premier est utilisé pour le texte, le dernier pour les chiffres et les dates).
À titre de référence, il s'agit des données d'entrée dans les réponses de formulaire 1:
+--------------------+---------+--------------+-------------+--------------------+----------------------+
| Timestamp | Client | Contact | Address | Do you like pizza? | Party Date Preferred |
+--------------------+---------+--------------+-------------+--------------------+----------------------+
| 9/20/2017 13:06:36 | Joe | 555-555-5555 | 123 Main st | Yes | 9/30/2017 |
| 9/20/2017 13:07:00 | Bob | 555-111-1111 | | No | 10/10/2017 |
| 9/20/2017 13:07:17 | Joe | | | No | 10/27/2017 |
| 9/20/2017 13:07:43 | Jessica | 555-222-2222 | 700 Main St | Maybe | |
| 9/20/2017 13:07:51 | Jessica | | | | 9/29/2017 |
| 9/20/2017 13:08:50 | Jessica | 555-123-1234 | | | |
+--------------------+---------+--------------+-------------+--------------------+----------------------+
et voici la sortie:
+---------+--------------+-------------+--------------------+----------------------+
| | Contact | Address | Do you like pizza? | Party Date Preferred |
+---------+--------------+-------------+--------------------+----------------------+
| Bob | 555-111-1111 | | No | 10/10/2017 |
| Jessica | 555-123-1234 | 700 Main St | Maybe | 9/29/2017 |
| Joe | 555-555-5555 | 123 Main st | No | 10/27/2017 |
+---------+--------------+-------------+--------------------+----------------------+