Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.84 KB | None | 0 0
  1. var months = ["March 2019 w/ Digital Rights Reviewer", "March 2019", "February 2019", "January 2019", "December 2018"]
  2.  
  3. function all() {
  4. var overview = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Overview")
  5. overview.clear();
  6.  
  7. var appRankings = {};
  8. perMonth("March 2019 w/ Digital Rights Reviewer", appRankings, 0, 1, 36, 10, 26, 21, 32)
  9. perMonth("March 2019", appRankings, 0, 1, 30, 10, 26, 21, -1)
  10. perMonth("February 2019", appRankings, 0, 1, 29, 16, 8, 26, -1 )
  11. perMonth("January 2019", appRankings, 1, 0, 29, 10, 16, 26, -1)
  12. perMonth("December 2018", appRankings, -1, 0, 19, 18, 7, -1, -1)
  13.  
  14. overview.clear();
  15. overview.appendRow(contact(["id", "name", "score"],months))
  16.  
  17. for (app in appRankings) {
  18. overview.appendRow(contact([app, appRankings[app]["name"], "Total"], appRankingValues(appRankings, app, "Total")));
  19. overview.appendRow(contact([app, appRankings[app]["name"], "DE"], appRankingValues(appRankings, app, "DE")));
  20. overview.appendRow(contact([app, appRankings[app]["name"], "PH"], appRankingValues(appRankings, app, "PH")));
  21. overview.appendRow(contact([app, appRankings[app]["name"], "TMYUI"], appRankingValues(appRankings, app, "TMYUI")));
  22. overview.appendRow(contact([app, appRankings[app]["name"], "DR"], appRankingValues(appRankings, app, "DR")));
  23. };
  24. }
  25.  
  26. function contact(arr1, arr2) {
  27. for (index in arr2) {
  28. arr1.push(arr2[index])
  29. }
  30. return arr1
  31. }
  32.  
  33. function appRankingValues(appRankings, app, score) {
  34. var values = []
  35. for (i in months) {
  36. if (appRankings[app][score]) {
  37. value = appRankings[app][score][months[i]];
  38. } else {
  39. value = appRankings[app][score]
  40. }
  41. values[i] = value
  42. }
  43. return values
  44. }
  45.  
  46.  
  47.  
  48. function findAppId(appRankings, appName) {
  49. for (app in appRankings) {
  50. if (appRankings[app]["name"].toLowerCase() == appName.toLowerCase()) {
  51. return app
  52. }
  53. }
  54. return appName
  55. }
  56.  
  57. function perMonth(sheetName, appRankings, idColumn, nameColumn, totalScore, deScore, phScore, tmyuiScore, drScore) {
  58. var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  59. var sheet = spreadsheet.getSheetByName(sheetName);
  60. sheet.setFrozenColumns(0);
  61. sheet.setFrozenRows(1);
  62. var rangeData = sheet.getDataRange();
  63.  
  64.  
  65. perMonthPerScore(appRankings, rangeData, idColumn, nameColumn, totalScore, sheetName, "Total")
  66. perMonthPerScore(appRankings, rangeData, idColumn, nameColumn, deScore, sheetName, "DE")
  67. perMonthPerScore(appRankings, rangeData, idColumn, nameColumn, phScore, sheetName, "PH")
  68. perMonthPerScore(appRankings, rangeData, idColumn, nameColumn, tmyuiScore, sheetName, "TMYUI")
  69. perMonthPerScore(appRankings, rangeData, idColumn, nameColumn, drScore, sheetName, "DR")
  70. }
  71.  
  72. function perMonthPerScore(appRankings, rangeData, idColumn, nameColumn, sortColumn, month, score) {
  73. if (sortColumn == -1) {
  74. return
  75. }
  76. Logger.log(month, rangeData.getCell(1, sortColumn).getValue())
  77. rangeData.sort({column:sortColumn, ascending:false})
  78.  
  79. var lastColumn = rangeData.getLastColumn();
  80. var lastRow = rangeData.getLastRow();
  81. var rangeValues = rangeData.getValues();
  82.  
  83. var lastValue = 1000
  84. var lastRank = 1
  85. var rank
  86. for ( j = 1 ; j < lastRow; j++){
  87. var name = rangeValues[j][nameColumn]
  88. var value = rangeValues[j][sortColumn -1] // sort columns start with index 1 !!
  89. if (value < lastValue) {
  90. rank = j
  91. lastRank = rank
  92. lastValue = value
  93. } else {
  94. rank = lastRank
  95. }
  96.  
  97. var appId
  98. if (idColumn == -1) {
  99. appId = findAppId(appRankings, name)
  100. } else {
  101. appId = rangeValues[j][idColumn]
  102. }
  103.  
  104. if (!appRankings[appId]) {
  105. appRankings[appId] = {}
  106. }
  107. if (!appRankings[appId][score]) {
  108. appRankings[appId][score] = {}
  109. }
  110. appRankings[appId][score][month] = rank
  111. appRankings[appId]["name"] = name
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement