Concatenate automatique sur toutes les lignes

Bonjour,

J'ai un petit souci dont j'aimerais avoir votre avis. J'aimerais avec faire un concatenate sur toutes les lignes d'une colonne de manière automatique sans avoir à ajouter la formule de concatenate à chaque fois qu'une ligne est ajoutée.

Pour que ce soit plus clair voilà un fichier exemple : https://docs.google.com/spreadsheets/d/1OsBxZQtVOsmRd609wtNOUoI1Jn5nwuFJZP7Z5_u5rug/edit#gid=0

Dans la colonne A j'ai mis la formule qui doit être mise sur chaque ligne. J'ai pensé à une arrayformula mais j'ai l'impression que c'est impossible avec les concatenate. Une idée ?

Merci

Bonjour,

une solution, plus lourde, est de tout détailler

en A1

={"liste concaténée";arrayformula(B2:B&C2:C&D2:D&E2:E)}

Merci pour cette solution.

Ca aurait pu faire l'affaire, mais le souci étant qu'il y a autant de colonnes que de jours dans l'année dans le fichier original. Ca demanderait donc d'ajouter toutes les colonnes à la main dans la formule. Est-ce qu'il y aurait une solution qui permettrait d'avoir rapidement toutes les colonnes dans cet arrayformula ?

Merci

Non, je ne connais pas d'autres façon de faire car e effet il faut à la fois écrire la ligne, par exemple A1:Z1, mais aussi la colonne c qui ferait A1:A : Z1:Z qui n'a aucun sens !

Pour autant, un fois la formule écrite c'est fait, et pour l'écrire un petit programme tout simple fait l'affaire ! enfin pour un mois ...

=arrayformula(B2:B&C2:C&D2:D&E2:E&F2:F&G2:G&H2:H&I2:I&J2:J&K2:K&L2:L&M2:M&N2:N&O2:O&P2:P&Q2:Q&R2:R&S2:S&T2:T&U2:U&V2:V&W2:W&X2:X&Y2:Y&Z2:Z&AA2:AA&AB2:AB&AC2:AC&AD2:AD&AE2:AE&AF2:AF)

De toute façon, il risque d'y avoir un soucis si tu as 365 colonnes pour concaténer le tout sans dépasser la capacité d'une cellule. A vérifier.

Je vois alors je vais utiliser cette solution merci !

Est-il possible d'avoir le script ou autre petit programme qui t'a permis d'avoir cette suite de caractère ?

Je verrai pour le risque de dépassement du nombre de caractère dans la cellule.

merci

366 colonnes à partir de la 2

function formule() {
  var txt=''
  for (var i=2;i<=367;i++) {
    txt=txt+columnToLetter(i)+'2:'+columnToLetter(i)+(i!=376?"&":"")
  }
  Logger.log("=arrayformula("+txt+")")
};

