Tengo una hoja de Google que tiene 2 columnas llamadas fecha de start date de end date . mientras que alguna fecha tiene valores repetidos. Quiero encontrar cuántas entradas tienen los mismos valores. si 2 o más celdas tienen los mismos valores, aplique colores alternos.
Todo esto lo quiero lograr a través del script de la aplicación/script de Java para las hojas de Google.
por favor vea dos cifras
Figura 1 = Figura normal
Figura 2 = lo que quiero.
Hasta ahora, he probado diferentes métodos usando formato condicional asignando valor de columna a verdadero y falso. pero sin éxito todavía. cualquier ayuda será apreciada
Prueba esto en tu formato condicional
=MOD(ROUND(SUMPRODUCT(1/COUNTIF($A$2:$A2,$A$2:$A2)),0),2)=1Si desea menos precisión (por ejemplo, solo un minuto), deberá ajustar la fórmula con la ronda de esta manera
=MOD(ROUND(SUMPRODUCT(1/COUNTIF(round($A$2:$A2*60*24),round($A$2:$A2*60*24))),0),2)=1Esta implementación asume que las fechas son exactamente iguales, hasta el segundo. Por lo que veo en el ejemplo que muestras, los segundos varían en el start-date . Posibles modificaciones para ajustar estos problemas:
A2:A a B2:B . Esto supone que la end-date está en la columna B Simplemente cámbielo para adaptarlo a sus necesidades.crrArr[idx - 1] !== crrArr[idx] a Math.abs(crrArr(idx-1) - crrArr[idx] > 5000) por ejemplo.Code.gs const sS = SpreadsheetApp.getActiveSheet() function conditionalColors() { /* Filter the values to obtain true when the time changes */ const values = sS /* Evaluate end-date `B2:B` */ .getRange('A2:A') .getValues() .filter(n => n[0] !== '') .flat() .map(n => new Date(n).getTime()) /* Math.abs(crrArr[idx-1] - crrArr[idx]) > 5000 */ .map((n, idx, crrArr) => idx === 0 ? true : crrArr[idx-1] !== crrArr[idx]) /* defining the colors*/ const color1 = [204, 222, 188] const color2 = [238, 232, 170] let color = color1 /* Loop to change the color every time we have a true */ values.forEach((c, idx) => { if (c) { color = color === color1 ? color2 : color1 } /* In the example Start Date is in A column (A===1) */ /* And End Date in B Column */ sS.getRange(idx + 2, 1).setBackgroundRGB(...color) sS.getRange(idx + 2, 2).setBackgroundRGB(...color) }) } Ejemplo de resultado usando Math.abs (Aviso A6): 