Del 15 de junio al 3 de julio · Informática 1 (SINF) · Excel + Python

Plan de recuperación, día a día

Toda la teoría explicada desde cero, como si nunca hubieras abierto Excel ni escrito una línea de Python, y un banco de más de 100 ejercicios repartidos en bloques de 40 minutos al día. El examen fue un entregable: a partir de un fichero de datos hay que producir un Excel resuelto con fórmulas, formato condicional, gráficos, tablas dinámicas y subtotales. Pero el temario también incluye Python (puede caer escribir código o preguntas tipo test), así que no cerramos ninguna puerta: preparamos las dos mitades por igual. Las soluciones van en un archivo aparte: primero lo intentas, luego te corriges.

Cómo usar este plan (bloques de 40 minutos)

Cada día tiene una lectura de teoría corta y varios ejercicios. Está pensado para un bloque de 40 minutos diarios. Reparte así cada sesión:

  1. Leer el bloque de teoría del día (10 min). Está todo explicado y con ejemplos resueltos; si algo no entra, se relee antes de seguir.
  2. Hacer los ejercicios del día (20 min). En Excel, replícalos en una hoja real; en Python, escríbelos en un cuaderno Jupyter o en VS Code y ejecútalos. No vale "leer" el ejercicio: hay que teclearlo.
  3. Corregir con el archivo de soluciones (10 min). Lo importante no es acertar, es ver dónde se rompió el razonamiento y por qué.
💡
Regla de oro: tanto en Excel como en Python casi todo es un método mecánico. No memorices resultados, memoriza la receta. Si te sabes "qué función hace qué" y "en qué orden montar la fórmula", cualquier dato nuevo lo resuelves igual.

Los días marcados con ⭐ (referencias, SI/Y/O, funciones con criterio, importar+subtotales, control de flujo, POO y los simulacros) son los que más caen y los que más cuesta hacer bajo presión. Llevan teoría extendida.

📅 Calendario completo (15 jun → 3 jul)

18 días de estudio + el examen. La primera mitad construye Excel de cero hasta poder entregar la práctica; la segunda mitad ataca Python desde el entorno hasta la POO; los últimos días son simulacros completos y repaso de fallos.

DíaTemaTeoríaEjercicios
Fase 1 · Excel desde cero (UD1–UD3)
Lun 15 junEl entorno de Excel: celdas, rangos, tipos de datos, erroresTeoría E1E1, E2, E3
Mar 16 jun⭐ Referencias: relativas, absolutas y mixtas (la base de todo)Teoría E2E4, E5, E6
Mié 17 junFunciones básicas: SUMA, PROMEDIO, MAX, MIN, CONTARTeoría E3E7, E8, E9
Jue 18 jun⭐ Funciones lógicas: SI, Y, O y anidamientosTeoría E4E10, E11, E12, E13
Vie 19 junTexto y fecha: IZQUIERDA, DERECHA, EXTRAE, CONCATENAR, AÑO, MES, HOYTeoría E5E14, E15, E16, E17
Sáb 20 jun⭐ Funciones con criterio: SUMAR.SI, CONTAR.SI, PROMEDIO.SI · VAR, RAIZ, POTENCIA · minigráficosTeoría E6E18, E19, E20, E21
Dom 21 jun⭐ Importar datos, formato condicional, ordenar y subtotalesTeoría E7E22, E23, E24, E25
Lun 22 junGráficos (en hoja nueva) y tablas dinámicasTeoría E8E26, E27, E28, E29, E30
Mar 23 jun⭐ SIMULACRO Excel 1 · entregable completo "carnicería" (tipo examen)Simulacro XL-1Entregable
Mié 24 junRepaso Excel + base de datos con BUSCARV (Feedback 1)Teoría E9E31–E45
Fase 2 · Python desde cero (UD4–UD6 + notebooks)
Jue 25 junEntorno, Python como calculadora, variables y tipos de datosTeoría P1P1–P8
Vie 26 junOperadores, conversión de tipos e importar librerías (math)Teoría P2P9–P14
Sáb 27 junListas: índices, slicing y métodosTeoría P3P15–P34 (20 listas)
Dom 28 junStrings (cadenas): índices, slicing y métodosTeoría P4P35–P41
Lun 29 junDiccionarios, tuplas y conjuntos (sets)Teoría P5P42–P62
Mar 30 jun⭐ Control de flujo: if/elif/else, for, while, range, break/continueTeoría P6P63–P70
Mié 1 jul⭐ Funciones, comprensiones y POO (clases, herencia) + problemas anidadosTeoría P7P71–P95 (control flujo)
Fase 3 · Simulacros y repaso final
Jue 2 jul⭐ SIMULACRO Python + SIMULACRO mixto (Excel + Python + test) + repaso de fallosSimulacrosSIM-PY, SIM-MIX
Vie 3 julDÍA DE EXAMEN · checklist y repaso ligero (nada nuevo)Checklist

Si un día no puedes, arrastra los ejercicios al siguiente y comprime un fin de semana. La constancia importa más que la perfección. Los días de simulacro dan para más de 40 min: si hace falta, parte el simulacro en dos tardes.

🟢 Guía maestra de Excel (el entregable)

El examen es una práctica entregable: abres un fichero Datos.xlsx donde solo las celdas sombreadas son datos; en el resto tú escribes las fórmulas. Al terminar configuras las hojas como el modelo y lo envías. Estas son las reglas y las "recetas" que sirven siempre.

Las 8 reglas de oro de una fórmula

  1. Toda fórmula empieza por =. Si no, Excel lo trata como texto.
  2. Los argumentos se separan por punto y coma ; (configuración española). Un rango se escribe con dos puntos: B2:B30.
  3. El texto literal va entre comillas dobles: ="Correcto". Los números, sin comillas.
  4. Referencia relativa B5: al copiar/arrastrar, cambia. Absoluta $B$5: nunca cambia. Mixta $B5 (fija columna) o B$5 (fija fila). La tecla F4 va rotando entre las cuatro formas.
  5. Para referirte a otra hoja: =Datos!B4 (o con apóstrofos si el nombre lleva espacios: ='Mi Hoja'!B4).
  6. No des formato a los números dentro de la fórmula (nada de €, ni separadores de miles). El formato se aplica aparte, con el formato de celda.
  7. Evita dividir por cero (da #¡DIV/0!) y comprueba que los paréntesis abren y cierran igual.
  8. Prioridad de operadores: 1º paréntesis (), 2º exponente/porcentaje ^ %, 3º multiplicar/dividir * /, 4º sumar/restar + -.

Catálogo de funciones que SÍ entran (con sintaxis exacta)

Todas las del entregable. Apréndete qué hace cada una y qué argumentos pide; los ejemplos usan ;.

FunciónSintaxisQué hace
SUMA=SUMA(B3:B9)Suma todos los valores del rango.
PROMEDIO=PROMEDIO(B3:B9)Media aritmética del rango.
MAX / MIN=MAX(B3:B9)Valor más alto / más bajo del rango.
CONTAR=CONTAR(B3:B9)Cuántas celdas del rango contienen un número.
SI=SI(prueba; valor_si_verdadero; valor_si_falso)Devuelve un valor u otro según se cumpla la condición.
Y=Y(cond1; cond2; …)VERDADERO solo si se cumplen todas.
O=O(cond1; cond2; …)VERDADERO si se cumple al menos una.
SUMAR.SI=SUMAR.SI(rango_criterio; criterio; rango_suma)Suma las celdas de rango_suma cuyo equivalente en rango_criterio cumple el criterio.
CONTAR.SI=CONTAR.SI(rango; criterio)Cuenta cuántas celdas cumplen el criterio.
PROMEDIO.SI=PROMEDIO.SI(rango_criterio; criterio; rango_promedio)Media de las celdas que cumplen el criterio.
IZQUIERDA / DERECHA=IZQUIERDA(texto; n)Los n primeros / últimos caracteres del texto.
EXTRAE=EXTRAE(texto; inicio; n)n caracteres a partir de la posición inicio.
CONCATENAR / &=CONCATENAR(t1; t2; …) o =A1&" "&B1Une textos. El operador & hace lo mismo y es más rápido.
AÑO / MES / DIA=AÑO(fecha)Extrae el año / mes / día de una fecha.
HOY=HOY()La fecha actual (sin argumentos).
VAR.S / VAR.P=VAR.S(B3:B9)Varianza de muestra / de población.
RAIZ=RAIZ(B3)Raíz cuadrada.
POTENCIA=POTENCIA(B3; 3) o =B3^3Eleva un número a una potencia (aquí, al cubo).
BUSCARV=BUSCARV(valor; tabla; nº_columna; FALSO)Busca valor en la 1ª columna de tabla y devuelve el dato de la columna nº indicada. FALSO = coincidencia exacta.
⚠️
Tabla de errores (te van a preguntar qué significan): ##### columna estrecha · #¡DIV/0! división por cero · #N/A valor no encontrado (típico de BUSCARV) · #¿NOMBRE? nombre de función mal escrito · #¡REF! referencia a una celda que ya no existe · #¡VALOR! tipos incompatibles (texto donde va número) · #¡NUM! número no válido · #¡NULO! intersección de rangos que no se cruzan.

Receta del entregable, paso a paso (la que aplicarás en el examen)

  1. Abre Datos.xlsx y guárdalo con tu NP (Archivo → Guardar como). Identifica las celdas sombreadas: ésas son datos, NO se tocan.
  2. Columna a columna, escribe la fórmula en la primera celda libre y arrástrala hacia abajo. Antes de arrastrar, decide qué referencias deben quedar fijas (precios, constantes → $) y cuáles deben moverse.
  3. Para las columnas lógicas usa SI (y dentro Y/O si hay varias condiciones). Para texto condicional, combina SI con EXTRAE/DERECHA y &.
  4. Añade las filas/columnas de resumen: SUMA, PROMEDIO, MAX, MIN, VAR.S, y los condicionales SUMAR.SI, CONTAR.SI, PROMEDIO.SI.
  5. Inserta minigráficos (Insertar → Minigráficos → Línea/Columna) sobre los rangos que pida.
  6. Aplica formato condicional (Inicio → Formato condicional): reglas por valor, por texto o barra de datos.
  7. Importa el fichero de texto (Datos → Obtener datos → Desde texto/CSV), indicando el delimitador correcto (tabulador o punto y coma) y la celda de inicio.
  8. Ordena por la columna que pidan y aplica Subtotales (Datos → Esquema → Subtotal). Recuerda: hay que ordenar ANTES de poner subtotales.
  9. Crea el gráfico; si piden "en hoja nueva", muévelo con clic derecho → Mover gráfico → Hoja nueva.
  10. Configura la página de cada hoja como el modelo (orientación, márgenes, encabezado con tu Nombre/NP, pie con el nombre de la hoja, color de pestaña). Guarda y envía.
🔑
El truco mental de las referencias. Antes de arrastrar pregúntate: "al bajar una fila, ¿esta celda debe cambiar?". El precio que está fijo en una celda → NO debe cambiar → $. El dato de la fila que estoy calculando → SÍ cambia → sin $. Esa única pregunta resuelve el 90% de los fallos del entregable.

🟡 Guía maestra de Python

Python lee el código de arriba abajo y usa la indentación (sangría) para saber qué instrucciones van dentro de un bloque. Los comentarios empiezan por #. Para imprimir en pantalla se usa print(...) y para pedir datos al usuario input(...) (que siempre devuelve texto: hay que convertirlo con int() o float() si quieres operar).

Los 4 tipos básicos y la conversión

TipoQué esEjemplo
intEntero (sin decimales)edad = 25
floatDecimalaltura = 1.75
strCadena de texto (entre comillas)nombre = "Ana"
boolBooleano: True o Falseaprobado = True

type(x) te dice el tipo. Conversión: int("25") → 25 · float("3.14") → 3.14 · str(99) → "99". Cuidado: "5" + 1 da error (texto + número); hay que convertir primero.

Las 5 colecciones: cómo se distinguen

ColecciónSímbolo¿Ordenada?¿Mutable?Notas
Lista[ ]Sí (por índice)Admite duplicados y tipos mixtos.
Tupla( )Sí (por índice)NoComo una lista pero no se puede cambiar.
Diccionario{clave: valor}Por claveClaves únicas; acceso por clave.
Set (conjunto){ }NoElementos únicos, sin duplicados.
String" "Sí (por índice)NoSecuencia de caracteres.

Índices (en lista/tupla/string): empiezan en 0. x[0] es el primero, x[-1] el último. Slicing x[1:4] = del índice 1 al 3 (el final no se incluye); x[::2] = de dos en dos.

Métodos esenciales por colección (memoriza estos)

EstructuraMétodos / operaciones
Listasappend(x) añade al final · insert(i,x) en posición · extend(otra) concatena · remove(x) borra 1ª aparición · pop()/pop(i) saca y devuelve · index(x) posición · count(x) nº de apariciones · sort() / sort(reverse=True) · reverse() · copy() · clear() · sum(lista) · len(lista) · x in lista
Stringsupper() / lower() · strip() quita espacios · replace(a,b) · split(sep) → lista · " ".join(lista) → string · len(s) · concatenar con + · repetir con *
Diccionariosd[clave] acceso · d[clave]=v añadir/modificar · get(clave, defecto) sin error · pop(clave) · keys() · values() · items() (para recorrer) · clave in d
Tuplascount(x) · index(x) · len(t) · list(t) para convertirla a lista · concatenar con + · x in t (no tiene append/remove: es inmutable)
Setsadd(x) · remove(x) / discard(x) · union(otro) · intersection(otro) · difference(otro) · update(iter) · clear() · x in s

Control de flujo: las 3 estructuras que lo resuelven todo

# 1) CONDICIONAL — decidir
if nota >= 90:
    print("Excelente")
elif nota >= 50:
    print("Aprobado")
else:
    print("Suspenso")

# 2) BUCLE for — repetir sobre una colección o un rango
for fruta in ["manzana", "pera"]:
    print(fruta)

for i in range(1, 6):     # 1,2,3,4,5  (el 6 NO se incluye)
    print(i)

# 3) BUCLE while — repetir mientras se cumpla una condición
contador = 1
while contador <= 5:
    print(contador)
    contador += 1         # ¡no olvides actualizar, o bucle infinito!

range: range(5) → 0,1,2,3,4 · range(2,7) → 2..6 · range(0,11,2) → pares · range(10,0,-1) → cuenta atrás. break rompe el bucle; continue salta a la siguiente vuelta.

🔑
El patrón "acumulador" aparece en casi todos los ejercicios de bucles. Creas una variable vacía antes del bucle (total = 0, pares = [], contador = 0) y dentro del bucle la vas alimentando (total += n, pares.append(n), contador += 1). Si dominas este patrón, los 25 problemas de control de flujo salen casi solos.

Funciones, comprensiones y POO (lo de UD5–UD6)

# FUNCIÓN: empaqueta código reutilizable
def suma(a, b):
    return a + b
print(suma(3, 4))        # 7

# COMPRENSIÓN DE LISTA: crear una lista en una línea
cuadrados = [x**2 for x in range(1, 6)]          # [1,4,9,16,25]
pares     = [x for x in range(1, 11) if x % 2 == 0]   # con filtro

# CLASE (POO): plantilla con atributos y métodos
class Perro:
    def __init__(self, nombre, edad):   # constructor
        self.nombre = nombre
        self.edad = edad
    def ladrar(self):
        print(f"{self.nombre} dice guau")

mi_perro = Perro("Toby", 3)
mi_perro.ladrar()

# HERENCIA: una clase que parte de otra
class Cachorro(Perro):
    def __init__(self, nombre, edad, raza):
        super().__init__(nombre, edad)   # reutiliza el constructor de Perro
        self.raza = raza
🐍
POO en una frase: una clase es el plano (p. ej. "Contacto"), un objeto es una casa construida con ese plano. __init__ es el constructor (se ejecuta al crear el objeto), self es "este objeto concreto", los atributos son sus datos y los métodos son lo que sabe hacer. La herencia permite que "Alumno" parta de "Registro" sin reescribir lo común.

📖 Teoría completa · Excel

Todo el bloque de Excel (UD1–UD3) desde cero. Cada apartado corresponde a uno o varios días del calendario.

Teoría E1 · El entorno de Excel: celdas, rangos, tipos de datos y errores

Un archivo de Excel se llama libro y se guarda con extensión .xlsx (una plantilla, con .xltx). Cada libro tiene una o varias hojas de cálculo (las pestañas de abajo). Una hoja es una cuadrícula de filas (numeradas 1, 2, 3…) y columnas (con letras A, B, C… hasta XFD). El cruce de una fila y una columna es una celda, y se nombra por su columna y su fila: B5 es la celda de la columna B, fila 5.

La cinta de opciones (los menús de arriba)

Excel agrupa todo en pestañas: Archivo (nuevo, abrir, guardar, imprimir), Inicio (formato, copiar/pegar, formato condicional, ordenar y filtrar), Insertar (tablas, gráficos, minigráficos), Disposición de página (márgenes, orientación, encabezados), Fórmulas (catálogo de funciones por categorías), Datos (importar, ordenar, filtrar, subtotales), Revisar (proteger hoja) y Vista.

Los 3 tipos de datos de una celda

  1. Texto: letras y símbolos. Se alinea solo a la izquierda.
  2. Números (incluye fechas, porcentajes y monedas): se alinean solos a la derecha.
  3. Fórmulas: empiezan por = y devuelven un resultado calculado.
👀
Truco visual: si escribes un número y se queda pegado a la izquierda, Excel lo ha entendido como texto (y no podrás sumarlo). Si una fecha se alinea a la derecha, está bien interpretada como fecha.

Atajos y operaciones básicas

Copiar Ctrl+C, cortar Ctrl+X, pegar Ctrl+V, guardar Ctrl+G (o Ctrl+S), ayuda F1. Supr borra solo el contenido (no el formato ni la celda). Para seleccionar celdas sueltas, mantén Ctrl mientras haces clic. Para insertar/eliminar filas o columnas, clic derecho en la cabecera.

Los 8 errores de Excel (caen en test)

ErrorCausa
#####La columna es demasiado estrecha para mostrar el número (o fecha negativa). Se arregla ensanchando.
#¡DIV/0!Has dividido entre cero o entre una celda vacía.
#N/AUn valor no está disponible (típico cuando BUSCARV no encuentra lo buscado).
#¿NOMBRE?Has escrito mal el nombre de una función o un nombre de rango que no existe.
#¡VALOR!Mezclas tipos incompatibles (texto donde se espera un número).
#¡REF!La fórmula apunta a una celda que ha sido eliminada.
#¡NUM!Un valor numérico no es válido (p. ej. raíz de un negativo).
#¡NULO!Intersección de dos rangos que no se cruzan.
↑ calendario

Teoría E2 · ⭐ Referencias: relativas, absolutas y mixtas

Éste es el concepto más importante de todo Excel y el que más puntos da (o quita) en el entregable. Una referencia es la forma de nombrar una celda dentro de una fórmula. Lo decisivo es qué pasa cuando arrastras o copias la fórmula a otra celda.

TipoSe escribeAl copiar/arrastrar…
RelativaB5cambian fila y columna (se adapta). Es la opción por defecto.
Absoluta$B$5NO cambia nada: siempre apunta a B5.
Mixta (columna fija)$B5la columna B se queda; la fila cambia.
Mixta (fila fija)B$5la fila 5 se queda; la columna cambia.

El símbolo $ significa "ancla": lo que tiene un $ delante no se mueve. La tecla F4, con el cursor sobre una referencia, va rotando: B5$B$5B$5$B5 → vuelve a B5.

Ejemplo resuelto: precio fijo en una celda

Tienes el precio unitario en B1 = 25 y las cantidades en A4, A5, A6…. Quieres el importe = cantidad × precio en la columna C.

En C4 escribes:  =A4*$B$1
  · A4 es relativa  → al arrastrar a C5 se vuelve A5 (¡bien, cada fila su cantidad!)
  · $B$1 es absoluta → al arrastrar SIGUE siendo $B$1 (¡bien, el precio no cambia!)

Arrastras C4 hacia abajo y obtienes:
  C4 =A4*$B$1
  C5 =A5*$B$1
  C6 =A6*$B$1
⚠️
El fallo nº 1 del entregable: olvidar el $ en la constante. Si escribes =A4*B1 y arrastras, B1 se convierte en B2, B3… (que están vacías) y todo da 0 o error. Antes de arrastrar, mira tu fórmula y pregúntate: "¿qué celda debe quedarse quieta?" → ponle $.

Para referirte a una celda de otra hoja: =Datos!B4 multiplica por lo que haya en B4 de la hoja "Datos". Si el nombre de la hoja tiene espacios, va entre apóstrofos: ='Hoja Cálculo'!B4.

↑ calendario

Teoría E3 · Funciones básicas: SUMA, PROMEDIO, MAX, MIN, CONTAR

Una función es una fórmula con nombre que ya viene hecha. Estructura: =NOMBRE(argumentos). Las cinco básicas:

=SUMA(B2:B10)        → suma todos los valores del rango
=PROMEDIO(B2:B10)    → media aritmética
=MAX(B2:B10)         → el valor más grande
=MIN(B2:B10)         → el valor más pequeño
=CONTAR(B2:B10)      → cuántas celdas tienen un NÚMERO

Puedes mezclar rangos y celdas sueltas: =SUMA(B2:B10; D2; F5). El botón Autosuma (Σ) de la pestaña Inicio inserta automáticamente =SUMA(...) del rango de arriba.

🔢
CONTAR vs CONTARA: CONTAR cuenta solo números; CONTARA (con A) cuenta celdas no vacías (incluido texto). En el entregable se usa CONTAR sobre columnas numéricas.
↑ calendario

Teoría E4 · ⭐ Funciones lógicas: SI, Y, O

Sirven para tomar decisiones: "si pasa esto, pon aquello; si no, pon esto otro". Es lo más evaluado del entregable (columnas como Descuento, Eficiencia, Tipo de Cliente, COND, PRUEBA, GAP).

La función SI

=SI(prueba_lógica; valor_si_VERDADERO; valor_si_FALSO)

Ejemplo: marcar "Aprobado" si la nota de A2 llega a 50, y "Suspenso" si no:

=SI(A2>=50; "Aprobado"; "Suspenso")

Recuerda: el texto va entre comillas; los números, sin comillas. Operadores de comparación: = igual, > mayor, < menor, >= mayor o igual, <= menor o igual, <> distinto.

Las funciones Y / O (varias condiciones a la vez)

=Y(...) es VERDADERO solo si se cumplen todas. =O(...) es VERDADERO si se cumple al menos una. Casi nunca van solas: se meten dentro de un SI.

Eficiencia: VERDADERO si Volumen(B2)>70 Y Empleados(C2)>500
   =Y(B2>70; C2>500)

Tipo de cliente: "MAYORISTA" si Total>2000 O Empleados>500; si no "Minorista"
   =SI(O(D2>2000; C2>500); "MAYORISTA"; "Minorista")

Descuento: si Empleados>450 aplica 10% sobre el total; si no, texto "Mantener coste"
   =SI(C2>450; D2*10%; "Mantener coste")
🧠
Cómo leer un SI anidado: de fuera hacia dentro. =SI(O(...); "MAYORISTA"; "Minorista") se lee: «SI (se cumple O de las condiciones) entonces MAYORISTA, si no Minorista». El O(...) es solo la prueba; primero resuélvela mentalmente (¿verdadero o falso?) y luego elige la rama.

SI anidado (más de dos resultados)

Si hay tres o más casos, se mete un SI dentro de otro:

Calificar: >=90 "Sobresaliente", >=50 "Aprobado", resto "Suspenso"
   =SI(A2>=90; "Sobresaliente"; SI(A2>=50; "Aprobado"; "Suspenso"))
↑ calendario

Teoría E5 · Funciones de texto y de fecha

Texto: cortar y unir cadenas

=IZQUIERDA(B2; 3)     → los 3 primeros caracteres de B2
=DERECHA(B2; 2)       → los 2 últimos caracteres de B2
=EXTRAE(B2; 3; 4)     → 4 caracteres a partir de la posición 3
=CONCATENAR(B2; " "; C2)   → une B2, un espacio y C2
=B2 & " trabaja en " & D2  → lo mismo con el operador &

Ejemplo del modelo del examen: a partir del nombre (B2), apellido (C2) y empresa (D2), construir la frase "Lee Kun-hee trabaja en la empresa Samsung Electronics":

=CONCATENAR(B2; " "; C2; " trabaja en la empresa "; D2)
  o bien:
=B2 & " " & C2 & " trabaja en la empresa " & D2

Y el caso "PRUEBA" del entregable de la carnicería: si no se cumple la condición, escribir "la segunda letra del mes, -*-, y las dos letras a la derecha del mes" (ej. para "Agosto" → "g-*-to"):

=EXTRAE(mes;2;1) & "-*-" & DERECHA(mes;2)
   EXTRAE("Agosto";2;1) = "g"
   DERECHA("Agosto";2)  = "to"
   resultado: "g-*-to"

Fecha

=HOY()        → la fecha de hoy (sin argumentos)
=AÑO(B2)      → el año de la fecha de B2  (ej. 2015)
=MES(B2)      → el número de mes (1–12)
=DIA(B2)      → el día del mes

Caso "GAP": para junio, agosto o diciembre escribe el beneficio %; en el resto, el número del mes de hoy:

=SI(O(MES(fecha)=6; MES(fecha)=8; MES(fecha)=12); beneficio_pct; MES(HOY()))
↑ calendario

Teoría E6 · ⭐ Funciones con criterio, estadísticas y minigráficos

Las funciones "…SI" (suman/cuentan/promedian solo lo que cumple algo)

=SUMAR.SI(rango_criterio; criterio; rango_suma)
=CONTAR.SI(rango; criterio)
=PROMEDIO.SI(rango_criterio; criterio; rango_promedio)

La clave es entender los dos rangos de SUMAR.SI y PROMEDIO.SI: el primero es dónde miras la condición, el último es de dónde sacas el número. Ejemplos del entregable:

# Sumar el Volumen Total (col D) solo de los MAYORISTA (col E)
=SUMAR.SI(E2:E20; "MAYORISTA"; D2:D20)

# Contar cuántas celdas del rango COND son VERDADERO
=CONTAR.SI(K2:K25; VERDADERO)

# Promedio de Vegetal (E) de los meses con beneficio < 1500 (col F)
=PROMEDIO.SI(F2:F25; "<1500"; E2:E25)
⚠️
El criterio con operador va entre comillas: ">100", "<1500", "<>0". Un texto exacto también: "MAYORISTA". Un número o un valor lógico pueden ir sin comillas.

Estadísticas y matemáticas

=VAR.S(C2:C25)    → varianza de muestra
=RAIZ(C2)         → raíz cuadrada
=POTENCIA(C2; 3)  → C2 al cubo   (igual que  =C2^3 )

Minigráficos (sparklines)

Son gráficos diminutos dentro de una sola celda. Insertar → grupo Minigráficos → elige Línea, Columna o Pérdidas y ganancias, selecciona el rango de datos y la celda de destino. En el entregable se piden sobre columnas como Ternera/Pollo/Vegetal o Volumen/Empleados.

↑ calendario

Teoría E7 · ⭐ Importar datos, formato condicional, ordenar y subtotales

Importar un fichero de texto

El entregable da un .txt que hay que meter en una hoja. Ruta: Datos → Obtener datos → Desde texto/CSV (o "Desde un archivo"). Lo crucial es indicar bien el delimitador, es decir, qué carácter separa las columnas:

Excel muestra una vista previa; eliges el delimitador, confirmas que detecta los encabezados, y Cargar en la celda/hoja que pidan (a veces "a partir de B2").

Formato condicional

Da color a las celdas según una regla, sin cambiar su valor. Inicio → Formato condicional:

Ordenar y Subtotales

Ordenar: Datos → Ordenar, eligiendo columna y sentido (A-Z o Z-A). Subtotales (Datos → Esquema → Subtotal) inserta filas de resumen automáticas por grupos: eliges "Para cada cambio en" (la columna que agrupa), "Usar función" (Suma, Promedio, Máximo…) y "Agregar subtotal a" (las columnas a calcular).

⚠️
Regla absoluta de los subtotales: hay que ORDENAR primero por la columna que vas a agrupar. Si no ordenas, los subtotales salen fragmentados (varios "Promedio LEGAP" en vez de uno). Orden → Subtotal, siempre en ese orden.
↑ calendario

Teoría E8 · Gráficos y tablas dinámicas

Gráficos

Seleccionas los datos → Insertar → eliges tipo (columnas, barras, líneas, circular, combinado…). Tras crearlo aparecen las pestañas Diseño de gráfico y Formato para títulos, colores y etiquetas.

🔑
"Gráfico en hoja nueva", no como objeto: el entregable lo pide explícitamente. Clic derecho en el gráfico → Mover gráficoHoja nueva. Así el gráfico ocupa una pestaña entera en vez de flotar sobre los datos.

Tipos que se piden: columnas agrupadas 3D (solo con los datos de un año), y gráfico combinado (una serie en columnas y otra superpuesta). Las circulares no admiten valores negativos ni cero.

Tablas dinámicas

Resumen y analizan grandes tablas arrastrando campos, sin fórmulas. Seleccionas los datos → Insertar → Tabla dinámica → en una hoja nueva aparece el panel "Campos" con 4 áreas:

ÁreaPara qué
Filasel campo que quieres como filas (p. ej. Región).
Columnasel campo que quieres como columnas (p. ej. Producto).
Valoresel número a totalizar (Ventas). Por defecto SUMA; puedes cambiar a Promedio, Recuento…
Filtrosun campo para filtrar toda la tabla (p. ej. solo el 1er trimestre).

Para cambiar de Suma a Promedio: clic en el campo de Valores → Configuración de campo de valor → eliges la operación. La Segmentación de datos (Analizar → Insertar Segmentación) añade botones de filtro visuales. Un gráfico dinámico es un gráfico ligado a la tabla, con desplegables de filtro.

↑ calendario

Teoría E9 · Base de datos en Excel con BUSCARV (Feedback 1)

El ejercicio de Feedback 1 monta una pequeña base de datos de autoescuela con varias hojas (Alumnos, Profesores, Clases, Facturas…) relacionadas entre sí por un campo común (el Nº de registro). La función estrella para relacionar hojas es BUSCARV.

=BUSCARV(valor_buscado; tabla; nº_columna; FALSO)
  · valor_buscado: lo que buscas (p. ej. el Nº de registro)
  · tabla: el rango donde buscar (la 1ª columna es por donde busca)
  · nº_columna: qué columna de esa tabla devolver (contando desde 1)
  · FALSO: coincidencia EXACTA (casi siempre FALSO)

Ejemplo: en la hoja Clases tienes el DNI del alumno y quieres traer su nombre desde la hoja Alumnos (donde la columna 1 es el DNI y la columna 2 el nombre):

=BUSCARV(A2; Alumnos!$A$2:$D$100; 2; FALSO)

Si no encuentra el valor, devuelve #N/A. Conceptos asociados del ejercicio: validación de datos y listas desplegables (Datos → Validación de datos) para evitar errores de tecleo, y el cálculo de una factura: Base imponible, IVA (21%), Total con IVA, restar anticipos y obtener el saldo pendiente.

↑ calendario

📖 Teoría completa · Python

Todo el bloque de Python (UD4–UD6 y los notebooks) desde cero. No hace falta saber programar: empezamos por lo más básico.

Teoría P1 · Entorno, Python como calculadora, variables y tipos

Python es un lenguaje de programación interpretado y de alto nivel (creado por Guido van Rossum, 1991). "Interpretado" significa que el ordenador lee y ejecuta tu código línea por línea, sin un paso previo de compilación. Se escribe en editores como VS Code o en cuadernos Jupyter (celdas que mezclan texto y código y se ejecutan con Shift+Enter).

Python como calculadora

print(2 + 3)     # 5    suma
print(10 - 4)    # 6    resta
print(3 * 7)     # 21   multiplicación
print(15 / 3)    # 5.0  división (¡siempre da decimal!)
print(2 ** 3)    # 8    potencia
print(10 % 3)    # 1    módulo (el RESTO de dividir)
print(10 // 3)   # 3    división entera (sin decimales)

print(...) muestra cosas en pantalla. El # inicia un comentario (Python lo ignora; sirve para anotar).

Variables

Una variable es un nombre que guarda un valor. Se crea con = (asignación). No hace falta declarar el tipo: Python lo deduce solo.

nombre = "Juan"      # texto (str)
edad = 25            # entero (int)
altura = 1.75        # decimal (float)
es_alumno = True     # booleano (bool)
print(nombre, edad)  # Juan 25

Reglas: Python distingue mayúsculas (edad y Edad son distintas) y se usa _ para separar palabras (num_clases). Para ver el tipo de algo: type(edad)<class 'int'>.

Asignación múltiple

a, b, c = 100, 200, 300    # a=100, b=200, c=300
x = y = z = 0              # las tres valen 0
↑ calendario

Teoría P2 · Operadores, conversión de tipos e importar librerías

Operadores

TipoOperadores
Aritméticos+   -   *   /   // (división entera)   % (módulo)   ** (potencia)
Comparación== igual   != distinto   >   <   >=   <=   (devuelven True/False)
Lógicosand (y)   or (o)   not (no)
Asignación=   +=   -=   *=   /=   x += 2 es x = x + 2
⚠️
El doble igual: = ASIGNA (guarda un valor en una variable), == COMPARA (pregunta si dos cosas son iguales). Confundirlos es el error más típico al empezar.

Conversión de tipos

edad = "25"            # esto es TEXTO, no número
edad_num = int(edad)   # ahora sí es el entero 25
pi = 3.14
pi_txt = str(pi)       # "3.14" como texto
n = float("19.5")      # 19.5 como decimal

# input() SIEMPRE devuelve texto: hay que convertir para operar
edad = int(input("¿Tu edad? "))

Importar librerías

Python trae módulos extra con funciones ya hechas. Se cargan con import:

import math
print(math.pi)        # 3.14159...
print(math.sqrt(16))  # 4.0

from math import sin, pi   # importar solo lo que necesitas
import math as m           # con alias: m.cos(0)

Otras operaciones numéricas útiles: round(b, 3) redondea a 3 decimales, math.floor(b) redondea hacia abajo, math.ceil(b) hacia arriba, abs(b) valor absoluto.

↑ calendario

Teoría P3 · Listas

Una lista es una colección ordenada y mutable (se puede cambiar) de elementos, escrita entre corchetes [ ]. Admite tipos mezclados y duplicados.

numeros = [5, 10, 15, 20, 25]
mixta = [10, "Hola", True, 3.14]

Índices y slicing

numeros[0]    # 5    (el primero: el índice empieza en 0)
numeros[-1]   # 25   (el último)
numeros[1:4]  # [10, 15, 20]   (del 1 al 3; el 4 NO entra)
numeros[:3]   # [5, 10, 15]    (desde el principio)
numeros[2:]   # [15, 20, 25]   (hasta el final)
numeros[::2]  # [5, 15, 25]    (de dos en dos)

Modificar

numeros[2] = 35        # cambia el tercer elemento
numeros[1:3] = [25, 35]  # cambia un rango

Métodos (lo que una lista sabe hacer)

MétodoQué hace
append(x)añade x al final
insert(i, x)inserta x en la posición i
extend(otra)añade todos los elementos de otra lista (concatena)
remove(x)elimina la primera aparición de x
pop() / pop(i)saca y devuelve el último (o el de índice i)
index(x)devuelve la posición de x
count(x)cuántas veces aparece x
sort()ordena (ascendente; sort(reverse=True) descendente)
reverse()invierte el orden
copy()hace una copia
clear()vacía la lista

Y dos funciones que se usan con listas (no son métodos): len(lista) (cuántos elementos) y sum(lista) (suma). Para saber si algo está: 50 in numeros → True/False. Para pasar texto a lista de caracteres: list("Hola")['H','o','l','a'].

↑ calendario

Teoría P4 · Strings (cadenas de texto)

Un string es una secuencia de caracteres entre comillas (simples, dobles o triples para varias líneas). Es inmutable: no puedes cambiar una letra suelta, pero sí crear uno nuevo.

s = "Hola, Mundo!"
s + " adiós"     # concatenar con +
s * 3            # repetir tres veces
s[0]             # 'H'   (índice desde 0)
s[-1]            # '!'   (último)
s[0:4]           # 'Hola' (slicing, el 4 no entra)
len(s)           # 12    (longitud)

Métodos de string

MétodoQué hace
upper() / lower()a mayúsculas / minúsculas
strip()quita los espacios del principio y del final
replace(a, b)cambia todas las apariciones de a por b
split(sep)parte el texto en una lista usando el separador
"sep".join(lista)al revés: une una lista de textos en un solo string
"Me gusta Java".replace("Java", "Python")   # "Me gusta Python"
"Hola como estas".split(" ")               # ['Hola','como','estas']
" ".join(["Python","es","genial"])         # "Python es genial"

f-strings (la forma moderna de meter variables en un texto): pones una f antes de las comillas y las variables entre llaves: f"Hola {nombre}, tienes {edad}".

↑ calendario

Teoría P5 · Diccionarios, tuplas y sets

Diccionarios

Colección de pares clave: valor, entre llaves { }. Las claves son únicas; accedes por la clave (no por posición). Es mutable.

persona = {"nombre": "Ana", "edad": 30, "ciudad": "Sevilla"}
persona["nombre"]          # 'Ana'
persona["edad"] = 31       # modificar
persona["profesion"] = "Ingeniera"   # añadir
persona.get("direccion", "No disponible")  # sin error si no existe
persona.pop("ciudad")      # elimina y devuelve
persona.keys()             # todas las claves
persona.values()           # todos los valores
persona.items()            # pares (para recorrer con for)

Tuplas

Como una lista pero entre paréntesis ( ) e inmutable (no se puede modificar tras crearla). Útil para datos que no deben cambiar.

dias = ("Lunes", "Martes", "Miércoles")
dias[1]            # 'Martes'
dias.count(2)      # nº de apariciones
dias.index("Lunes")  # posición
len(dias)
list(dias)         # convertir a lista si necesitas modificar

Sets (conjuntos)

Colección desordenada de elementos únicos (sin duplicados), entre llaves { }. Ideal para eliminar repetidos y operar como en teoría de conjuntos.

s = {1, 2, 3, 4}
s.add(5)                 # añadir
s.remove(2)              # eliminar
{1,2,3}.union({3,4})        # {1,2,3,4}
{1,2,3}.intersection({2,3,4})  # {2,3}
{1,2,3}.difference({2,3})      # {1}
4 in s                   # True/False
↑ calendario

Teoría P6 · ⭐ Control de flujo: condicionales y bucles

Hasta ahora el código iba en línea recta. El control de flujo permite decidir (condicionales) y repetir (bucles). En Python, lo que va "dentro" de un if o un bucle se marca con indentación (4 espacios). Eso es obligatorio: la sangría ES la sintaxis.

Condicionales: if / elif / else

edad = int(input("Edad: "))
if edad < 18:
    print("Menor de edad")
elif 18 <= edad < 65:
    print("Adulto")
else:
    print("Senior")

Bucle for (recorre una colección o un rango)

for fruta in ["manzana", "banana", "cereza"]:
    print(fruta)

for i in range(1, 6):    # 1,2,3,4,5
    print(i)

Bucle while (repite mientras se cumpla la condición)

contador = 1
while contador <= 5:
    print(contador)
    contador += 1     # ¡imprescindible! si no, bucle infinito

range, break y continue

range(5)          # 0,1,2,3,4
range(2, 7)       # 2,3,4,5,6
range(0, 11, 2)   # pares 0..10
range(10, 0, -1)  # cuenta atrás 10..1

for n in range(1, 10):
    if n == 5:
        break      # corta el bucle del todo
    if n == 3:
        continue   # salta SOLO esta vuelta
    print(n)

Bucles anidados (matrices)

Una matriz es una lista de listas. Para recorrerla, un bucle dentro de otro:

matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for fila in matriz:
    for elemento in fila:
        print(elemento)
🔑
El patrón acumulador (clave para los 25 problemas): declara la variable resultado ANTES del bucle y aliméntala dentro.
Suma → total = 0total += n.
Filtrar → pares = []if n%2==0: pares.append(n).
Contar → c = 0if cond: c += 1.
Máximo sin max()mayor = lista[0]if n > mayor: mayor = n.
↑ calendario

Teoría P7 · ⭐ Funciones, comprensiones y POO

Funciones

Una función empaqueta un trozo de código con nombre para reutilizarlo. Se define con def y devuelve un resultado con return.

def suma(a, b):
    return a + b

resultado = suma(3, 4)    # 7

# Parámetros con valor por defecto
def saludar(nombre="amigo"):
    print(f"Hola, {nombre}")
saludar()          # Hola, amigo
saludar("Ana")     # Hola, Ana

Comprensiones (crear listas/diccionarios en una línea)

cuadrados = [x**2 for x in range(1, 6)]            # [1,4,9,16,25]
pares = [x for x in range(1, 11) if x % 2 == 0]    # con filtro
cuad_dict = {x: x**2 for x in range(1, 6)}         # {1:1, 2:4, ...}

Funciones avanzadas que pueden caer: lambda (función anónima de una línea: cuadrado = lambda x: x**2), map (map(lambda x: x*2, lista)) y filter (filter(lambda x: x>0, lista)).

Programación Orientada a Objetos (POO)

class Contacto:
    def __init__(self, nombre, telefono):   # constructor
        self.nombre = nombre                # atributos
        self.telefono = telefono
    def mostrar(self):                      # método
        print(f"{self.nombre}: {self.telefono}")

c = Contacto("Ana", "600123123")
c.mostrar()

# HERENCIA: Alumno parte de Registro
class Registro:
    def __init__(self, nombre):
        self.nombre = nombre

class Alumno(Registro):
    def __init__(self, nombre, curso):
        super().__init__(nombre)   # reutiliza el constructor del padre
        self.curso = curso

Conceptos POO que pueden preguntarse: clase (plantilla) vs objeto (instancia), __init__ (constructor), self (el objeto actual), herencia (una clase parte de otra), encapsulación (atributos privados con __), polimorfismo (mismo método, comportamiento distinto según la clase).

Extras de UD6 (test): excepciones, ficheros

# Manejo de errores
try:
    n = int(input("Número: "))
    print(10 / n)
except ValueError:
    print("Eso no es un número")
except ZeroDivisionError:
    print("No se puede dividir por cero")

# Leer/escribir ficheros
with open("datos.txt", "r") as f:   # 'r' leer, 'w' escribir, 'a' añadir
    contenido = f.read()
↑ calendario

✍️ Banco de ejercicios

45 ejercicios de Excel + 95 de Python = 140 ejercicios, más los simulacros. Hazlos de verdad (en una hoja de Excel y en un cuaderno de Python), no de cabeza. Las soluciones, con el razonamiento completo, están en el archivo aparte Soluciones_Plan_Recuperacion_Informatica.html. Un dataset de Excel que se reutiliza varias veces:

DATASET "VENTAS" (lo usaremos en varios ejercicios)
Fila 1 = cabeceras.  Volumen Unitario fijo en la celda G1 = 25
   A          B         C            D              E
1  Empresa    Volumen   Empleados    VolTotal       Tipo
2  Space X     80        520
3  Google      60        300
4  Tesla      120        700
5  Pfizer      45        480
6  Iberia      95        510

🟢 Excel

Entorno y referencias (Teoría E1–E2)

Ejercicio E1entorno fácil
Di qué tipo de dato (texto, número o fórmula) es cada uno y hacia qué lado se alineará solo: (a) Iberia, (b) 2025, (c) =SUMA(B2:B6), (d) 15/03/2018, (e) 30%.
Ejercicio E2errores fácil
Asocia cada error con su causa: #¡DIV/0!, #¿NOMBRE?, #N/A, #####, #¡REF!. Causas: (1) columna estrecha, (2) BUSCARV no encuentra el valor, (3) borraste una celda referenciada, (4) escribiste mal el nombre de la función, (5) dividiste entre una celda vacía.
Ejercicio E3rangos fácil
(a) ¿Cuántas celdas hay en el rango B2:D6? (b) Escribe el rango que abarca de la celda A1 a la celda C10. (c) ¿Qué significa =Datos!A1?
Ejercicio E4referencias media
Tienes el IVA fijo en B1 = 21% y precios sin IVA en A4, A5, A6. Escribe en C4 la fórmula del precio con IVA (precio + precio×IVA) lista para arrastrar hacia abajo. Indica qué referencias llevan $ y por qué.
Ejercicio E5referencias media
Si en C4 escribes =A4*$B$1 y la arrastras hasta C6, ¿qué fórmula queda en C5 y en C6? Si en cambio escribieras =A4*B1 (sin $), ¿qué pasaría y por qué daría mal?
Ejercicio E6mixtas difícil
Quieres construir una tabla de multiplicar: los factores 1–10 en la fila 1 (B1:K1) y en la columna A (A2:A11), y cada celda interior es el producto. Escribe la fórmula de B2 con referencias mixtas para poder arrastrarla a toda la tabla. (Pista: hay que fijar la fila de arriba y la columna de la izquierda.)

Funciones básicas (Teoría E3)

Ejercicio E7VENTAS fácil
En el dataset VENTAS, escribe las fórmulas para: (a) la suma total de Volumen (B), (b) el promedio de Empleados (C), (c) el Volumen máximo, (d) el mínimo de Empleados, (e) cuántas empresas hay (cuenta sobre la columna B).
Ejercicio E8VolTotal media
La columna D (VolTotal) es Volumen × Volumen Unitario, y el Volumen Unitario está fijo en G1 = 25. Escribe la fórmula de D2 lista para arrastrar hasta D6.
Ejercicio E9básicas fácil
Explica la diferencia entre =CONTAR(A2:A6) y =CONTARA(A2:A6) aplicada a la columna Empresa (texto) y a la columna Volumen (números). ¿Qué devuelve cada una?

Funciones lógicas (Teoría E4)

Ejercicio E10SI fácil
En la columna F escribe una fórmula que ponga "Grande" si los Empleados (C) superan 500, y "Pequeña" si no. Escríbela para F2 lista para arrastrar.
Ejercicio E11SI+Y media
Columna "Eficiencia": VERDADERO si el Volumen (B) es mayor que 70 y los Empleados (C) son más de 500; FALSO en cualquier otro caso. Escribe la fórmula para la fila 2.
Ejercicio E12SI+O media
Columna "Tipo": "MAYORISTA" si el VolTotal (D) supera 2000 o los Empleados (C) superan 500; si no, "Minorista". Escribe la fórmula de E2.
Ejercicio E13SI anidado difícil
Una columna "Descuento": si los Empleados (C) superan 450 aplica un 10% sobre el VolTotal (D); si no, escribe el texto "Mantener coste". Y aparte, un SI anidado que clasifique el Volumen (B) en "Alto" (≥100), "Medio" (≥60) o "Bajo" (resto).

Texto y fecha (Teoría E5)

Ejercicio E14texto media
Con B2 = "Samsung": (a) los 3 primeros caracteres, (b) los 2 últimos, (c) 3 caracteres a partir del 2º. Escribe las tres fórmulas y di qué devuelven.
Ejercicio E15concatenar media
Tienes nombre en B2 (Lee), apellido en C2 (Kun-hee) y empresa en D2 (Samsung Electronics). Escribe la fórmula (con CONCATENAR y también con &) que produzca: Lee Kun-hee trabaja en la empresa Samsung Electronics.
Ejercicio E16texto+SI difícil
El mes está en B2 (ej. "Agosto"). Construye con EXTRAE, DERECHA y & la cadena "segunda letra del mes + -*- + las dos letras de la derecha" → para Agosto debe dar g-*-to. Para Octubre, c-*-re.
Ejercicio E17fecha media
La fecha de creación está en B2 (2015-10-20). (a) Extrae el año en una columna nueva. (b) Escribe una fórmula que devuelva el beneficio% (celda K2) si el mes de B2 es junio, agosto o diciembre, y si no, el número de mes de la fecha de hoy.

Funciones con criterio y estadísticas (Teoría E6)

Ejercicio E18SUMAR.SI media
Con la columna Tipo en E2:E6 y VolTotal en D2:D6, escribe la fórmula que sume el VolTotal solo de las empresas "MAYORISTA".
Ejercicio E19CONTAR.SI media
(a) Cuenta cuántas empresas tienen Volumen (B2:B6) mayor que 70. (b) Cuenta cuántas celdas del rango COND (K2:K25) son VERDADERO.
Ejercicio E20PROMEDIO.SI difícil
Tienes Beneficio en F2:F25 y Vegetal en E2:E25. Escribe la fórmula que dé el promedio de Vegetal solo de los meses cuyo Beneficio sea inferior a 1500 €.
Ejercicio E21estadísticas media
Sobre el rango C2:C25 escribe: (a) la varianza de muestra, (b) la raíz cuadrada de la celda C2, (c) C2 elevado al cubo (de dos formas distintas).

Importar, formato condicional, ordenar, subtotales (Teoría E7)

Ejercicio E22importar media
Describe paso a paso cómo importar FicheroImportar (1).txt (separado por punto y coma, con encabezados) a partir de la celda B2 de una hoja. ¿Qué cambiarías si el fichero estuviera separado por tabulador?
Ejercicio E23formato cond. media
En la columna Volumen (B): pon fondo verde claro y fuente verde oscuro para valores entre 70 y 150, y fondo amarillo con fuente naranja para valores mayores de 150. Explica con qué reglas de formato condicional lo harías.
Ejercicio E24formato cond. fácil
En una columna "Estado" con valores Pendiente / Cumplido / En trámite, aplica relleno rojo+fuente blanca, verde y naranja respectivamente. ¿Qué tipo de regla usas? Y en la columna VolTotal, ¿cómo aplicarías una barra de datos naranja?
Ejercicio E25subtotales difícil
Tienes una tabla de empresas externas con columnas Empresa y Región. Quieres el promedio de Región por cada Empresa. Explica el orden exacto de pasos (incluyendo el paso obligatorio previo) y qué eliges en el cuadro de Subtotales.

Gráficos y tablas dinámicas (Teoría E8)

Ejercicio E26gráfico media
Quieres un gráfico de columnas agrupadas 3D solo con los datos del año 2017 y que aparezca en una hoja nueva (no flotando sobre los datos). Describe los pasos.
Ejercicio E27minigráficos fácil
Explica cómo insertar minigráficos de columna para las filas de Ternera, Pollo y Vegetal, y en qué se diferencia un minigráfico de un gráfico normal.
Ejercicio E28tabla dinámica media
Con una tabla de ventas (columnas: Fecha, Producto, Región, Vendedor, Cantidad, Precio Total), monta una tabla dinámica que muestre el total de Precio Total por Región (filas) y Producto (columnas). Di qué campo va en cada área.
Ejercicio E29tabla dinámica difícil
Sobre la misma tabla: (a) añade el promedio de Cantidad por producto en cada región (¿cómo cambias de Suma a Promedio?), (b) filtra solo el primer trimestre (ene–mar). ¿Qué área usas para el filtro?
Ejercicio E30BUSCARV difícil
En la hoja Clases tienes el DNI del alumno en A2. En la hoja Alumnos, la columna A es el DNI y la B el Nombre (rango A2:D100). Escribe la fórmula BUSCARV que traiga el nombre del alumno, con coincidencia exacta y lista para arrastrar.

Repaso Excel · variantes y casos (Teoría E1–E9)

Ejercicio E31referencias media
La celda D7 contiene los gastos fijos mensuales. Escribe la fórmula de "Beneficio neto" = Beneficio (col F) − gastos fijos, lista para arrastrar por todas las filas. ¿Qué referencia se ancla?
Ejercicio E32porcentaje media
"Beneficio %" = Beneficio neto / Beneficio. Escribe la fórmula y explica cómo darle formato de porcentaje sin meter el formato dentro de la fórmula.
Ejercicio E33COND con Y media
Columna COND: VERDADERO si Ternera (C) > 300 y Pollo (D) < 500 y Vegetal (E) > 200; FALSO en cualquier otro caso. Escribe la fórmula.
Ejercicio E34SUMAR.SI inverso difícil
Suma los valores de GAP (J2:J25) solo de los meses en los que COND (K2:K25) sea FALSO. (Pista: el rango de criterio es COND, el criterio es FALSO, el rango de suma es GAP.)
Ejercicio E35RAIZ y cubo media
En una celda calcula la RAIZ del valor de la celda de su izquierda, y en la siguiente el cubo de esa raíz. Si la raíz está en M2, escribe la fórmula del cubo de dos maneras.
Ejercicio E36configuración fácil
Enumera lo que hay que configurar en cada hoja del entregable para que se parezca al modelo: orientación, márgenes, encabezado, pie y pestaña. ¿Qué debe llevar el encabezado y qué el pie según el enunciado?
Ejercicio E37CONTAR fácil
Escribe la fórmula que cuente cuántas celdas del rango GAP (J2:J25) contienen un número. Si todas tienen número, ¿cuánto da?
Ejercicio E38factura/IVA difícil
Una factura tiene un Total bruto en B10. Calcula con fórmulas: (a) IVA al 21%, (b) base imponible (total bruto sin IVA), (c) total con IVA, (d) saldo pendiente tras restar un anticipo de B12. Escribe las cuatro fórmulas.
Ejercicio E39validación media
Quieres que una celda solo admita los valores "A", "B" o "C" mediante una lista desplegable. ¿Qué herramienta usas y dónde está? Y para impedir números negativos en otra celda, ¿qué configurarías?
Ejercicio E40ordenar/filtrar fácil
Explica la diferencia entre ordenar y filtrar una tabla. Para ver solo las empresas con Volumen > 100 sin borrar el resto, ¿cuál usas?
Ejercicio E41nombres de rango media
Has dado el nombre Ventas_Enero al rango B2:B5. (a) ¿Cómo se asigna un nombre a un rango? (b) ¿A qué tipo de referencia equivale usar un nombre, relativa o absoluta? (c) Escribe una SUMA usando el nombre.
Ejercicio E42tabla fácil
¿Cómo conviertes un rango de datos en una tabla de Excel y cómo le cambias el nombre? ¿Y cómo se vuelve a convertir una tabla en rango normal?
Ejercicio E43prioridad media
Sin calculadora, di el resultado de estas fórmulas según la prioridad de operadores de Excel: (a) =2+3*4, (b) =(2+3)*4, (c) =2^3+1, (d) =10/2-3.
Ejercicio E44minigráfico/Σ fácil
Para las columnas Volumen, Empleados y VolTotal del dataset VENTAS, indica las tres funciones de resumen que pide el entregable (Suma, Promedio, Máximo) escritas como fórmulas sobre B2:B6.
Ejercicio E45depuración difícil
Un compañero escribió =SUMAR.SI(E2:E6, MAYORISTA, D2:D6) y le da #¿NOMBRE?. (a) ¿Cuál es el error? (b) Reescríbela correctamente. (c) Otra fórmula da #¡VALOR! al sumar una columna que parece numérica: ¿qué sospechas?

🟡 Python

Estos ejercicios son los reales del curso (de los notebooks). Escríbelos y ejecútalos en Jupyter o VS Code; no vale leerlos.

Calculadora y variables (Teoría P1)

Ejercicio P1calculadora fácil
Calcula con Python cuánto es 25 + 18.
Ejercicio P2calculadora fácil
Multiplica 6 por 9.
Ejercicio P3calculadora fácil
Encuentra el resto de dividir 29 entre 5 (operador módulo).
Ejercicio P4calculadora fácil
Eleva 4 a la potencia de 5.
Ejercicio P5variables fácil
Declara tres variables: nombre, edad y ciudad. Asígnales valores e imprime una frase que los combine (p. ej. "Me llamo Juan, tengo 25 años y vivo en Madrid").
Ejercicio P6tipos fácil
Crea tres variables: una entera, una flotante y una cadena de texto. Usa type() para imprimir el tipo de cada una.
Ejercicio P7conversión fácil
Convierte el número 123 a cadena de texto. Convierte el texto "45.67" a número flotante e imprime el resultado.
Ejercicio P8multiline/escape media
Usando triples comillas, imprime un texto de 3 líneas. Incluye en él un salto de línea con \n y un tabulador con \t.

Operadores y conversión (Teoría P2)

Ejercicio P9operadores fácil
Imprime el resultado de 58 / 5, 58 // 5 y 58 % 5. Explica con tus palabras la diferencia entre los tres.
Ejercicio P10string fácil
Dada var_1 = "Módulo 1 de Python ", conviértela toda a mayúsculas y luego toda a minúsculas.
Ejercicio P11len+redondeo media
Consulta la longitud de var_1 y calcula la división de ese número entre 7, redondeada a 4 decimales.
Ejercicio P12prioridad media
Añade paréntesis a la operación 12 - 4 * 2 - 2 + 2 para que el resultado final sea cero (0).
Ejercicio P13prioridad media
Añade paréntesis a la operación 12 - 4 * 2 - 2 + 2 para que el resultado final sea catorce (14).
Ejercicio P14input media
Pide al usuario su edad e imprime si es mayor de edad o no.

Listas (Teoría P3)

Ejercicio P15listas fácil
Crea una lista llamada mis_numeros que contenga 5, 10, 15, 20, 25.
Ejercicio P16listas fácil
Accede al tercer elemento de mis_numeros y guárdalo en tercer_elemento.
Ejercicio P17listas fácil
Cambia el segundo elemento de mis_numeros para que sea 12.
Ejercicio P18listas fácil
Añade el número 30 al final de mis_numeros con el método apropiado.
Ejercicio P19listas fácil
Elimina el número 15 de mis_numeros.
Ejercicio P20listas media
Inserta el número 18 en la segunda posición de mis_numeros.
Ejercicio P21listas media
Crea otros_numeros = [35, 40, 45] y concaténala con mis_numeros usando el método adecuado.
Ejercicio P22listas fácil
Encuentra la posición (índice) del número 25 en mis_numeros.
Ejercicio P23listas fácil
Crea numeros_repetidos = [1, 2, 3, 2, 1, 2] y cuenta cuántas veces aparece el 2.
Ejercicio P24listas fácil
Ordena mis_numeros en orden ascendente.
Ejercicio P25listas fácil
Invierte el orden de los elementos de mis_numeros.
Ejercicio P26listas fácil
Crea mi_lista_mixta con: 10, "Hola", True, 3.14, [1, 2, 3].
Ejercicio P27slicing media
Usa slicing para obtener los primeros 3 elementos de mis_numeros.
Ejercicio P28slicing media
Reemplaza los dos primeros elementos de mis_numeros por 100 y 200.
Ejercicio P29listas fácil
Crea una lista vacía llamada nueva_lista.
Ejercicio P30listas fácil
Copia el contenido de mis_numeros en una nueva lista copia_numeros.
Ejercicio P31listas fácil
Crea valores = [10, 20, 30, 40] y calcula la suma de sus elementos con el método/función adecuado.
Ejercicio P32listas media
Convierte la cadena "Hola Mundo" en una lista de caracteres.
Ejercicio P33listas fácil
Borra todos los elementos de mis_numeros con el método correcto.
Ejercicio P34listas fácil
Crea una variable esta_presente que compruebe si el número 50 está en mis_numeros.

Strings (Teoría P4)

Ejercicio P35strings fácil
Crea saludo = "Hola" y nombre = "Juan" y concaténalos para formar "Hola, Juan!".
Ejercicio P36strings fácil
Crea palabra = "Python" y repítela 3 veces para formar "PythonPythonPython".
Ejercicio P37strings fácil
Dado fruta = "manzana", accede al primer y al último carácter.
Ejercicio P38strings fácil
Crea texto = "buenos días" y conviértelo a mayúsculas.
Ejercicio P39strings fácil
Dado frase = "Me gusta Java", reemplaza "Java" por "Python".
Ejercicio P40strings media
Crea oracion = "Hola, cómo estás?" y divídelo en palabras con split().
Ejercicio P41strings media
Dada palabras = ["Python", "es", "genial"], únelas en un solo string separado por espacios.

Diccionarios (Teoría P5)

Ejercicio P42dict fácil
Crea mi_diccionario con claves 'nombre', 'edad', 'ciudad' y valores 'Ana', 30, 'Sevilla'.
Ejercicio P43dict fácil
Accede al valor de la clave 'nombre' y guárdalo en nombre.
Ejercicio P44dict fácil
Cambia el valor de la clave 'edad' a 31.
Ejercicio P45dict fácil
Agrega una clave 'profesión' con valor 'Ingeniera'.
Ejercicio P46dict media
Usa get() para acceder a la clave 'direccion' y que devuelva 'No disponible' si no existe.
Ejercicio P47dict fácil
Elimina la clave 'ciudad' con el método pop().
Ejercicio P48dict fácil
Obtén todas las claves del diccionario con el método adecuado.

Tuplas (Teoría P5)

Ejercicio P49tuplas fácil
Crea una tupla mi_tupla con los números 1, 2, 3, 4, 5.
Ejercicio P50tuplas fácil
Accede al segundo elemento de mi_tupla y guárdalo en segundo_elemento.
Ejercicio P51tuplas media
Crea tupla2 = (6, 7, 8) y concaténala con mi_tupla en tupla_concatenada.
Ejercicio P52tuplas fácil
Crea mi_tupla_repetida = (1, 2, 2, 3, 2, 4) y cuenta cuántas veces aparece el 2.
Ejercicio P53tuplas fácil
Encuentra el índice de la primera aparición del número 3 en mi_tupla.
Ejercicio P54tuplas media
Convierte mi_tupla en una lista llamada mi_lista_convertida.
Ejercicio P55tuplas fácil
Comprueba si el número 5 está en mi_tupla y almacena el resultado en existe_5.

Sets (Teoría P5)

Ejercicio P56sets fácil
Crea un set mi_set con los números 1, 2, 3, 4.
Ejercicio P57sets fácil
Agrega el número 5 al set mi_set.
Ejercicio P58sets fácil
Elimina el número 2 de mi_set con remove().
Ejercicio P59sets media
Crea otro_set = {3, 4, 5} y haz la unión de mi_set y otro_set.
Ejercicio P60sets media
Haz la intersección de mi_set y otro_set.
Ejercicio P61sets fácil
Comprueba si el número 4 está en mi_set y almacénalo en esta_presente.
Ejercicio P62sets fácil
Elimina todos los elementos de mi_set con el método adecuado.

Control de flujo · básico (Teoría P6)

Ejercicio P63if/elif/else media
Clasifica la edad de una persona introducida por teclado: menor de 18 → "Menor de edad"; entre 18 y 65 → "Adulto"; mayor de 65 → "Senior".
Ejercicio P64condicional media
Toma tres números como entrada e imprime cuál es el mayor.
Ejercicio P65for fácil
Crea una lista con 5 de tus películas favoritas y usa un bucle for para imprimir cada una.
Ejercicio P66while fácil
Usa un bucle while para imprimir los números del 1 al 10.
Ejercicio P67break/continue media
Escribe un bucle for que imprima del 1 al 10 pero que se detenga si el número es 7 y que salte el número 4.
Ejercicio P68range fácil
Usa range() para imprimir los números pares entre 0 y 20 (incluyendo el 20).
Ejercicio P69range fácil
Usa range() para contar desde 10 hasta 1 e imprime los números.
Ejercicio P70comprensión media
Crea con una comprensión de lista los cuadrados de los números del 1 al 10.

Control de flujo · problemas (Teoría P6–P7)

Ejercicio P71for+if media
Crea numeros con los números del 1 al 20 y usa un for para filtrar solo los pares en una nueva lista pares.
Ejercicio P72función media
Escribe una función que reciba una cadena y cuente cuántas vocales hay; debe devolver el total.
Ejercicio P73dict+for media
Dado un diccionario de productos con precios, usa un for para calcular el precio total de todos.
Ejercicio P74máximo media
Crea una lista de enteros y usa un for para encontrar el mayor. No uses max().
Ejercicio P75for+len media
Dada una lista de palabras, encuentra con un for todas las de longitud mayor a 4 y guárdalas en una lista nueva.
Ejercicio P76for+if media
Dada una lista de números del 1 al 10, selecciona los mayores a 5 y calcula su suma total.
Ejercicio P77dict+if media
Dado un diccionario de productos con precios, encuentra solo los productos cuyo precio sea mayor a 20.
Ejercicio P78producto media
Dada una lista de números, filtra los pares y calcula el producto de todos ellos.
Ejercicio P79strings+for difícil
Dada una lista de nombres, selecciona los que empiezan por 'M' y calcula la longitud total combinada.
Ejercicio P80dict+contar difícil
Dado un diccionario de ciudades con poblaciones, selecciona las ciudades cuyo nombre tenga más de 6 caracteres y cuenta cuántas cumplen.
Ejercicio P81promedio media
Dada una lista de enteros (positivos y negativos), selecciona los positivos y calcula su promedio.
Ejercicio P82dict nuevo difícil
Dado un diccionario de productos con precios, crea un nuevo diccionario solo con los productos cuyo precio sea mayor que un umbral (p. ej. 30).
Ejercicio P83dígitos difícil
Dada una lista de números, calcula la suma de los dígitos de cada número y guarda los resultados en una lista nueva.
Ejercicio P84dict+contar media
Dado un diccionario de empleados con salarios, cuenta cuántos ganan más de 3000.
Ejercicio P85contar letra media
Cuenta cuántas veces aparece la letra "e" en una cadena dada, con for e if.
Ejercicio P86matriz media
Dada una matriz (lista de listas) de enteros, usa dos for anidados para sumar todos los elementos.
Ejercicio P87matriz difícil
Dada una lista de cadenas, usa dos for anidados y un condicional para contar cuántas vocales hay en total.
Ejercicio P88matriz difícil
Usa dos for anidados para crear una tabla de multiplicar del 1 al 5, almacenando cada resultado en una matriz (lista de listas).
Ejercicio P89matriz media
Usa dos for anidados y un condicional para contar cuántos números de una lista de listas son mayores a 10.
Ejercicio P90matriz media
Usa dos for anidados y un condicional para sumar solo los números pares de una lista de listas.
Ejercicio P91transpuesta difícil
Dada una matriz (lista de listas), crea con dos for anidados la matriz transpuesta (intercambiar filas y columnas).
Ejercicio P92palíndromos difícil
Dada una lista de palabras, encuentra las palíndromas y almacénalas en una lista palindromas.
Ejercicio P93dict ocurrencias difícil
Dada una matriz de números, cuenta cuántas veces aparece cada número y guárdalo en un diccionario.
Ejercicio P94máximo matriz difícil
Usa dos for anidados para encontrar el valor máximo en todas las sublistas. No uses max() directamente.
Ejercicio P95primos difícil
Dada una matriz (lista de listas), selecciona solo los números primos y almacénalos en una lista primos.

🧪 Simulacros (tipo examen)

Estos son más elaborados: reproducen el formato real del entregable. Hazlos cronometrados, en un Excel y un cuaderno de Python de verdad. Las soluciones completas, en el archivo aparte.

🟢 Simulacro XL-1 · Entregable "Carnicería" (el más parecido al examen)

Reproduce el Ejercicio de Feedback 2. Datos de partida (hoja DATOS): precios → Ternera 2,13 € (B4), Pollo 1,89 € (C4), Vegetal 0,93 € (D4); Gastos fijos/mes 328,20 € (D7). En la hoja CÁLCULO hay 24 filas (meses de 2017 y 2018), con columnas de unidades vendidas de Ternera (C), Pollo (D) y Vegetal (E). Solo las celdas sombreadas son datos; el resto lo calculas tú con las referencias correctas.

Hoja CÁLCULO — calcula cada columna

  1. BENEFICIO = Ternera×precio_ternera + Pollo×precio_pollo + Vegetal×precio_vegetal (referencias absolutas a la hoja DATOS).
  2. BENEFICIO NETO = Beneficio − gastos fijos/mes (D7 de DATOS, anclado).
  3. BENEFICIO % = Beneficio neto / Beneficio (formato porcentaje).
  4. PRUEBA: si Beneficio > 1600 escribe el Beneficio; si no, "2ª letra del mes + -*- + 2 letras de la derecha del mes" (ej. "g-*-to").
  5. GAP: para junio, agosto o diciembre escribe el Beneficio %; si no, el número de mes de la fecha de hoy.
  6. COND: VERDADERO si Ternera>300 Y Pollo<500 Y Vegetal>200; FALSO si no.
  7. MINIGRÁFICOS con Ternera, Pollo y Vegetal.
  8. SUMA, MÁXIMO, MÍNIMO, PROMEDIO, VARIANZA del rango Ternera (C2:C25).
  9. RAIZ de la celda a su izquierda y (el cubo de esa raíz).
  10. CONTAR de celdas con número en GAP (J2:J25); CONTAR.SI de VERDADERO en COND (K2:K25).
  11. SUMAR.SI: suma de GAP de los meses con COND FALSO. PROMEDIO.SI: promedio de Vegetal de los meses con Beneficio < 1500 €.

Hoja GRÁFICO

Gráfico de columnas agrupadas 3D en hoja nueva (no como objeto), solo con los datos de 2017 (series Ternera/Pollo/Vegetal por mes), título "2017".

Hoja EXTERNOS

Importa Ficheroimportar.txt (separado por tabulador, con encabezados) a partir de B2. Aplica formato condicional en Estado (Pendiente→rojo+blanco, Cumplido→verde, En trámite→naranja). Ordena por Empresa y aplica Subtotal con el promedio de Región por Empresa.

Configuración

Márgenes 1 (encabezado/pie 0,5), encabezado con Nombre/Apellido/NP, pie con el nombre de cada hoja, color de pestañas. Guarda como tu NP y envía.

📊
Rúbrica real (lo que más puntúa): Gráfico 11%, GAP 10%, COND 10%, SUMAR.SI 7%, PROMEDIO.SI 7%, Subtotales 7%, Importar 5%, Formato condicional 5%, Similitud 5%. Si vas justo de tiempo, asegura primero esos apartados.

🟢 Simulacro XL-2 · Entregable "Ventas / Empleados" (examen oficial)

Reproduce el examen oficial. Abre Datos.xlsx, guárdalo con tu NP. Solo las celdas sombreadas son datos.

Hoja VENTAS (pestaña roja)

  1. Volumen Total = Volumen × Volumen Unitario (el Volumen Unitario, 25, está fijo en una celda → referencia absoluta).
  2. Descuento: si Empleados > 450, 10% sobre el Volumen Total; si no, "Mantener coste".
  3. Eficiencia: VERDADERO si Volumen > 70 Y Empleados > 500.
  4. Tipo de Cliente: "MAYORISTA" si Volumen Total > 2000 O Empleados > 500; si no "Minorista".
  5. Para Volumen, Empleados y Volumen Total: minigráficos y Suma, Promedio, Máximo.
  6. SUMAR.SI: suma del Volumen Total de todos los MAYORISTA.
  7. Formato condicional: en Volumen y Empleados, verde para valores entre 70 y 150 y amarillo/naranja para >150; en Volumen Total, barra de datos naranja.

Hoja Gráfico (pestaña verde)

Gráfico combinado en hoja nueva que se parezca al modelo (Empleados en columnas + Volumen Total), título "Datos Empresa".

Hoja EMPLEADOS (pestaña azul)

  1. Importa FicheroImportar (1).txt (separado por punto y coma, con encabezados).
  2. Columna Año que extraiga el año de la fecha de creación.
  3. Última columna: texto tipo "Lee Kun-hee trabaja en la empresa Samsung Electronics" (con CONCATENAR o &).
  4. Subtotales por TipoEmpresa con el máximo de "Años Empresa" y de "Año".

🟡 Simulacro PY · Python (código + test)

Parte A · Escribe el código

  1. Pide un número por teclado y di si es par o impar (usa %).
  2. Dada notas = [4, 7, 9, 3, 6, 8], calcula con un bucle (sin sum() ni max()): la suma, la media y la nota máxima.
  3. Cuenta cuántas vocales tiene la palabra que introduzca el usuario (función que devuelve el total).
  4. Crea una clase Producto con atributos nombre y precio y un método con_iva() que devuelva el precio × 1,21. Crea un objeto y muéstralo.
  5. Dada precios = {"pan": 1.2, "leche": 0.9, "aceite": 5.0}, recorre el diccionario e imprime solo los productos de más de 1 €, y al final el total.
  6. Con una comprensión de lista, crea la lista de los múltiplos de 3 entre 1 y 30.

Parte B · Test (elige la correcta)

  1. ¿Qué imprime print(7 // 2)?   a) 3.5   b) 3   c) 1   d) 3,5
  2. ¿Cuál es inmutable?   a) lista   b) diccionario   c) tupla   d) set
  3. "Hola".upper() devuelve…   a) "hola"   b) "HOLA"   c) error   d) "Hola"
  4. range(2, 10, 2) genera…   a) 2,4,6,8   b) 2,4,6,8,10   c) 2..10   d) 0,2,4,6,8
  5. El método que añade un elemento al final de una lista es…   a) add()   b) append()   c) insert()   d) push()
  6. En POO, __init__ es…   a) un bucle   b) el constructor   c) un atributo privado   d) una librería
  7. ¿Qué colección elimina automáticamente los duplicados?   a) lista   b) tupla   c) set   d) string
  8. int("12") + 3 da…   a) "123"   b) 15   c) error   d) "12 3"