function columnToLetter(column) {
  var temp, letter = '';
  while (column > 0) {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

ce qui fait

=arrayformula(B2:B&C2:C&D2:D&E2:E&F2:F&G2:G&H2:H&I2:I&J2:J&K2:K&L2:L&M2:M&N2:N&O2:O&P2:P&Q2:Q&R2:R&S2:S&T2:T&U2:U&V2:V&W2:W&X2:X&Y2:Y&Z2:Z&AA2:AA&AB2:AB&AC2:AC&AD2:AD&AE2:AE&AF2:AF&AG2:AG&AH2:AH&AI2:AI&AJ2:AJ&AK2:AK&AL2:AL&AM2:AM&AN2:AN&AO2:AO&AP2:AP&AQ2:AQ&AR2:AR&AS2:AS&AT2:AT&AU2:AU&AV2:AV&AW2:AW&AX2:AX&AY2:AY&AZ2:AZ&BA2:BA&BB2:BB&BC2:BC&BD2:BD&BE2:BE&BF2:BF&BG2:BG&BH2:BH&BI2:BI&BJ2:BJ&BK2:BK&BL2:BL&BM2:BM&BN2:BN&BO2:BO&BP2:BP&BQ2:BQ&BR2:BR&BS2:BS&BT2:BT&BU2:BU&BV2:BV&BW2:BW&BX2:BX&BY2:BY&BZ2:BZ&CA2:CA&CB2:CB&CC2:CC&CD2:CD&CE2:CE&CF2:CF&CG2:CG&CH2:CH&CI2:CI&CJ2:CJ&CK2:CK&CL2:CL&CM2:CM&CN2:CN&CO2:CO&CP2:CP&CQ2:CQ&CR2:CR&CS2:CS&CT2:CT&CU2:CU&CV2:CV&CW2:CW&CX2:CX&CY2:CY&CZ2:CZ&DA2:DA&DB2:DB&DC2:DC&DD2:DD&DE2:DE&DF2:DF&DG2:DG&DH2:DH&DI2:DI&DJ2:DJ&DK2:DK&DL2:DL&DM2:DM&DN2:DN&DO2:DO&DP2:DP&DQ2:DQ&DR2:DR&DS2:DS&DT2:DT&DU2:DU&DV2:DV&DW2:DW&DX2:DX&DY2:DY&DZ2:DZ&EA2:EA&EB2:EB&EC2:EC&ED2:ED&EE2:EE&EF2:EF&EG2:EG&EH2:EH&EI2:EI&EJ2:EJ&EK2:EK&EL2:EL&EM2:EM&EN2:EN&EO2:EO&EP2:EP&EQ2:EQ&ER2:ER&ES2:ES&ET2:ET&EU2:EU&EV2:EV&EW2:EW&EX2:EX&EY2:EY&EZ2:EZ&FA2:FA&FB2:FB&FC2:FC&FD2:FD&FE2:FE&FF2:FF&FG2:FG&FH2:FH&FI2:FI&FJ2:FJ&FK2:FK&FL2:FL&FM2:FM&FN2:FN&FO2:FO&FP2:FP&FQ2:FQ&FR2:FR&FS2:FS&FT2:FT&FU2:FU&FV2:FV&FW2:FW&FX2:FX&FY2:FY&FZ2:FZ&GA2:GA&GB2:GB&GC2:GC&GD2:GD&GE2:GE&GF2:GF&GG2:GG&GH2:GH&GI2:GI&GJ2:GJ&GK2:GK&GL2:GL&GM2:GM&GN2:GN&GO2:GO&GP2:GP&GQ2:GQ&GR2:GR&GS2:GS>2:GT&GU2:GU&GV2:GV&GW2:GW&GX2:GX&GY2:GY&GZ2:GZ&HA2:HA&HB2:HB&HC2:HC&HD2:HD&HE2:HE&HF2:HF&HG2:HG&HH2:HH&HI2:HI&HJ2:HJ&HK2:HK&HL2:HL&HM2:HM&HN2:HN&HO2:HO&HP2:HP&HQ2:HQ&HR2:HR&HS2:HS&HT2:HT&HU2:HU&HV2:HV&HW2:HW&HX2:HX&HY2:HY&HZ2:HZ&IA2:IA&IB2:IB&IC2:IC&ID2:ID&IE2:IE&IF2:IF&IG2:IG&IH2:IH&II2:II&IJ2:IJ&IK2:IK&IL2:IL&IM2:IM&IN2:IN&IO2:IO&IP2:IP&IQ2:IQ&IR2:IR&IS2:IS&IT2:IT&IU2:IU&IV2:IV&IW2:IW&IX2:IX&IY2:IY&IZ2:IZ&JA2:JA&JB2:JB&JC2:JC&JD2:JD&JE2:JE&JF2:JF&JG2:JG&JH2:JH&JI2:JI&JJ2:JJ&JK2:JK&JL2:JL&JM2:JM&JN2:JN&JO2:JO&JP2:JP&JQ2:JQ&JR2:JR&JS2:JS&JT2:JT&JU2:JU&JV2:JV&JW2:JW&JX2:JX&JY2:JY&JZ2:JZ&KA2:KA&KB2:KB&KC2:KC&KD2:KD&KE2:KE&KF2:KF&KG2:KG&KH2:KH&KI2:KI&KJ2:KJ&KK2:KK&KL2:KL&KM2:KM&KN2:KN&KO2:KO&KP2:KP&KQ2:KQ&KR2:KR&KS2:KS&KT2:KT&KU2:KU&KV2:KV&KW2:KW&KX2:KX&KY2:KY&KZ2:KZ&LA2:LA&LB2:LB&LC2:LC&LD2:LD&LE2:LE&LF2:LF&LG2:LG&LH2:LH&LI2:LI&LJ2:LJ&LK2:LK&LL2:LL&LM2:LM&LN2:LN&LO2:LO&LP2:LP&LQ2:LQ&LR2:LR&LS2:LS<2:LT&LU2:LU&LV2:LV&LW2:LW&LX2:LX&LY2:LY&LZ2:LZ&MA2:MA&MB2:MB&MC2:MC&MD2:MD&ME2:ME&MF2:MF&MG2:MG&MH2:MH&MI2:MI&MJ2:MJ&MK2:MK&ML2:ML&MM2:MM&MN2:MN&MO2:MO&MP2:MP&MQ2:MQ&MR2:MR&MS2:MS&MT2:MT&MU2:MU&MV2:MV&MW2:MW&MX2:MX&MY2:MY&MZ2:MZ&NA2:NA&NB2:NB&NC2:NC&)

c'est du délire, je pense qu'il faudrait reprendre le sujet autrement, se reposer la question, l'objectif

Ah oui en effet c'est un peu trop long...

Le but est d'avoir la colonne A du fichier tout le temps rempli même lorsqu'il y a des ajouts de lignes. Aujourd'hui il n'y a pas d'array formula donc à chaque ajout de ligne, quelqu'un doit passer pour ajouter la formule. Le but de l'arrayformula était d'ajouter automatiquement la formule dans la colonne A.

Reprécise ton besoin, non pas en terme de solution (comme concatener) mais en terme de fonctionnalité. Pourquoi aussi une colonne par jour ?

Google Sheets regorge de fonctions très efficaces, avec une structure différente de données on peut y arriver.

  • Si tu as moins de taches que de jours, bascule tes données lignes <=> colonnes et travaille avec cette base. Ce sera plus facile pour filtrer/créer un TdB ... même si pour la présentation tu peux aussi utiliser transpose dans une fonction.
  • Mais le mieux est de créer une table ou BdD simplifiée avec jour/tache/employé !

Je t'ai mis dans le fichier un embryon de ces 2 solutions.

Elles n'empêch pas ensuite la présentation que tu avais adoptée initialement (mais qui est mal adaptée à un filtrage)

Je vois, pour mieux comprendre le but du fichier, c'est un planning sous format gantt. D'où le fait que cette présentation soit nécessaire.

Il y a une infinité de tâches car chaque projet a un certain nombre de tâches qui sont à chaque fois différentes.

Le but de ce concaténer était de pouvoir filtrer sur toutes les lignes où se trouvent un employé. Donc chaque ligne avait un concaténer de toutes les colonnes sur cette ligne. Ensuite pour filtrer sur les lignes où est présent un employé il faut utiliser le filtre de la colonne A en utilisant la condition "Texte contient".

J'espère que c'est plus clair.

ok, merci pour l'explication

si tu veux travailler de façon professionnelle, fais une BdD comme proposée, ensuite il sera facile de présenter sur un gantt

Ca marche, possible d'avoir une piste lorsqu'on parle d'une BdD sous gsheet ?

EDIT : J'avais pas vu les onglets avec les solutions, je regarde ça de plus près, merci !

J'ai complété le fichier

BdD > Gantt issu de BdD > Gantt filtré sur un employé

Pour information j'ai utilisé une solution un peu plus simple en passant par un script qui vient coller la formule de concatenate sur toute la colonne avec un trigger OnEdit.

Donc la colonne est toujours à jour et le script prenant une seconde à faire, ça ne gène pas l'utilisation.

Rechercher des sujets similaires à "concatenate automatique toutes lignes"