Mettre à plat un tableau en mode "DATA"

Bonjour à tous,

je vais essayer d'être clair dans mes explications et ma demande.

Aujourd'hui, j'ai un planning pour les techniciens de mon équipe. Je voudrais mettre à plat ce planning. La difficulté se trouve au niveau des cellules, car certaines sont fusionnées.

En effet, pour mettre à plat mon tableau, j'ai tenté de faire une fonction Flatten incorporée dans une fonction Split. Mais la fusion de colonnes rend la mise à plat incohérente.

Je vous joins le fichier ci-dessous. Dans l'onglet "Horaires", vous retrouverez le tableau que je veux mettre à plat. Dans l'onglet test, vous retrouverez mon essai de Flatten sur la cellule A2.

Sur la ligne 1, vous retrouverez le format de colonage que j'aimerais avoir.

En gros, par exemple, les informations qu'il y a sur la zone A2:D6, il faudrait que je les aie sur la ligne 2. Dans la zone C3:C6, l'info en C3 doit être en E2, C4 doit être en F2, C5 doit être en G2 et C6 doit être en H2.

NB : De base, dans mon fichier original, la feuille "Horaires" est un importrange donc défusionner les cellules pour ensuite dupliquer dans chaque cellule l'information de base ne peut être une solution.

https://docs.google.com/spreadsheets/d/1guMyI3rZ9c0tlQLu8AbhzDF9NrTERiWN/edit?usp=sharing&ouid=10157..

Si vous avez besoin de renseignements complémentaires, n'hésitez pas.

Merci par avance de l'aide que vous pourrez m'apporter.

Bestla

Bonjour,

Je vois une solution, mais avec script donc assez embêtant à maintenir, modifier.

Si jamais personne ne vous trouve de solution avec des formules, ça peut être à envisager.

Bonjour Pierre,

Merci pour ce retour. Effectivement, si une solution peut être trouvée en passant par une formule plutôt qu'un script, ce serait préférable.

Cependant, si aucune n'est trouvée, je serais tout de même preneur du script.

Merci,

Bonjour,

Avant d'essayer d'optimiser les formules, est-ce bien les résultats souhaités dans l'onglet "Attendus ?" ?


https://docs.google.com/spreadsheets/d/1lKr2ODUQI_7DNs-iNAigY98FEM9fxi11/edit?usp=sharing&ouid=10037...

Bonjour Filoche,

Désolé pour le temps de réponse à ton post.

Effectivement, le résultat voulu est celui de ton onglet "attendu". J'ai juste "défusionner" les colonnes horaires.

Je te remercie,

Bonjour,

Voilà une version plus aboutie :

En onglet "Attendu" Q3 :

https://docs.google.com/spreadsheets/d/1-6KDvmbiaWi9qhWMRuXqXSvpzQpkP9so/edit?usp=sharing&ouid=10037...

=SI(R2="Tous";{query(query($A$3:$C;"select * where Col1 is not null");"select * where  Col2 >= DATE '"&TEXTE(R1;"yyyy-MM-dd")&"' and Col2 <= DATE '"&TEXTE(S1;"yyyy-MM-dd")&"' ";1)\query({$A$3:$C\arrayformula(to_Text(D3:D))};"select Col4 where  Col2  >= DATE '"&TEXTE(R1;"yyyy-MM-dd")&"' and Col2 <= DATE '"&TEXTE(S1;"yyyy-MM-dd")&"'";1)\query(query($A$3:$H;"select * where Col1 is not null");"select Col5,Col6,Col7,Col8 where  Col2 >= DATE '"&TEXTE(R1;"yyyy-MM-dd")&"' and Col2 <= DATE '"&TEXTE(S1;"yyyy-MM-dd")&"' ";1)};{query(query($A$3:$C;"select * where Col1 is not null");"select * where Col1 ='"&R2&"' and Col2 >= DATE '"&TEXTE(R1;"yyyy-MM-dd")&"' and Col2 <= DATE '"&TEXTE(S1;"yyyy-MM-dd")&"' ";1)\query({$A$3:$C\arrayformula(to_Text(D3:D))};"select Col4 where Col1 ='"&R2&"' and Col2  >= DATE '"&TEXTE(R1;"yyyy-MM-dd")&"' and Col2 <= DATE '"&TEXTE(S1;"yyyy-MM-dd")&"'";1)\query($A$3:$H;"select Col5,Col6,Col7,Col8 where Col1 ='"&R2&"' and Col2 >= DATE '"&TEXTE(R1;"yyyy-MM-dd")&"' and Col2 <= DATE '"&TEXTE(S1;"yyyy-MM-dd")&"' ";1)})

Cordialement,

Fil.

Hello,

Merci beaucoup pour cette solution,

Tout est OK

Ça c'est de la formule

Rechercher des sujets similaires à "mettre plat tableau mode data"