Skip to content

Instantly share code, notes, and snippets.

@Influexcel
Last active May 4, 2024 09:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Influexcel/db80fe1e21955b7fc079c1c7ac937792 to your computer and use it in GitHub Desktop.
Save Influexcel/db80fe1e21955b7fc079c1c7ac937792 to your computer and use it in GitHub Desktop.
Influexcel
DESVIACION = LAMBDA(Real;Presupuesto;TEXTO(SI.ERROR((Real / Presupuesto) - 1; "---"); "0,00%"));;
PIVOTANDO = LAMBDA(OrigenFilas;OrigenColumnas;Valor;LET(Filas;UNICOS(OrigenFilas);Columnas;TRANSPONER(UNICOS(OrigenColumnas));Importes;SUMAR.SI.CONJUNTO(Valor;OrigenFilas;Filas;OrigenColumnas;Columnas);Cabecera;APILARH("PIVOTANDO";Columnas);Resultado;APILARH(Filas;Importes);Output;APILARV(Cabecera;Resultado);Output));;
AGRUPANDO = LAMBDA(RangoLista;RangoAcumulados;LET(Lista;UNICOS(RangoLista);Acumulados;SUMAR.SI.CONJUNTO(RangoAcumulados;RangoLista;Lista);Cuadro;APILARH(Lista;Acumulados);CuadroOrdenado;ORDENAR(Cuadro;2;-1);CuadroOrdenado));;
TOPRANKING = LAMBDA(RangoLista;RangoValores;Top;[Resto];LET(Filas; RangoLista; Valores; RangoValores; Top; Top; ListaFilas; UNICOS(Filas); ListaValores; SUMAR.SI.CONJUNTO(Valores; Filas; ListaFilas); RangoResultado; APILARH(ListaFilas; ListaValores); RangoOrdenado; ORDENAR(RangoResultado; 2; -1); SumaTotal; SUMA(RangoValores); OutputRanking; TOMAR(RangoOrdenado; Top; ); SumaTotalRanking; SUMA(TOMAR(OutputRanking; ; -1)); SumaResto; SumaTotal - SumaTotalRanking; RangoResto; APILARH("Otras"; SumaResto); Output; APILARV(OutputRanking; RangoResto); SI(Resto = 1; Output; OutputRanking)));;
CHARTEMOJIS = LAMBDA(Valores;Repeticiones;BYROW(Valores;LAMBDA(X;REPETIR("🟦";(X/MAX(Valores)*Repeticiones)))));;
PARETORATIO = LAMBDA(Elementos;Valores;Porcentaje;LET(Agrupados;Influexcel.AGRUPANDO(Elementos;Valores);Acumulados;TOMAR(Agrupados;;-1);Porcentajes;SCAN(0;Acumulados;LAMBDA(X;Y;X+(Y/SUMA(Acumulados))));ElementosPareto;COINCIDIRX(Porcentaje;Porcentajes;1);TotalElementos;FILAS(Agrupados);RatioPareto;ElementosPareto/TotalElementos;RatioPareto));;
PROMEDIOSINCERO = LAMBDA(RangoVentas;[Mínimo];PROMEDIO.SI(RangoVentas;">" & SI(ISOMITTED(Mínimo);0;Mínimo)));;
BUSCARFILASCONERROR = LAMBDA(RangoTabla;(FILTRAR(RangoTabla;BYROW(SI(SI.ERROR(RangoTabla;"#Error#")="#Error#";0;1);LAMBDA(X;SI(PRODUCTO(X)=0;1;0))))));;
WINDOWSUMA = LAMBDA(Dimensión;Valores;BYROW(Dimensión;LAMBDA(X;SUMAR.SI.CONJUNTO(Valores;Dimensión;X))));;
FILTRARCONRANGO = LAMBDA(Tabla;ColumnaFiltro;RangoFiltro;[Inverso]; LET(Inverso; SI(O(ISOMITTED(Inverso); Inverso <> 1); 0; 1); Output; FILTRAR(Tabla; BYROW(ESNUMERO(HALLAR(INDICE(Tabla; ; ColumnaFiltro); UNIRCADENAS(","; VERDADERO; RangoFiltro)));LAMBDA(X;XO(Inverso;X))); "No hay coincidencias"); Output));;
COMBINAR = LAMBDA(Rango;RangoT;[Separador];ENCOL(Rango & Separador & TRANSPONER(RangoT)));;
CONTARCARACTER = LAMBDA(String;Caracter;SI.ERROR(FILAS(FILTRAR(DELETREAR(String); MAYUSC(DELETREAR(String)) = MAYUSC(Caracter))); 0));;
DELETREAR = LAMBDA(String;[Pack];LET(Pck;SI(ISOMITTED(Pack);1;Pack);EXTRAE(String;SECUENCIA(LARGO(String)/Pck;1;1;Pck);Pck)));;
INVERTIRCADENA = LAMBDA(String;EXTRAE(String;SECUENCIA(LARGO(String);1;LARGO(String);-1);1));;
REPETIRMATRIZ = LAMBDA(Matriz;Veces;[MatrizAcumulada];[Indice];SI(Veces = 1; MatrizAcumulada; LET(Indice; SI(ISOMITTED(Indice); 1; Indice + 1); Matriz; APILARH(Matriz); MatrizAcumulada; SI(ISOMITTED(MatrizAcumulada); Matriz; MatrizAcumulada); VecesResto; Veces - 1; MatrizOriginal; Matriz; MatrizAcum; APILARV(MatrizAcumulada; Matriz); RepetirMatriz(MatrizOriginal; VecesResto; MatrizAcum; Indice))));;
TABLAABC = LAMBDA(Items;Importes;LET(ItemsUnicos; UNICOS(Items); Acumulados; SUMAR.SI.CONJUNTO(Importes; Items; ItemsUnicos); ItemsAcumulados; ORDENAR(APILARH(ItemsUnicos; Acumulados); 2; -1); Porcentajes; SCAN(0; TOMAR(ItemsAcumulados; ; -1); LAMBDA(x;y; x + (y / (SUMA(Acumulados))))); ABC; SI.CONJUNTO(Porcentajes < 0,5; "A"; Porcentajes < 0,8; "B"; VERDADERO; "C"); Output; APILARH(TOMAR(ItemsAcumulados; ; 1); ABC); Output));;
CADENADESDEHASTA = LAMBDA(Cadena;CaracterDesde;CaracterHasta;LET(Desde;ENCONTRAR(CaracterDesde;Cadena)+1;Hasta;ENCONTRAR(CaracterHasta;Cadena;Desde+1);EXTRAE(Cadena;Desde;Hasta-Desde)));;
FILTRAPIDO = LAMBDA(Rango;Valor;[ColumnaFiltro];[ColumnaOutput];LET(ColumnaFiltro;SI(ISOMITTED(ColumnaFiltro);1;ColumnaFiltro);ColumnaOutput;SI(ISOMITTED(ColumnaOutput);SECUENCIA(COLUMNAS(Rango);1;1;1);ColumnaOutput);Output;FILTRAR(ELEGIRCOLS(Rango;ColumnaOutput);ELEGIRCOLS(Rango;ColumnaFiltro)=Valor;"Nada");Output));;
LEYBENDFORD = LAMBDA(Rango;LET(Primer;1*IZQUIERDA(Rango;1);Secuencia;SECUENCIA(9;1;1;1);Conteo;BYROW(Secuencia;LAMBDA(X;FILAS(FILTRAR(Primer;Primer=X;0))));Peso;100*Conteo/SUMA(Conteo);Peso));;
EXTRAEDESDEHASTA = LAMBDA(Cadena;[CaracterDesde];[CaracterHasta];LET(Desde; SI(ISOMITTED(CaracterDesde); 1; ENCONTRAR(CaracterDesde; Cadena) + 1); Hasta; SI(ISOMITTED(CaracterHasta); LARGO(Cadena) + 1; ENCONTRAR(CaracterHasta; Cadena; Desde + 1)); EXTRAE(Cadena; Desde; Hasta - Desde)));;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment