Advertisement
RemcoE33

u/Sellum

Oct 17th, 2023
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const ss = SpreadsheetApp.getActiveSpreadsheet()
  2. const sheet1 = ss.getSheetByName("Sheet1")
  3. const sheet2 = ss.getSheetByName("Sheet2")
  4.  
  5. function calcFunction() {
  6.   //inputs
  7.  
  8.   //Flat is needed for the destructering part .getValues() returns a 2d array
  9.   const values = sheet1.getRange("B2:B21").getValues().flat()
  10.   const [b2, b3, b4, b5, b6 ,b7 ,b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21] = values
  11.  
  12.   var var15 = var14 + 1
  13.   var var7Size = var7Size0 + var14
  14.  
  15.   //Calc 1
  16.   var var16 = generateRandomInteger(1, 20);
  17.   var var16Modified = var16 + var1;
  18.   var var17 = cCheck(var2, var16);
  19.  
  20.   //Calc 2
  21.   var var18 = generateRandomInteger(1, 20);
  22.   var var18Modified = var18 + var6;
  23.   var var191 = sCheck(var3, var18Modified, var13);
  24.   var var19 = hCheck(var2, var191);
  25.   var var20 = ssCheck(var19);
  26.  
  27.   // Calc 3
  28.   var var21a = var21aFunction(var2, var16Modified, var4, var3, var18Modified);
  29.  
  30.   // Calc 4
  31.   var aDList = generateRandomIntegerList(var7, var15, var7Size);
  32.   var aDSum = sumRandomIntegerList(aDList);
  33.  
  34.   // Calc 5
  35.   var newVar71 = var7 + addVar71
  36.   var aDList1 = generateRandomIntegerList(newVar71, var15, var7Size);
  37.   var aDSum1 = sumRandomIntegerList(aDList1);
  38.  
  39.   // Calc 6
  40.   var addVar72 = addVar71 * 2
  41.   var newVar72 = var7 + addVar72
  42.   var aDList2 = generateRandomIntegerList(newVar72, var15, var7Size);
  43.   var aDSum2 = sumRandomIntegerList(aDList2);
  44.  
  45.   // Calc 7
  46.   var addVar73 = addVar71 * 3
  47.   var newVar73 = var7 + addVar73
  48.   var aDList3 = generateRandomIntegerList(newVar73, var15, var7Size);
  49.   var aDSum3 = sumRandomIntegerList(aDList3);
  50.  
  51.   // Calc 8
  52.   var var21a = (100 - var8) / 100
  53.  
  54.   // Calc 9
  55.   var var22a = generateRandomInteger(1, 20);
  56.   var var22aModified = var22a + var10;
  57.  
  58.   // Calc 10
  59.   var aDM = aDMFunction(var9, var22aModified, var11);
  60.   var aDMFactor = aDM / 100;
  61.  
  62.   // Calc 11
  63.   var addADList = generateRandomIntegerList(addVar7, 1, addVar7Size);
  64.   var addADSum = sumRandomIntegerList(addADList);
  65.  
  66.   // Calc 12
  67.   var resAddMulti = (100 - var12) / 100;
  68.  
  69.   // Calc 13
  70.   var adc0 = aDSum * var17
  71.   var adcf0 = adc0 + var5
  72.   var adcfs0 = adcf0 * var19
  73.   var adcfr0 = adcfs0 * var21a
  74.   var var9 = addADSum * aDMFactor
  75.   var var9R = var9 * resAddMulti
  76.   var tD = adcfr0 + var9R;
  77.  
  78.   var adc1 = aDSum1 * var17
  79.   var adcf1 = adc1 + var5
  80.   var adcfs1 = adcf1 * var19
  81.   var adcfr1 = adcfs1 * var21a
  82.   var tD1 = adcfr1 + var9R;
  83.  
  84.   var adc2 = aDSum2 * var17
  85.   var adcf2 = adc2 + var5
  86.   var adcfs2 = adcf2 * var19
  87.   var adcfr2 = adcfs2 * var21a
  88.   var adcfr2 = adcf2 * var21a
  89.   var tD2 = adcfr2 + var9R;
  90.  
  91.   var adc3 = aDSum3 * var17
  92.   var adcf3 = adc3 + var5
  93.   var adcfs3 = adcf3 * var19
  94.   var adcfr3 = adcfs3 * var21a
  95.   var adcfr3 = adcf3 * var21a
  96.   var tD3 = adcfr3 + var9R;
  97.  
  98.   // I don't know how you get the active range? Is this in sheet2? Of so:
  99.   const result = [[var20, var16Modified, var18Modified]] //and the rest
  100.  
  101.   //get dynamic the lenght of the colums from the 2d result array.
  102.   sheet2.getRange(sheet2.getLastRow() + 1, 1, 1, result[0].length).setValues(result)
  103.  
  104. }
  105.  
  106. function generateRandomInteger(min, max) {
  107.   // Generate a random decimal number between 0 (inclusive) and 1 (exclusive).
  108.   var randomNumber = Math.random();
  109.   // Scale the random number to fit the desired range.
  110.   randomNumber *= (max - min + 1);
  111.   // Round the random number down to the nearest integer.
  112.   randomNumber = Math.floor(randomNumber);
  113.   // Add the min value to adjust the range to the desired range.
  114.   randomNumber += min;
  115.   // Return the random integer.
  116.   return randomNumber;
  117. }
  118.  
  119. function generateRandomIntegerList(count, min, max) {
  120.   // Create an empty list to store the random integers.
  121.   var randomIntegerList = [];
  122.   // Generate a random integer for each item in the list.
  123.   for (var i = 0; i < count; i++) {
  124.     randomIntegerList.push(generateRandomInteger(min, max));
  125.   }
  126.   // Return the list of random integers.
  127.   return randomIntegerList;
  128. }
  129.  
  130.  
  131. function sumRandomIntegerList(randomIntegerList) {
  132.   // Initialize the sum variable.
  133.   var sum = 0;
  134.   // Iterate over the list of random integers and add them to the sum.
  135.   for (var i = 0; i < randomIntegerList.length; i++) {
  136.     sum += randomIntegerList[i];
  137.   }
  138.   // Return the sum of the random integers.
  139.   return sum;
  140. }
  141.  
  142. function cCheck(variable) {
  143.   if (variable === 20) return 2
  144.   return 1
  145. }
  146.  
  147. function var21aFunction(cellValue, variable1, variable2, variable3, variable4) {
  148.   if (cellValue === "Yes") {
  149.     if (variable1 >= variable2) {
  150.       return "Yes";
  151.     } else {
  152.       return "No";
  153.     }
  154.   } else {
  155.     if (variable3 >= variable4) {
  156.       return "Yes";
  157.     } else {
  158.       return "No";
  159.     }
  160.   }
  161. }
  162.  
  163. function aDMFunction(variable1, variable2, variable3) {
  164.   if (variable1 > variable2) {
  165.     return 100;
  166.   } else {
  167.     return variable3;
  168.   }
  169. }
  170.  
  171. function activeA2() {
  172.   // Get the Sheet2 spreadsheet.
  173.   var listStart = sheet1.getRange("B20").getValue();
  174.   sheet2.getRange("A1").offset(listStart, 0).activate();
  175.   SpreadsheetApp.getActiveSpreadsheet().getActiveRange().offset(listStart, 0);
  176. }
  177.  
  178. function startFunction() {
  179.   activeA2();
  180.   repeatAttack();
  181. }
  182.  
  183. function repeatAttack() {
  184.   var listSize = sheet1.getRange("B19").getValue();
  185.   for (var i = 0; i < listSize; i++) {
  186.     calcFunction();
  187.   }
  188. }
  189.  
  190. function clear() {
  191.   // Startrow 2 | Startcolumn 1 | NumberOfRows lastrow - 1 | NumberOfColumns 22
  192.   var range = sheet2.getRange(2,1,sheet.getLastRow() - 1, 22)
  193.   range.clearContent();
  194. }
  195.  
  196.  
  197. function sCheck(dc, var20, factor) {
  198.   if (dc > var20) {
  199.     return 1;
  200.   } else {
  201.     return factor / 100;
  202.   }
  203. }
  204. function ssCheck(factor) {
  205.   if (factor === 1) {
  206.     return "No";
  207.   } else {
  208.     return "Yes";
  209.   }
  210. }
  211. function hCheck(var2, factor) {
  212.   if (var2 === "Yes") {
  213.     return 1;
  214.   } else {
  215.     return factor;
  216.   }
  217. }
  218.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement