Hola a todos! Qué tal estáis.
Espero que todo vaya bien!! y estéis disfrutando de las vacaciones!.
Hoy voy a comentar sobre cómo podemos programar la función Días.Lab de Excel en Excel Online utilizando typescript. Utilizaré el mismo ejemplo que usé con POWER QUERY:

como podéis observar lo que vamos a hacer es calcular los días laborables (teniendo en cuenta los festivos) en la columna D.
Para ello utilizaremos el siguiente script:
async function main(workbook: ExcelScript.Workbook) {
var MiHoja = workbook.getWorksheet("Hoja1");
var MiRangoRow = MiHoja.getUsedRange();
var FinRow = MiRangoRow.getRowCount();
//Título de columnna
MiHoja.getCell(0, 3).setValues([
["DÍAS LAB"]
]);
//Cálculo días laborales en columna D
for (let i = 1; i < FinRow; i++) {
MiHoja.getCell(i, 3).setFormulaLocal(
"=DIAS.LAB(A" + (i + 1) + ";" + "B" + (i + 1) + ";" + "I2" + ":" + "I" + FinRow );
}
//pasamos los datos a valores
let Info = MiHoja.getRangeByIndexes(0, 3, FinRow, 1).getValues();
for (let j = 1; j < FinRow; j++) {
let MiInfo = Info[j];
MiHoja.getCell(j, 3).setValues([[MiInfo[0]]]);
}
}
Como podéis observar, vamos a escribir directamente la fórmula en el código haciendo referencia a las celdas. Solo tenemos que ser cuidadosos a la hora de escribir la cadena y colocar las comillas correctamente.
El primer resultado nos mostrará la fórmula en la columna y esto puede que no sea lo que estemos buscando y lo que necesitemos sean los valores.
Para ello os he incluido una segunda parte en la que obtenemos los valores de la columna D y sobreescribimos de nuevo los datos y eliminamos así las fórmulas.
Es una script sencilla porque nos permite escribir de una forma sencilla la fórmula que queremos automatizar.
Y esto es todo!, espero que os sea de utilidad 🙂

Que sigáis disfrutando del verano!
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies