Professional Documents
Culture Documents
Algunos de estos recursos slo estn disponibles para versiones superiores a Excel 2003. El camino para llegar hasta ellos es a travs de los Mens (en unos), a travez de la Cinta de opciones (en otros), a travez del Editor VBA para las macros, directamente en las celdas para el caso de las frmulas y en Nombres definidos para el caso de Excel 4.0 .
CONTENIDO:
1. 2. 3. 4. 5. 6. 7. 8. 9.
Asignar un Nombre definido a un rango de datos. Asignar automticamente, Nombres definidos a varios campos de datos. Visualizar Barras de datos en las celdas (para valores numricos). Texto largo en varias filas de la misma celda. Trabajar con Nombres en 2D. Generar un Nombre de rango variable. Atajos de teclado. Instrucciones en el editor de VBA. Frmulas e Instrucciones Excel 4.0.
Ejemplo de trabajo con nombres: =BUSCARV("La Palma";miRango;3;0) , el resultado, segn la Imagen del prximo tema, sera: 769.
Volver a Contenido
Volver a Contenido
Este efecto lo puedes combinar con Escalas de color y/o con Conjuntos de iconos, que puedes encontrar en el mismo sitio.
Volver a Contenido
Volver a Contenido
1. S e l e c c i o n a e l rango de datos, incluso los ttulos (B2:H14). Observa la Imagen de la derecha. 2. Frmulas > Nombres definidos > Crear desde la seleccin. 3. Marca Fila superior y Columna izquierda. 4. Pulsa ACEPTAR. Si ahora escribes en una celda =SUMA(abril:junio manzana:mango) , obtienes 2.484, que es la suma del rango sombreado en amarillo. Si escribes en otra celda =SUMA(mango), obtienes 2.412, que es la suma de los mangos en todo el ao. Aplicando el mismo procedimiento; con =SUMA(julio:septiembre), tendrs la suma del tercer trimestre y con=SUMA(enero:diciembre), obtienes la suma de toda la fruta durante todo el ao.
Volver a Contenido
Puedes crear un nombre que abarque el rango ocupado con los datos, y en caso de que en el futuro se aada(n) nuevo(s) registro(s), o se elimine(n) alguno(s) ya existente(s), se ajustar automticamente al nuevo rango.
1. Frmulas > Nombres definidos > Asignar nombre a un rango. 2. Definir nombre. 3. Nuevo: a. Nombre: miRango , o el nombre que prefieras (sin espacios), siempre que no est reservado. Por ejemplo; no se pueden utilizar como nombres AB o UVA ya que estos son nombres de columnas. b. mbito: Libro, o el que prefieras de la lista desplegable. c. Comentario: El que creas oportuno. d. Hace referencia a: =DESREF(Hoja1!$A$1;1;0;CONTAR(Hoja1!$A:$A);4) . Con esta frmula, miRango abarca A2:D10 en el caso de la figura de la izquierda (CONTAR(A:A) = 9), y A2:D13 en el caso de la figura de la derecha (CONTAR(A:A) = 12).
Volver a Contenido
Cont. May. Hora actual. esc. F1 Insertar celdas. Cont. 7 Insertar hipervnculo
Borrar seleccin (incluso formato). Buscar y reemplazar (1). Buscar y reemplazar (2). Cambiar Excel < > VBA.
F9 F5 Cont. U Cont. 6 Cont. ) Cont. ( Alt Cont. N Cont. 2 Cont. 9 Cont. 0 F7 Cont. V F3 Cont. May. _ F4 Cont. Y INTRO Cont. esp. Cont. May. * (no nm.) May. esp. Cont. E Cont. May. esp. Cont. 4
Mostrar/Ocultar objetos ( o marcadores ). Muestra las columnas Cerrar aplicacin activa. Alt F4 ocultas de la seleccin. Cerrar, Restaurar, Muestra las filas ocultas Alt esp. Minimizar, de la seleccin. Contorno a las celdas Cont. May. Muestra/Oculta seleccionadas. & frmulas/resultados. Copia/Pega la celda Cont. J Negrita(1). superior (1). Copia/Pega la celda Cont. ' Negrita(2). superior (2). Copia/Pega la celda Cont. May. Oculta columna. superior (3). " Copiar. Cont. C Oculta fila. Cortar. Cont. X Ortografa. Crear tabla (lista). Cont. Q Pegar. Cursiva (itlica) (1). Cont. 3 Pegar nombre. Quita el contorno de las Cursiva (itlica) (2). Cont. K celdas seleccionadas. Deshacer. Cont. Z Referencias: Abs... Editar celda. F2 Rehacer. Rellena la seleccin con Eliminar celdas. Cont. la entrada actual. Esquema. Cont. 8 Selecciona columna. Evalua frmula Selecciona el rango con seleccionada (o F9 datos actual. porcin). Expande/Contrae barra Cont. May. Selecciona fila. de frmulas. U Selecciona toda hoja o el Fecha actual. Cont. , rango actual (1). Fija para seleccinar Selecciona toda hoja o el F8 celdas. rango actual (2). Formato de celdas. Cont. 1 Subrallado (1).
Formato Fecha con el da, mes y ao. Formato Moneda con dos decimales. Formato numrico Exponencial (2 decimales).
Cont. May. Subrallado (2). # Cont. May. Tachado. $ Cont. May. Tamao de fuente (o ^ Tabla).
Volver a Contenido
Coleccin de controles por el nombre: Me.Controls("TextBox" & n).Value = Cells(fila, n) ' n=un nmero Coloca botones, en columna de celda activa: ActiveSheet.Shapes.Range(Array("OptionButton1", "OptionButton2")).Left = ActiveCell.Left Color de etiqueta de hoja (amarillo): ActiveWorkbook.Sheets(ActiveSheet.Name).Tab.Color = 65535 Comprueba si existe una carpeta (si no; la crea): If Dir("D:\Copias\", vbDirectory) = "" Then MkDir "D:\Copias\" Comprueba si hay un filtro presente (con filtrado): If ActiveSheet.FilterMode = False Then Exit Sub Comprueba si hay un filtro presente (con o sin filtrado): If Not ActiveSheet.AutoFilterMode Then Exit Sub Comprueba si una celda tiene una frmula: ActiveCell.HasFormula ( en Excel 4.0: =indicar.celda(48+0*hoy(),!a1) [nombre definido] ) Concatena un texto (fijo) a cada celda de un rango: (en ventana inmediato de VBA) [b2:b12] = [transpose(transpose("SC "&b2:b12))] Concatena/aade a valores existentes, un valor dado: [a1:a1000] = evaluate("a1:a1000&""(1)""") concatena con "(1)" (sin comillas) Convierte nmero tipo 19440724 a fecha 1944-07-24 (Inmediato): [a1:a5] = [transpose(transpose(text(a1:a5,"0000\/00\/00")))] Convierte una frmula de ingls a espaol: Activecell.Formulaarray = "=left(b7)&mid(b7,match(1, --isnumber(match(mid(b7, Row(indirect(""2:15"")),1),{""a"";""e"";""i"";""o"";""u""},0)),0)+1,1)" Copia un rango en otra ubicacin: Worksheets("Hoja1").Range("B2:C5").Copy Worksheets("Hoja2").Range("D15") Copia/Pega sin seleccionar rangos: Range(ActiveCell, ActiveCell.Offset(5, 3)).Copy Destination:= Worksheets("Hoja1").Range("E5") Copia/Pega, un rango en otro: (incluso formatos) [A1:A3].Copy [H2] (slo valores) [F8:F10].Value = [A1:A3].Value Cuadro de dilogo de las fuentes: application.dialogs(xlDialogFont).show Cuenta las celdas con datos en un rango: conteo = Application.Count(Range("A:A")) [ slo nmeros ]. Cuenta las celdas con datos en un rango: conteo = Application.CountA(Range("A:A")) [celdas no vacias] Cuenta las celdas con datos en un rango: conteo = Application.CountIf(Range("A:A"), "Marzo") [ condicional ]. Cuenta datos en otro libro: conteo = Application.CountA(Workbooks("Libro2.xls").Sheets("Hoja1").Range("C:C")) Cuenta nmero de hojas: Worksheets.Count Declara una constante. Declarada a nivel global funciona para varios mdulos: Const miConstante = 1944 Delimita el rango en que se pueden seleccionar celdas: ActiveSheet.ScrollArea="$B$1:$C$20" Desactiva el boton cerrar (X) de Excel: ActiveWorkbook.Protect ,,True Desactiva la barra de mens: Application.CommandBars("Worksheet Menu Bar").Enabled = True Descarga/Cierra un formulario: Unload Me ( Me o el nombre del formulario) Deshace una entrada en una celda (condicional): If "condicin" Then Application.Undo
Desmarca todos los botones de opcin de una hoja: Activesheet.OptionButtons.Value = false Devuelve si un fichero fue abierto como de slo lectura: ((GetAttr(ActiveWorkbook.FullName) And vbReadOnly) = vbReadOnly) Devuelve un carcter Unicode: ChrW(cdigo) cdigo abarca hasta 65000. Devuelve un valor; "negativo", "cero" o "positivo": =ELEGIR(SIGNO(nmero)+2;"negativo";"cero";"positivo") Dia de la semana: dia = Choose(Weekday(date,vbMonday), "Lun", "Mar", "Mi", "Jue", "Vie", "Sab","Dom") Ejecuta la Calculadora: RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) Ejecuta un programa ejecutable: Shell("C:\WINDOWS\SYSTEM32\CALC.EXE", 1) (Ayuda > estilos) Ejecuta una macro de otro libro: application.run "'C:\ruta y sub\carpeta al\libro2.xls'!nombre_de_la_macro" Elige una constante segn un nmero de ndice: miVariable = Choose(numInd, "const1", "const2", 50, 70, "otra") Elimina celdas vacias: [a1:f10].specialcells(xlcelltypeblanks).delete shift:=xltoleft Equivalencia con rango: Range(Cells(1, 1), Cells(10, 10)) = "A" equivale a Range("A1:J10")="A" Escribe en la ventana Inmediato: Debug.Print . . . Escribe en varias celdas al mismo tiempo: Range("A2:E2") = Array("Ruta", "Nombre", "Tamao", "Modificado", "Tipo") Escribe en hoja protegida: Worksheets("miHoja").Protect UserInterfaceOnly:=True Evita que la seleccin cambie en una celda al pulsar Intro: Application.MoveAfterReturn = Target.Address <> "$A$1" Fecha y hora de creacin de un fichero (cerrado): FileDateTime("Clientes.xls") Fila en que se encuentra un dato: fila = Worksheets(1).Range("A3:A23").Find(miDato).Row Frmulas/Resultados. Muestra/Oculta : ActiveWindow.DisplayFormulas = True /False IF para VBA: iif(expresin;verdadero;falso) (verdadero y falso, siempre son evaluados) Imagen en comentario de celda: ActiveSheet.Shapes("Comment 1").Fill.UserPicture "C:\Imgenes\foto.jpg" Impide Copiar/Pegar : Application.CutCopyMode = False Impide mover/arrastrar celdas/rangos: Application.CellDragAndDrop = False Imprime todas las hojas del libro: Sheets.PrintOut Incrementa 5% (Ventana INMEDIATO): For Each Celda In Selection: Celda.Value = 1.05 * Celda: Next Interseccin o cruce de 2 rangos: If Application.Intersect(Target, Range("B2:B11")) is Nothing Then Invierte un texto: miTexto = StrReverse(Texto) Maysculas (1), minsculas (2) y Nombre prpio (3) : Target.Value = StrConv(Target.Value, 3) Tambien: vbUpperCase, vbLowerCase y vbProperCase Mensaje en la barra de estado: Application.StatusBar="Estamos en la linea: " & F al final del proceso: Application.StatusBar=False Mensaje temporal (de n seg. + 5 aprox.): CreateObject("wscript.shell").popup "Una prueba", n, "AnSanVal"
Minimiza la cinta de opciones (1): If ExecuteExcel4Macro("get.toolbar(5,""ribbon"")") > 80 Then SendKeys "^{f1}" Minimiza la cinta de opciones (2): If Application.CommandBars("ribbon").Height > 80 Then SendKeys "^{f1}" Nombre de fichero mediante C. dilogo ABRIR: nombrefich = Application.GetOpenFilename Nombre de la unidad: nombre = Dir("d:\", vbVolume) Nombre definido (asigna/actualiza) al rango actual: ActiveWorkbook.Names.Add Name:="datos", RefersToR1C1:=ActiveCell.CurrentRegion Nombre del autor de un fichero: MsgBox ActiveWorkbook.BuiltinDocumentProperties("Author") Nombre del ltimo que modific un fichero: MsgBox ActiveWorkbook.BuiltinDocumentProperties("Last Author") Nombres ocultos. Visualiza los (Ventana Inmediato): For Each n In Names: n.Visible = True: Next Nm. de pginas que se imprimirn en la hoja activa: MsgBox ExecuteExcel4Macro("Get.Document(50)") & " pg." Oculta / Muestra un libro: Windows("Libro1.xls").Visible = False / True Oculta ciertas filas segn una condicin: Rows("10:20").EntireRow.Hidden = Range("A5").Value = "pagado" Oculta la barra de frmulas: Application.DisplayFormulaBar = True v Oculta un libro (Explorador): SetAttr "C:\Temp\Prueba.xls", vbHidden Pantalla completa: Application.DisplayFullScreen = True Pega en hoja activa sin seleccionar destino: ActiveSheet.Paste Destination:=Worksheets("Hoja1"). Range("A5:A7) ' rango destino completo. Pega en otra hoja solo valores, sin cambiar de hoja: Worksheets("Hoja2").Cells(65536,1).End(xlup).Offset(1).PasteSpecial xlPasteValues Posicin de una cadena dentro de otra, buscando desde el final.: InStrRev("Constantino", "t") devuelve 8. Primera fila visible en la zona mvil de una hoja con paneles inmovilizados: fila = ActiveWindow.ScrollRow Pulsaciones de teclado. Para enviar INTRO (teclado numrico): Application.SendKeys "{ENTER}" (truco, VBA) Rango de datos en serie de grfico: MsgBox Worksheets("Hoja1").ChartObjects(1).Chart.SeriesCollection(1).Formula Rango variable: Names.Add Name:="BaseProveedores", RefersTo:="= offset(Proveedores!$A$2,0,0,counta(Proveedores!$A:$A)1,counta(Proveedores!$2:$2))" Rangos filtrados (slo celdas visibles): Range("A1:A14").SpecialCells(xlCellTypeVisible).Copy Destination:=Range("D25") Recalcular funciones personalizadas, junto con el libro: Application.Volatile Recorre los valores de una matriz: For Clave = 0 To UBound(Claves) Next clave Reemplaza un texto por otro dentro de una cadena de texto: celda = Replace(celda.Value, ",", "") Repite un texto en todo un rango: Range("A100:A150").FormulaArray = "Texto a repetir" Ruta completa de un archivo (en el ejemplo del libro personal): Workbooks("Personal.xls").FullName Salto de pgina -(Insertar) ActiveSheet.HPageBreaks.Add ActiveCell (horizontal)
ActiveSheet.VPageBreaks.Add ActiveCell (vertical) Salto de pgina manual: Worksheets("Sheet1").Rows(25).PageBreak = xlPageBreakManual Selecciona las celdas que devuelven un error: Cells.SpecialCells(xlCellTypeFormulas, 16).Select Selecciona un rango con celda sup. Izq. en esquina sup. Izq. De pantalla: Application.Goto Reference:= Range("B12"), Scroll:=True Selecciona unas figuras SI y otras NO: ActiveSheet.Shapes.Range(Array(1, 2, 4)).Select Selecciona y visualiza a partir de una celda: Application.Goto Reference:=Sheets(1).Range("Z127"), Scroll:=True Seleccionar un rango, a partir de una celda dada (redimensionar): ActiveCell.Resize(3, 4).Select Situar figura segn celda activa: ActiveSheet.Shapes("miFlecha").Left = Target.Left y ActiveSheet.Shapes("miFlecha").Top = Target.Top + Target.Height Sumar un rango: Range("resultado").Value = Application.WorksheetFunction.Sum(Range( "B2,E2,B6,B9,D6:E6,D10:E10,E14")) Temporizador (utilizar DoEvents para que el libro quede activo): Application.OnTime Tipo de error (nmero) existente en una celda: MsgBox Evaluate("error.type($C$4)") 2= #DIV/0! 3= #VALOR! 7= #N/A Tipo de objeto seleccionado: TypeName(Selection) "Range", "TextBox", "Oval", etc. Traduce la frmula de la celda activa a ingls (Inmediaiato en el editor VBA): ? activecell.formula ltima celda ocupada de una columna: Cells(Rows.Count, "A").End(xlup).row ltima columna ocupada de una fila: Cells(1,Columns.Count).Select Trabajar con una variable opcional: If IsMissing(Fecha) Then Fecha = Date Variables del entorno del sistema: variable = Environ(num) (num = desde 1 hasta 40)
Volver a Contenido
Busca en rangos de distintas hojas: =BUSCARV(I2;ELEGIR(COINCIDIR(A6;{211\220\228};0);Hoja2!A3:G2642; Hoja3!A3:H338;Hoja4!A2:G673);2;FALSO) Cantidad de domingos en el mes de la fecha que est en A1 (matricial) en A1 p.e.: 1944 ]: {=SUMA((
DIASEM(FILA(INDIRECTO(FECHA(AO(A1);MES(A1);1)&"":""&(FECHA(AO(A1);MES(A 1)+1;1))-1)))=1)*1)} Cantidad de meses entre dos fechas: =SIFECHA(fechaInicio;fechaFin;"m") Comprueba si A11 est entre los valores 5 y 12: =ELEGIR(COINCIDIR(A11;{0;5;12});"Fuera de rango"; "Dentro de rango";"Fuera de rango") Contar con varias condicones: =SUMA(CONTAR.SI($C$1:$C$20;{"A";"B";">D"})) Contar registros nicos (A) condicionales (B): =SUMAPRODUCTO((B2:B15="pan")*(COINCIDIR(A2:A15&"|"; A2:A15&"|";0)=FILA(A2:A15)-FILA(A1))) CONTAR.SI con mltiples condiciones: =SUMAPRODUCTO((CONTAR.SI(A1:F10;{1\3\5\7}))) Controla mediante Validacin Texto en maysculas: =IGUAL(A1;MAYUSC(A1)) CONVERTIR entre unidades de medida: =CONVERTIR(3000;"W";"HP") =CONVERTIR(2;"m";"cm") Convierte un literal (invertido) a fecha (19440724 >> 16277 >> 24/07/1944): =--TEXTO("19440724";"00-00-00") Crear nombres Def. en seleccin ( truco / atajo ): Control + Mayscula + F3 . . . Cuenta coincidencias ( z ) en un rango: =SUMAPRODUCTO(LARGO(A1:G5)LARGO(SUSTITUIR(A1:G5;"z";""))) Cuenta los caracteres que se repiten a la izquierda: =hallar(izquierda(sustituir(A1;izquierda(A1);""));A1)-1 Cuenta los NO repetidos: =SUMAPRODUCTO((A1:A35<>"")/CONTAR.SI(A1:A35;A1:A35&"")) Cuenta los registros nicos en un rango: =SUMAPRODUCTO(-(FRECUENCIA(A:A;A:A)>0)) Cuenta los valores nicos en un rango: =SUMAPRODUCTO(1/CONTAR.SI(A2:A11;A2:A11)) Cuenta maysculas en un texto: =SUMAPRODUCTO(LARGO(A1)LARGO(SUSTITUIR(A1;CARACTER(FILA(INDIRECTO("65:90")));""))) Cuenta segn condicipn exepto 4, 6 y 12: =CONTAR.SI(C2:C30;"<20")-SUMAPRODUCTO(-ESNUMERO(COINCIDIR(C2:C30;{4\6\12};0))) Devuelve los cabeceros (a,b, c) que coincidan con los valores mximos de A2:C2: =ELEGIR(SUMAPRODUCTO({1;2;4}*(A2:C2=MAX(A2:C2)));"a";"b";"ab";"c";"ac";"b c";"abc") Distancia entre 2 puntos: =RAIZ(((X2-X1)*(X2-X1))+((Y2-Y1)*(Y2-Y1))) <> =RAIZ((X2-X1)^2+(Y2-Y1)^2) <> = raiz ( x2 + y2 ) Domingos entre dos fechas: =SUMAPRODUCTO(-(DIASEM(FILA(INDIRECTO(A1&":"&A2));2)=7)) A1=fechaInicio A2=fechaFin Edad en aos, meses y das: =SIFECHA(E2;HOY();"y")&" ao(s), "&SIFECHA(E2;HOY();"ym")& " mes(es) y "&SIFECHA(E2;HOY();"md")&" da(s)." Elimina el carcter de la derecha (de un nmero): =SUSTITUIR(A2;CARACTER(CODIGO(DERECHA(A2;1)));"")+0
En ASD345 dejar slo 345: =REEMPLAZAR(A1;1;MIN(HALLAR({0;1;2;3;4;5;6;7;8;9};A1&"0123456789")-1);"") Encuentra la primera celda vacia despus de un rango (1): {=COINCIDIR(VERDADERO;B12:$B$65536="";)} Encuentra la primera celda vacia despus de un rango (2): =INDICE(COINCIDIR(VERDADERO;B12:$B$65536="";);1) Extrae el mnimo, excluyendo el cero: {=MIN(SI($B$3:$B$24<>0;$B$3:$B$24;FALSO))} Extrae el promedio, excluyendo los ceros: {=SI(SUMA(B4:B15)=0;0;PROMEDIO(SI(B4:B15<>0;B4:B15;"")))} Extrae Nm. de un texto: {=1*EXTRAE(A1;COINCIDIR(VERDADERO;ESNUMERO(1*EXTRAE(A1;FILA($1:$9);1));0) ; CONTAR(1*EXTRAE(A1;FILA($1:$9);1)))} Extrae un dgito de un nmero COMO NMERO: =--IZQUIERDA(A1;1) (tambin =--IZQUIERDA(A1) ] Fila en que se encuentra un error #VALOR! : {=K.ESIMO.MAYOR((FILA($A$2:$A$6))* (ESNUMERO(--(TIPO.DE.ERROR($A$2:$A$6)=3)));1)} Fila o Columna de la celda activa (es necesario Calcular [F9 o VBA]): CELDA("fila") o CELDA("columna") [ p.e.: SI(CELDA("fila")=1; ] Filas impares (p.e.: para formato condicional): =residuo(fila(),2) Formato condicional para numeros que contengan cierta cifra: =NO(ESERROR(ENCONTRAR(5;A2))) Formato condicional. Resalta fila (o columna, o rango): =FILA()=CELDA("fila") Formato de celda personalizada, para positivos (azul) y negativos (rojo): [Azul]#.##0,00 ? ;[Rojo]-#.##0,00 ?_;# Formato para horas, minutos, segundos y milisegundos: [h]:mm:ss,000 Formato personalizado con condiciones: [Azul][>=100]0;[verde][>=10]0,0;[Rojo]0,00 (3 condiciones) Frmula para celdas validadas que impide la entrada de registros duplicados: =CONTAR.SI(A:A;A1)<2 Frmulas/Resultados. Muestra/oculta (atajo de teclado): Alt + Fracciones impropias (numerador>denominador): =TEXTO("3 5/4";"???/???") =TEXTO(3,25;"???/???") Imita Mround(n;m) : =REDONDEAR(n/m;0)*m n = nmero m = mltiplo Impide escribir en un rango validado, mientras en E6 diga "algo": =$E$6<>"algo" Incrementa Precio 1,5% cada mes: =B1*(1,015)^SIFECHA(A1;HOY();"M") [A1]=fecha [B1]= Precio [C1]=frmula Incrementa/decrementa una fecha determinado nmero de meses: FECHA.MES(fecha_inicial:meses) (necesita Herramientas para anlisis). Indica si una celda tiene frmula con F. condicional: =INDICAR.CELDA(48;INDIRECTO("fc";FALSO)) Jerarqua en registros nicos: {=SUMA(SI($F$3:$F$17<F3;1/CONTAR.SI( $F$3:$F$17;$F$3:$F$17);0))+1} Jerarqa (incluso con repetidos) 1: {=SUMA(SI($F$3:$F$17>F3;1/CONTAR.SI($F$3:$F$17;$F$3:$F$17);0))+1} Jerarquia (incluso con repetidos)2: =SUMAPRODUCTO(($F$3:$F$17>=F3)*(1/CONTAR.SI($F$3:$F$17;$F$3:$F$17))) K.ESIMO de varias hojas: =K.ESIMO.MAYOR('Hoja1:Hoja3'!E$2:E$25;1) Letra del NIF : =EXTRAE("TRWAGMYFPDXBNJZSQVHLCKE";RESIDUO(A1;23)+1;1)
Letra que ms se repite: { =caracter(moda(si(largo(b8:b23);codigo(b8:b23)))) } Listado de Nombres definidos: F3 > Pegar lista Matriz "manualmente". Selecciona 4 columnas por 3 filas: { ={1;2;3;4\5;6;7;8\9;10;11;12} } Mximo Comn Divisor (MCD): =gcd(A15:A20) Mximo entre dos lmites: {=MAX(($A$2:$A$13>=D2)*($A$2:$A$13<=E2)*$B$2:$B$13)} Mximo valor (B) para un mes dado (A), segn D2: {=SUMAPRODUCTO(MAX((MES(A2:A10)=D2)*(B2:B10)))} Mensaje en la propia celda: [>900000]"Excelente";[<300000] "Estudiar";"" (formato personalizado) Mensaje segn valor de otra celda: =SI(A2="";"";ELEGIR(COINCIDIR(A2;{0\300000\900000}); "Estudiar";"";"Excelente")) Mnimo entre dos lmites: {=MIN(SI($A$2:$A$13>=LimInf;1;5000)*SI($A$2:$A$13<= LimSup;1;5000)*($B$2:$B$13))} Mnimo que sea mayor que "nmero" : =K.ESIMO.MENOR(datos;CONTAR.SI(datos;"<="& numero)+1) Moda inversa (nmero o texto menos repetido): {=INDICE(valores;COINCIDIR(MIN(CONTAR.SI( valores;valores));CONTAR.SI(valores;valores);0))} MODA para texto (matricial): {=INDICE(A2:A20;COINCIDIR(MAX(CONTAR.SI(A2:A20;A2:A20)); CONTAR.SI(A2:A20;A2:A20);0))} Modo de poner un condicional en SUMAR.SI: =SUMAR.SI(A2:A10;">"&J1;C2:C10) No grafica valores cero: =SI(E2>0;E2;NOD()) (o directamente #N/A) Nombre de la hoja: =DERECHA(CELDA("nombrearchivo");LARGO(CELDA("nombrearchivo"))ENCONTRAR("]";CELDA("nombrearchivo"))) Nombre del libro: =EXTRAE(CELDA("nombrearchivo";A1);ENCONTRAR("[";CELDA("nombrearchivo";A1) ) +1;ENCONTRAR("]";CELDA("nombrearchivo";A1))ENCONTRAR("[";CELDA("nombrearchivo";A1))-1) Nombre/Frmula (Insertar>Nombre>Definir). Esta devuelve la formula que est en A2: =indicar.celda(6+0*hoy();!$a2) (49 indica si es matricial) Nmero ms cercano a cero: =INDICE(A1:A20;COINCIDIR(MIN(ABS(A1:A20));ABS(A1:A20);-1)) Nmeros pares/impares menores/mayores que "num": =SUMAPRODUCTO((A1:E1<50)*(RESIDUO(A1:E1;2)=0)) Para graficar y no ver frmulas que devuelven cero(0): =si(formula>0,formula,nod()) Para NO visualizar un dato en un grfico: =SI(A1="";NOD();A1) Periodo de das, meses, etc. entre dos fechas: =SIFECHA(fecha1;fecha2;"d") Proporcional Inversa: =INDICE((B$1/SUMA(A$2:A$4))*A$2:A$4;JERARQUIA(A2;A$2:A$4)) B1=cantidad a repartir. Raiz cbica de un nmero (nm. en A1): =POTENCIA(A1;1/3) Redondea a la centena ms prxima: =REDONDEAR(nm;-2) (;-1 ;-3 etc. para: decenas, millares, etc.) Redondea un nmero, por grupos de valor: =MRound(38;5) devuelve 40. Precisa herramientas para Anlisis.
Redondea una hora en mdulos de 30 minutos: =MULTIPLO.SUPERIOR(B2;1/48) Redondea ( a la dcima ms prxima) =REDONDEAR(A1;1) ( hacia arriba) =REDONDEAR.MAS(A1;1) Redondeo en fracciones de 0,05 (si>2 redondeo hacia arriba, resto al ms prximo): =ENTERO(A2*20+SI(A2>2;0,9;0,5))/20 Rellena con puntos la celda despues del texto: ;;;@*. (Formato personalizado) Resultado de varios posibles: =BUSCAR(G2;{0\5\7\9};{"Insuficiente"\"Suficiente"\"Notable"\"Sobresalient e"}) Ruta completa del libro y hoja (debe estar guardado): =CELDA("nombrearchivo") Seleccionar el rango actual: Ctrl* Seleccionar rango con datos (incluso celdas vacias intermedias): Ctrl+Maysc+Fin Separa nm. de texto AAAA AA AAA 271,00: =IZQUIERDA(A2;HALLAR("|";SUSTITUIR(A2;" ";"|";LARGO(A2)LARGO(SUSTITUIR(A2;" ";""))))-1) Suma de importes correspondientes a un mes determinado: =SUMAPRODUCTO((MES(A2:A2000)=3)*(B2:B2000)) Suma los 4 valores ms altos de un rango: =SUMAPRODUCTO(K.ESIMO.MAYOR(A1:A12;{1\2\3\4})) Suma una cantidad dgito a dgito, y devuelve el resultado en un slo dgito: =residuo(cantidad,9)+9*(residuo(cantidad,9)=0) p.e. 47=2 (4+7=11, 1+1=2) Sumar columnas alternas: =SUMAPRODUCTO((A1:I3)*(RESIDUO(COLUMNA(A1:K100);2)=1)) (1= impares, 0= pares) (cambiar el 2= cada 3, cada 4, etc.) Sumar con varias condicones: =SUMA(SUMAR.SI($E$1:$E$25;{"<7";9;">120"})) Sumar desde 1 hasta n : = n*(n+1)/2 (Julian - Valencia) Sumar mismo rango de varias hojas: =SUMA(Hoja1:Hoja15!A1) =SUMA(Primera:ultima!A1:D15) Ttulo de campo del dato encontrado: {=INDICE(A1:L1;1;MIN(SI(A1:L32=B35; COLUMNA(A1:L1))))} Trimestre de una fecha: ="Trimestre " & COINCIDIR(MES(A1);{1\4\7\10}) & "" >>> ( {1\3\5\7\9\11} para bimestres y {1\7} para semestres) Turno de trabajo: ="Turno de "&INDICE({"noche"\"maana"\"tarde"\"noche"};COINCIDIR(A1; --{"0:00"\"6:30"\"14:30"\"22:30"})) A1=hora ltima coincidencia: =BUSCAR(2;1/($B$1:$B$30="La Gomera");$C$1:$C$30) ltima fecha de un registro: {=SI(MAX($A$2:$A$9*($B$2:$B$9=$G2))<1; "No hay datos";MAX($A$2:$A$9*($B$2:$B$9=$G2)))} ltimo dato en un rango: =BUSCAR(2;1/(D2:O2<>"");D2:O2) (en fila) = BUSCAR(2;1/(A2:A30<>"");A2:A30) (en columna) ltimo dato escrito en columna A. Para nmeros: =BUSCAR(9e307;a:a) ltimo dato escrito en columna A. Para textos: =COINCIDIR("zzzzzz";a:a) ltimo valor escrito en un rango: =BUSCAR(2;1/(B1:B10<>"");B1:B10) Validacin a mltiples columnas: =SUMAPRODUCTO(-(($C$1:$C1&"@"&$D$1:$D1)=($C1&"@"&$D1)))<2 impide parejas. Veces que se encuentra un texto en un rango: =SUMAPRODUCTO(1 ESERROR(HALLAR("Acero"; A$2:A$7)))
Nota: Las funciones entre llaves, por ejemplo {=Formula}, son matriciales y deben ser entradas con: Control + Mayscula + Intro. No escribir las llaves, estas entran solas.
Volver a Contenido
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2")) Is Nothing Then If Target <> Empty Then ActiveSheet.Name = Range("a2").Value End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$J$11" Then ActiveSheet.Name = Target.Value End Sub
Option Explicit
Exit Sub
NombreDuplicado: MsgBox "Ya existe una hoja llamada '" & Range("J11") & "'" & _ vbNewLine & vbNewLine & "No se pueden tener dos hojas con el mismo nombre" Range("J11").Activate
End Sub