TCD google sheets

Bonjour la communauté

je souhaite créer un tableau croise dynamique sur google Sheets mais je rencontre un problème, en effet je souhaite créer un TCD avec qlq colonne qui j'afficherai comme ligne, dans mon cas les colonne G jusque AG, j'arrive pas a les afficher en ligne, elles s'affichent par colonne et moi j'en ai besoin quelle s affichent par ligne ! pourriez vous m'aider

merci de votre aide

https://docs.google.com/spreadsheets/d/12rvy4EovuNBIpAkz8HHBc-fPSvOf0AIsp2AVi5ecqs4/edit#gid=0

Bonjour,

l'accès au fichier est refusé

pour partager ... https://www.sheets-pratique.com/fr/cours/partage

Bonjour

c'est fait je viens de le partager, merci

Pour afficher par ligne, il faudrait que ta base de données soit comme ceci

image

tu pourrais alors mettre ce que j'ai appelé type en ligne

Pour y arriver,

  • limite tes données en Feuille 1
  • dans une autre feuille, limite le nombre de colonnes de A à H, supprime au-delà
  • en A2 mets ceci
=QUERY(arrayformula(split(flatten( 'Feuille 1'!A2:A&"|"&'Feuille 1'!B2:B&"|"&'Feuille 1'!C2:C&"|"&'Feuille 1'!D2:D&"|"&'Feuille 1'!E2:E&"|"&'Feuille 1'!F2:F&"|"&'Feuille 1'!$G$1:$AG$1&"|"&'Feuille 1'!G2:AG);"|"));"where Col1 is not null")
  • remplis ta ligne 1 comme suit
image

tu pourras alors faire ton TCD

mais tes données sont nombreuses !!

ok je vais essayer de faire ca et je vais le tester

merci

Merci bcp, ca marche, c vrai que je ne peux pas afficher toutes les données dans mon TCD mais avec des filtre je pourrais afficher ce qui m'intersse

merci encore

Rebonjour

je reviens vers vous, enfaite y a des anomalies qui s'affichent dans des ligne (a partir de la ligne 24870 ) après application de la formule !

auriez vous une idée sur l'erreur svp ?!

J'ai identifie le problème, enfaite dans ma feuille 1 elle contient des données de de ce type #N/A, mais je ne sais pas ce que je dois faire

Il faut intervenir sur la qualité des données ! données mauvaises >> résultat mauvais !

image

tu peux masquer la mauvaise qualité des données en créant une feuille "propre" avec

=arrayformula(if(iserror('Feuille 1'!A1:AG);"NA";'Feuille 1'!A1:AG))

mais tu ne peux pas deviner ce qu'il devait y avoir !

Merci bcp,

Bonjour

j'espere que tu vas bien, je reviens par rapport a cette partie la

image

je souhaite avoir ton aide pour faire la même chose mais avec un script (codage apps script ) est il possible ?

d avance merci

dommage de faire en script ce qui peut être fait en formule !

on peut le faire mais je n'ai pas accès à ton fichier

accès donné

avec la formule le fichier est très lent,la formule est utilisée pour des data que j'importe ailleurs avec importRange

supprime la formule en A2 et ajoute ce script

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet()
  const [src, dst] = ['Feuille 1bis', 'Feuille 2'].map(sh => ss.getSheetByName(sh))
  const [headers, ...data] = src.getDataRange().getValues()
  let result = []
  data.forEach(r => r.forEach((c, i) => {
    if (i > 5) {
      result.push([r[0], r[1], r[2], r[3], r[4], r[5], headers[0, i], c])
    }
  }))
  dst.getRange(2, 1, result.length, result[0].length).setValues(result)
}

génial !! merci !!!

si tu n'as pas besoin des valeurs nulles, on peut alléger

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet()
  const [src, dst] = ['Feuille 1bis', 'Feuille 2'].map(sh => ss.getSheetByName(sh))
  const [headers, ...data] = src.getDataRange().getValues()
  let result = []
  data.forEach(r => r.forEach((c, i) => {
    if (i > 5 && c != 0) {
      result.push([r[0], r[1], r[2], r[3], r[4], r[5], headers[0, i], c])
    }
  }))
  dst.getRange(2, 1, result.length, result[0].length).setValues(result)
}

super merci encore

Rechercher des sujets similaires à "tcd google sheets"