Voici ma fonction pour importer une plage (6 colonnes et beaucoup de lignes) à partir de la feuille de calcul active et du sous-total de retour regroupés par la 5ème colonne.Script Google Spreadsheet pour renvoyer la table des sous-totaux
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getRange("A3:F");
var values = rows.getValues();
var expense = new Array();
var expensehead = new Array();
for (var i = 0, e = 0; i <= rows.getNumRows()-1; i++) {
if (values[i][0] instanceof Date & values[i][2] == "Expense") { // As long as col0 is a date and col2 == "Expense"
if (expense.hasOwnProperty(values[i][4])) {
// if the index "Expense Category" (col4) already exists in the array, add the amount (col 5) to the existing value
// Add amount (col 5) array expense where index is "Expense Category" (col4)
// For example Expense['Food'] = Expense['Food'] + 100; Emulating it like an associative array here
expense[values[i][4]]= expense[values[i][4]] + values[i][5];
}
else {
// The index "Expense Category" (col4) does already exists in the array, assign the amount (col 5) to the new index
// Add amount (col 5) array expense where index is "Expense Category" (col4)
// For example Expense['Food'] = 100; I have spet on food for the first time, hence it does not exist in the array already. Emulating it like an associative array here
expense[values[i][4]]= values[i][5];
//Since Javascript or Google script does not support iteration in an associative array,
//I am adding all indexes to another array expensehead so i will be able to pull out the info later.
expensehead.push(values[i][4])
}
}
}
Mon problème:
Je sais que l'utilisation de tableau est une mauvaise idée ici. Je veux utiliser quelque chose comme une paire de valeur de clé 2D ou un tableau associatif (ou un objet équivalent de feuille de calcul)
Quelqu'un peut-il me diriger vers un objet de feuille de calcul Google que je peux utiliser et également indiquer des méthodes par lesquelles peuvent retourner les 2 colonnes PS1: Je ne veux pas utiliser le rapport du tableau croisé dynamique car je vais introduire des filtres basés sur la date supplémentaires que le tableau croisé dynamique ne prend pas en charge. (Voir ci-dessous) PS2: Je suis un sous-total de la catégorie de dépenses et du sous-total. actuellement en utilisant la fonction intégrée "query" de la feuille de calcul (voir ci-dessous) mais je ne l'aime pas parce qu'elle ne peut pas me donner le total général des sous-totaux comme les Pivots = query (A2: F; "SELECT SUM (F), D où C comme 'Dépenses' ET A> = date '"& mkdate (I1) & "'ET A mkdate (L1) &"' grouper par D Trier par SUM (F) Étiquette SUM (F) 'Montant', D 'Catégorie de dépense' ") PS3 : J'ai envisagé d'utiliser une requête Sql comme ci-dessus et d'exécuter un tableau croisé dynamique pour générer des sous-totaux, mais je me sens comme un perdant. En outre, j'ai environ 1000 lignes dans les données qui le rend super lent.
Toute aide serait grandement appréciée.