🔵 Simulacro MIX · mezcla rápida (test de repaso, 15 preguntas)

  1. (Excel) ¿Qué referencia NO cambia al arrastrar: B5, $B$5 o B$5?
  2. (Excel) Escribe la fórmula que sume D2:D20 solo de las filas donde E2:E20 sea "MAYORISTA".
  3. (Excel) ¿Qué significa el error #N/A y con qué función suele salir?
  4. (Excel) ¿Qué hay que hacer SIEMPRE antes de aplicar Subtotales?
  5. (Excel) ¿En qué área de la tabla dinámica pones el campo que quieres totalizar?
  6. (Excel) =SI(O(A2>100; B2>5); "Sí"; "No"): si A2=80 y B2=7, ¿qué devuelve?
  7. (Excel) ¿Cómo se hace que un gráfico ocupe una hoja entera y no flote sobre los datos?
  8. (Excel) ¿Qué delimitador usa FicheroImportar (1).txt y cuál Ficheroimportar.txt?
  9. (Python) ¿Qué imprime print(10 % 3)?
  10. (Python) Diferencia entre = y ==.
  11. (Python) ¿Qué hace continue dentro de un bucle?
  12. (Python) ¿Cómo se accede al último elemento de una lista x?
  13. (Python) Escribe una comprensión de lista con los pares del 1 al 10.
  14. (Python) ¿Qué método de diccionario evita el error si la clave no existe?
  15. (Python) En class Alumno(Registro):, ¿qué relación hay entre Alumno y Registro?

✅ Checklist del día de examen (3 jul)

Nada nuevo hoy. Repaso ligero de estas chuletas mentales:

Lee despacio cada apartado, subraya el dato gatillo (constante a fijar, condición, delimitador, rango), y aplica la receta. Cuidado con los textos entre comillas y con ordenar antes de los subtotales. ¡Suerte! 🍀

← Volver al índice