Professional Documents
Culture Documents
EXCEL
AVANZADO
BIOS
ManualExcelAvanzado
BIOS
MduloFuncionesAvanzadas
PrimerEjemploFuncionessimples
Dadalasiguienteplanilla:
Supongamosquelanotafinalsecalcularbasndonosenelpromediodenotasqueobtuvocada
estudianteensusparciales.
Porlotantoaplicaremoslafuncinpromedio:
=PROMEDIO(B2:D2)
Recordemosquecualquierfuncinquevayamosaaplicardebemosposicionarnossobrelacelda,y
comenzarconelsigno=oensudefectoelsigno+.
Porotroladosihubiramosqueridotomarencuentasolodosdelosparcialesdentrodel
promediotendramosque:
=PROMEDIO(B2;D2)
Enelcasodequequeramostomarrangosdiscontinuosestoseaplicaradelasiguienteforma:
=PROMEDIO(B2:D2;H2:J2)
Laplanillahastaahoraquedaraas:
Ademsenelcasodecopiarestafrmula,podramosrealizarlomediantelaopcinclsicadedar
sobreelbotnderechosobrelacelda,seleccionarlaopcincopiar,yluegomarcarelrango(en
estecasodeE3:E8)ydarlepegar.
MasalldeestaclsicaopcintambinsepodracopiarlaformuladeformasimpledandoDOBLE
CLICenelbordeinferiorderechodelaceldaquecontienelaformulaacopiar.
Enlasiguientecolumna,seharunbreverepasodelaformulacondicionalSI.
Deacuerdoaestaformuladeberaplicarse:
=SI(prueba_lgica;valorverdadero;valorfalso)
Enelcasodelaplanillaquemanejamosanteriormente,estaquedaradeestamanera:
=SI(E2<5;Reprobado;Aprobado)
SituviramosmsdeunafuncinSIparaestablecer,recordarquesiemprevamosatenerque
evaluarelconjuntodeopcionesdenuestroproblema(convienecomenzardesdeelnivelmasbajo)
yharemosunafuncinmenosqueopcionesdenuestrocaso.
=SI(E2<5;Reprobado;SI(E2<=7;Parcial;Aprobado)
NodebemosperderdevistaquelafuncinSIpuedeserutilizadaenestetipodecasos,y
concatenarhasta7funcionesSI(tenemosestelmite).
Delamismamaneraqueanteriormentelohicimos,podemoscopiarlafrmulasinproblemas.No
olvidemosquehastaahorahemosdejadodeladoeltemadeReferenciasRelativasyAbsolutasya
quenohizofaltafijarningunadelasceldasacopiar.
Vamosaarmaruncuadroadicionalanexoalaplanillaparaimplementarotrasfunciones:
Enestecuadrocalcularemoscuantosfueronlosalumnosqueobtuvieroncomocalificacin
Aprobado,ParcialyReprobado.Asuvezcalcularemosconrespectoaltotaldealumnos,el
porcentajequeobtuvocadacalificacin.
LoharemosaplicandolafuncinCONTAR.SI,delasiguientemanera:
=CONTAR.SI(F2:F8;Aprobado)
Tambinpodramoshaberescrito:
=CONTAR.SI(F2:F8;A12)
Veamosasuvezquesipensramosencopiarestafrmuladeberaquedar:
=CONTAR.SI($F$2:$F$8;A12)
Larazndelsigno$eselhechodefijarelrangoF2:F8yaquelascalificacionessonfijas,mientras
quelaceldaA12esrelativayaquecambiardefilaalcopiar.
EnlafuncinCONTAR.SItenemosencuentaelrangoaevaluar,ycomosegundoargumento
tenemoselcriterioatomarencuentaparacopiar.
SiaplicamoslafuncionCONTAR,otambinCONTARA,podremossabercuantosalumnos
tendremos.
=CONTAR(E2:E8)
EnestecasolafuncinCONTARaplicaperfectamenteparaestecasopuestoquelasceldasquese
evaluantienencontenidonumrico.
Enelcasodequererhacerunrecuentoporapellidos:
=CONTARA(A2:A8)
Aquaplicaperfectamenteyaqueestafuncinnospermiteevaluarceldasnovacas.
PasandoaotrotemaveremosacontinuacinalgunaaplicacinadicionaldelafuncinSI.
Enlasiguienteplanillaseevaluarlacalidaddelosproductossegnsudimetro.Sieldimetro
estcomprendidoentre10y20sucalidadserA,ydelocontrarioserB.
VemosqueenestecasonosoloseapliclafuncinSI,sinoquesecombinconlaopcinY
(tambinpodriamoshaberaplicadolaopcinO),delasiguientemanera:
=SI(Y(opcion1;opcion2;..);valorverdadero;valorfalso)
=SI(O(opcion1;opcion2;..);valorverdadero;valorfalso)
EnelcasodecombinarconlaopcinY,recordemosqueestaramoshablandodequesise
cumplenUNAYCADAUNADELASOPCIONESENFORMASIMULTANEAseaplicaralaopcin
verdadera,yenelcasoquenofueraasseaplicalaopcinfalsa.
MientrasqueenelcasodelasopcionesquedamosmedianteelO,conqueunadelasopciones
fuereverdadera,yaseaplicaralaopcindelvalorverdaderoenlacondicin,ysolosinose
cumpleningunadelasopcionesseaplicaraelvalorfalso.
Pasemosahoraaunnuevoejemploycontinuamosenlaaplicacindefunciones:
Enestecasoaplicamosunafuncindebsqueda,quesedenominaBUSCARV.
Recordemosquelaformadeutilizarestafuncindebsquedaeslaquesedemuestraa
continuacin:
=BUSCARV(valorbuscado;matriz;nmerodecolumna;[ordenamiento])
Enelcasoparticulardelaplanilla
=BUSCARV(A13;A2:C8;3;FALSO)
Vemosaququeelvalorbuscadohacereferenciaalaceldadondeelusuariocargareldatoenel
quesebasarlabsqueda.Estedatonodebeserpartedelamatrizdebsqueda(A2:C8)sino,
estonotendrasentidoenlabsqueda.Luegosecargalamatriz,alhacerreferenciaalamatrizno
cargamoslosttulosdelamisma,soloelcontenido(registrosdelamisma),luegocargamosla
referenciaalnmerodecolumnaquesevaaextraer,enestecasolacolumna3yaqueesladel
stock(columnacondatoaextraer)yporltimocomoargumentoOPCIONALelordendentrodela
matriz,enestecasofalsoyaquelaprimeracolumnadelamatriznoestordenadaenforma
ascendente.
AdemsenelcasodelargumentoopcionaldeORDENestotambienesrealmentesignificativoal
momentodeaplicarlacoincidenciaenlabsqueda.SiesteargumentoesFALSOylabusquedano
encuentraeldatoprecisoretornaunerror.Porejemplo:
EnestecasoalnoencontrarelArtculoA5565devuelveunerrordeltipo#N/A,odatoNO
DISPONIBLE(NotAvailable).
EncambioveamosquepasacuandoelargumentodeordenlocambiamosaVERDADERO.
Enestecaso,masallqueelproductoA5565noseencontrdetodasformasretornelvalorde
stockdelartculocuyacoincidencianoeraexacta,sinoaproximada.
Enmuchoscasoscuandolabsquedanotieneporqueserexacta,esteargumentoVERDADERO
puedeayudarnosaencontrareldatomscercanoquecoincidaconnuestrabsqueda.
EncambioanteriormentecuandoelargumentofuecambiadoporFALSO,labsquedanonos
retornabaningnvaloryaqueeldatonoloencontraba(concoincidenciaexacta)enlamatrizde
registros.
Enotroambitotambinserabuenoenunaplanillacontrolarlosingresosdeinformacin,yespor
estoquevamosaintroducireltemaVALIDACINDEREGISTROS.
VALIDACINDEDATOS
Enelcasodelaplanillaquepresentamosanteriormente,vamosacomenzarestetemade
validacintratandodequeelusuarioselimiteaagregarartculosconSTOCKentre0y300,yno
puedaintroducirunnmeromenoracero,nimayora300.
Veamoscomooperar:
1. Pintamoslasceldasdestock(celdasenlasquevamosadarlaregladevalidacin)
2. Luegovamosalmendedatosvalidacin
3. Establecemoslaregladevalidacinaoperar
4. Opcionalmentedefinimosmensajeentrante
5. Opcionalmentedefinimosmensajedeerror
Veamoselpasoencadapantalla:
EnesteprimerpasomarcamoslasceldasdeStockyluegonosdirigimosalmendeDatos
Validacin
Enelsegundopasodefinimoslaregladevalidacin:
Enestecaso,definimosqueloquevamosapermitiresunnmeroenteroendichasceldasyeste
nmerodeberestarcomprendidoentre0y300.
TenemosotrasopcionesaldesplegarelcuadroPermitir,quelasusaremosenalgunosejemplos
posteriores.
Poniendootroejemplo:
Enestecasonosposicionamosenlaceldadondelapersonavaarealizarlabsquedadelstockde
determinadoartculo(A13),ydamosunaregladevalidacinparaquesolopuedaingresarcdigos
deartculosexistentesenlamatrizdedatos:
VeamosquesucedecuandoaplicamostambinelusodelasolapadeMensajeEntrante
EstoresultarcuandolapersonaseposicionesobrelaceldaA13(enlacualsedeterminlaregla
devalidacin).
Veamoscomoenlapantallaquesemuestraacontinuacin,semuestraelmensajeentrante:
Aquvemoselmensajeentrantealposicionarnossobrelacelda
Uncomentarioconrespectoaesto,eselhechodepodertrabajarenlasreglasdevalidacin,tanto
conrangosdinmicoscomotambinconrangosconunnombredeterminado.
Veamoscomofunciona:
Enestecaso,aldarcomoorigendelalistalaseleccin:=$A:$A(referenciaalacolumnaA)
Laventajaqueselograeselhechodepoderincorporarmasartculosconsurespectivostockala
matrizdeesamaneraintegrarlosalaregladevalidacindeformaautomtica.
Aplicandoloquecomentabamos:
Enestecasoagregamosunartculoalalista,yluegovemoscomoelartculoseintegraenforma
automticaalcuadrocombinadoenlaceldaquetienelavalidacin.
DEFINIRNOMBRESARANGOS
Enelsiguienteejemploveremoscomoaplicamosenlugardeunareferenciaaunalistaformada
pordeterminadasceldas,aunrangoconunnombrepreasignado
Enprimertrminoasignaremosalrango,unnombrecomoporejemploARTICULOS
Enelreasealadaasignamoselnombrealrangodeartculos.Oseaprimero,sealamoselrango
deartculos(A2:A9)yluegoledesignamosunnombreaesterango.Deahoraenmascuandoyo
quierahacerreferenciaalasceldasA2:A9yapodremosescribirsimplementeARTICULOSqueExcel
entenderlasdireccionesalasquesehacerreferencia.
Otramaneradeplantearlasreferenciasderangosalosqueseleaplicaunnombresera:
MedianteelmenInsertarNombreDefinir,tambinpodremostantocrearrangoscon
nombre,eliminarrangosconnombre,ytambinmodificarlos.
Veamosqueendichapantallapodemosasignarelnombre,yendondedefineSerefierea:
podremosdeterminarladireccindelasceldasquevamosatenerdentrodelrango.
Enestesentidoestapantallanosdamejormanipulacinsobrelosrangos,yaquenosolo
podremosasignarlesnombresadeterminadasceldasorangos,sinomodificarladireccinalaque
hacenreferencias,comotambineliminardeterminadosnombresqueyanoseandeaplicacin
paranuestraplanilla.
Enelcasodequererasignarunrangoconnombre,enunareglavalidacin,estoquedara:
Vemosqueaqucomoorigendelalistadeterminamoselrangoconnombrequedenominamos
ARTICULOS.(Nota:Recordarelsigno=puestoquenoqueremoshacerreferenciaauntextosinoa
unrango).
FORMATOCONDICIONAL
Estetemaatratarserinteresanteparaaplicardinamismoencuantoalformatodeceldas.
Tambinnosservircomoavisoendeterminadasplanillasenlasquebusquemosquelamisma
cambiecuandounfactorsecumpla.
EstosetratadeunacombinacinentrelafuncincondicionalSIylaaplicacindeformatos
(bordes,sombreados,subrayado)enceldasyrangos.
Tenemosbsicamentedosmanerasdeaplicarestetema:
1. Aplicacindelformatocondicionaldeacuerdoalvalordeunacelda
2. Aplicacindelformatocondicionalvinculadoaunaformula.
Aplicaremosenprimerlugarunformatocondicionaldeacuerdoalvalordeunacelda.
PorejemplosiqueremosquelaplanillanossealetodoartculocuyoStockestepordebajodelas
70unidades.
Sealamosenprimerlugarelrangoalquelevamosaaplicarelformatocondicional,enestecaso
elrangoformadoporlasceldasquedeterminanelstock.
Ensegundolugarvamosalmendeformatoformatocondicional.
Enelmendeformatocondicional,enestecasolacondicindependedelValordelaCelda,ya
estevalorlopodemoscondicionarconoperadoreslgicos(<,>,<=,>=,=)porlotantopodremos
compararlosvaloresdelasceldascondichosoperadores.
Enelcasoqueveamosanteriormentedeterminamosqueevalesielvalordelaceldaesmenora
70,yencasodeserverdaderaestapruebalgica,aplicamoselformato,dndoleunatramacon
colorrojo,loquesealarlaceldadeestecolorcuandosecumplaestacondicin.
Enelcasoquequeramosaplicarmsdeunacondicinpodremosagregarhasta3condicionesen
elformatocondicional,comosemuestraenelejemploacontinuacin:
Laopcindeagregarnospermitiriragregandocondiciones,condicholmitede3condicionesen
estaherramienta.
NOTA:Laposibilidaddeagregarmscondicionesenformatocondicionalsepodrmanejardesde
MacrosenVBA.
Enelejemplovistoanteriormenteestamosaplicandocolorrojoalosartculoscuyostockestepor
debajodelas70unidades,aplicaremoscolorazulalosartculosentre70y99unidadesypor
ltimosielartculotiene100omasunidadesensustocklaceldasepintardecolordefondo
verde.
Encasodequequeramosaplicardichoformatocondicionalconestasmismascondicionespero
deseamosmarcartodalafilacuandosedelascondicionespropuestas,estoloharemos
seleccionandoenprimerlugartodalamatrizdedatos(desdeA2:C9).
Veamosqueaqucomenzamossealandoelrea(A2:C9),luegofuimosalmenformato
formatocondicional,ydentrodelreadedefinicindeformato,aplicamoscomocondicinla
dependenciadeunaFrmula,ydentrodelrangodondeseevalalafrmula,establecimosuna
referenciaalaceldaC2.
NtesequelaceldaC2lareverenciamosaplicandoenformafijalacolumnayvariableparalafila
($C2)yaqueelformatocondicionalloaplicarparacadaunadelasfilasmarcadas(desdefila2a
fila9)peroloaplicarsiemprebasndoseenelvalordelacolumnaC.
Asuvezesimportantenotarquelaceldaalaquerefieretodaformuladelformatocondicional
DEBERSERSEALADACONELMOUSEPARAQUENOLOTOMEENFORMATOTEXTOY
AGREGUEAUTOMATICAMENTECOMILLASALASINTAXIS.
Delamismamaneraquelavistaanteriormentepodramosaplicarvariascondicionaleseneste
formato,perosiempreconlalimitacindehasta3condicionesaplicadas.Comovemosa
continuacin:
Uncomentarioadicionaleselhechodequeparaeliminaralgunadelascondicionespropuestasen
elformatocondicional,simplementevolvemosaseleccionarelreaalaquelequeremosquitaren
estecasoelformato(A2:C9)yluegonosdirigimosnuevamentealmendeformatoformato
condicional,yseleccionamossobreelbotneliminar:
Comovemostenemoslaopcindeeliminarunadelascondicionespropuestas,solo2,otodaslas
condicionesquehayamosdeterminado.
Esimportantesealarelrangodeantemanoyaquesino,Excelnoencontraraenqueceldasse
aplicelformatocondicional.
EnelsiguienteejemplosemostrarestaherramientaaplicadaconfrmulasdeExcel,ylaideaser
queautomticamentequedenmarcadosloschequesvencidosalafechaactual(lafechaactualse
calcularmediantelafuncinHOY()).
Enestecasoseleccionamosenprimerlugarlamatriz(A2:D5)yluegoloquehicimosfueaplicarel
formatocondicional,dondelacondicindependedeunafrmulayenlamismadefinimoslacelda
C2enlacualfijamoslacolumnaydejamoscomovariablelafila($C2)ycomparamosconel
operadormenoroigualalresultadodelafuncinHOY(),lacualnosobtendrenforma
automticalafechaactualdelsistema.
BSQUEDASDEINFORMACIN
MencionamosenunejemploanteriorquemediantelafuncinBUSCARVpodiamosrealizar
bsquedasenmatrices,yextraerdelasmismasundatodedeterminadacolumnaenparticular.
EnesteejemploveremosnosolamentelaaplicacindeBUSCARV,sinotambinlafuncin
BUSCARHylaslimitacionesquetenemosenelusodedichasfunciones.
EnestecasovemoslafuncinBUSCARV,aplicadaparabuscarenbasealcdigodelartculoel
stockdelmismo.
Medianteelpegadoespecialrealizaremosuntrasportededichamatriz,delasiguientemanera:
1. SeleccionaremosmedianteelMousetodalamatrizdedatos(A1:C9)
2. BotnDerechoCopiar
3. SeleccionaremoslaceldaE1
4. BotnDerechoPegadoEspecial
5. EnlasopcionesseleccionaremosTrasponer(comolovemosenlapantallaa
continuacin)
Veamoscomoquedatranspuestalamatrizoriginal:
EltemadetransponerlamatriztambinnosservirparaverlaaplicacindelafuncinBUSCARH
quenospermitirextraerelcontenidodeunaFILAenparticulardelamatriz.
EnestecasoenlaceldaE6,utilizaremoslafuncinBUSCARH,paraquealdigitaruncdigode
artculo,nosobtengaladescripcindelmismo(fila2delamatriz).
Porotrolado,unadelasrestriccionesimportantesquehayquedestacartantoenelBUSCARV
comoenelBUSCARHeselhechodenocontarconlaposibilidaddebasarmeenundatobuscadoy
quererobtenerunacolumnaalaizquierdaenelordendelamatriz,ounafilahaciaarribadeldato
buscadoenelcasodeBUSCARH.
Porejemplosienelejemploanterioryomebasoenladescripcin(comodatobuscado)yenbase
aladescripcinpretendoobtenerelcdigodedichoartculo.
Veamosporlotantolaaplicacindedosfuncionesquenospermitirnsolucionarestetema.Las
funcionessonINDICEyCOINCIDIR.Laaplicacineslasiguiente:
Elresultadoser5(Nrodendice)
EnestecasoaplicamoslafuncinCOINCIDIR,ydentrodesusargumentoscolocamos,elvalor
buscado,endichoejemplolaceldaA13,dondeelusuarioingresladescripcindelartculo,como
segundoargumentoindicamoslacolumnaB(rangoB2:B9)queesdonderealizaremoslabsqueda
dedichadescripcin,yporltimocomotercerargumentoelnmero0queestindicandoquela
coincidenciadebeserexactaconeldatobuscado.
ElresultadodelafuncinCOINCIDIRser5,queeslaposicindeldatobuscadoenlalistade
valores.Osealadevolucinsiempremeladaenelnmerodendicedeldatobuscadoenla
nominadevalores.
PorotroladosiyoaplicolafuncinINDICEdelasiguienteforma:
EncuantoalafuncinINDICElosargumentosson,lamatrizdebsqueda,dondeaqusealela
nominadecdigosdeartculos,ycomosegundoargumentoelnmerodefiladelndicequedebe
buscar,enestecaso5.Estenmero5loobtuveviendoelresultadoobtenidoporlafuncin
COINCIDIReneldatoanterior.
Porlotanto,yresumiendo,estopodrasersimplificadoenunasolacelda,delasiguienteforma:
LafuncinINDICE,meextraeeldatodeunamatrizde
acuerdoalaubicacindeestedatoendichamatriz.
MientrastantolafuncinCOINCIDIRloqueest
haciendoesbuscandoeldatoenunamatrizde
informacin,ybuscandolaposicindeestedato,con
unacoincidenciaexacta.
FUNCIONESDEFECHAYHORA
AplicaremosenesteejemplolasfuncionesdefechayhoraquenosproveeExcel.
Paracomenzar,siyoquisieraobtenerlosdascorridosenqueseimplementcadaunadelas
tareas,tenemosqueentenderqueTODAfechaqueingresemosenExcel,estafechalalecturaque
tendrserennmerodedas,comenzandoconelnmero1correspondienteal01/01/1900.
Porlotantosienunaceldayocolocolafuncin=HOY()yestamedevuelvelafechaactual,
supongamos17/10/2007,enrealidadelcontenidoREALdelaceldaserelnmero39372.
Bastaconcambiarelformatodelacelda,aunformatonumricoyvemoselresultado.
Entonces,siyonecesitosaberlosdasquetomcadatareasimplementepuedorestarlasceldas
decolumnaCycolumnaB,ytengoelresultadoesperado.(NOOLVIDARASIGNARFORMATO
NUMRICOALACOLUMNAD,paraobtenerencantidaddedas).
Hastaaqunohemosaplicadoningunafuncinenparticular.Eltemasedacuandotengoque
calculardashabilesentrelafechadeinicioyfechadefin.Parautilizarestetipodefunciones,
ExcelnosproveedeCOMPLEMENTOS.EnestecasodebemoshabilitarelCOMPLEMENTOde
HERRAMIENTASPARAANLISIS,delasiguientemanera:
EnelmendeHerramientasComplementos
tendremoslaposibilidaddeverloscomplementos
quetenemosypodremosmarcarlosque
necesitemos.
Recordarquetodosloscomplementosque
marquemosquedarnhabilitadosdeahoraenms
enTODASlassesionesqueiniciemosconExcel,
dentrodedichaPC.
EnestecasohabilitamoselCOMPLEMENTOdeHERRAMIENTASPARAANLISIS,queeselquenos
proveerdelasfuncionesnecesariasaaplicar.
ParaelclculodedashbilesutilizaremoslafuncinDIAS.LAB
Endichafuncinlosargumentossern=DIAS.LAB(FECHAINICIO;FECHAFIN;[FERIADOS])
ElargumentodeFERIADOSesopcional,yaquepodramosomitirloylafuncindetodasmaneras
merealizaraelclculo.LaideaesquealtenerelargumentodeFERIADOS,nosoloexcluyadelos
dashbilessbadosydomingossinotambinlosferiadosqueaparecenenlanmina.
Podramoscomprenderdentrodeestanminaferiadosnolaborables,ylaborables,esolo
seleccionarquienestacargodeldesarrollodelaplanilla.
NoolvidemosfijarelrangodondedispusimoslosFERIADOSyaquealcopiarlafrmulasedebe
contemplaresterangocomoFIJO.
Enelsiguienteejemplovamoscontemplarlosdasparalaentregadedeterminadospedidos.
Silosdasfuerancorridossimplementedigitamos:=B2+C2
PeroenelcasodequeapartirdelafechadepedidoyoquieraagregarciertacantidaddeDIAS
HBILES,aqueltemacambia,yaplicaremosparaestolafuncin:DIA.LAB(FECHAINICIO;DIAS
LABORALES;[FERIADOS])
Loquenosimplementadichafuncineslaposibilidaddequeaciertafechaseleagreguenosele
descuentenciertacantidaddedashbiles,agregandocomoargumentoopcionallosferiados.
Recordarque,paraestoscasos,tambinpuederesultarcomnquerervisualizarapartirde
determinadafecha,eldadelasemanaalaquecorresponde.Paraellotenemoslafuncin
DIASEM,que,apartirdeunafechanosdicequdadelasemanacorresponde.
VeamosquelafuncinDIASEM,nosdevuelveunnmerocorrespondientealdadelasemanaque
noscaeesafecha,desdeel1paradomingo,hastael7parasbado.
Siquisiramosqueestonosdeexactamenteenletraseldadelasemana,bastaconcambiarel
formatodelaceldaparapersonalizarlocomovemosacontinuacin:
Aldarbotnderecho,formatosobredichasceldasenlasqueaplicamoslafuncinDIASEM,vamos
aPersonalizada,yenelTipo,podremosoptarporDDDDparaquenosdeenletraselda
correspondientedelasemana.
Nota:sihubiramosescritoDDD,nosdaralaabreviacindeldadelasemana.
TrabajandoconHORAS
Veamosenlasiguienteplanillaenlaque
ingresamosloshorariosdeentradaysalidadeun
empleadoalaempresa.
Nosepresentanproblemas,alrestarencadadade
lasemanalashorasdesalidaylasdeentrada.
Ahoraalmomentodecalculareltotaldehorasque
esteempleadorealizentodalasemana,veamoslo
quesucede:
EnestecasoaplicamoslafuncinSUMAparatomar
encuentaelrangodehoras,ypoderobtenereltotal
dehoras.PeroExcelmuestraunresultadoquenoes
deltodocorrecto.
Enrealidadelclculointernamentelorealiza
correctamenteperoelresultadoloexpresaendas,y
porlotantoestosera1da,19horas,y14minutos.
Lonicoquehacemosescambiarelformatodela
celda,paraquereflejeelresultadoenTOTALde
horas.Veamoscomorealizarestepaso:
Almomentodecalcularelpagoarealizar,tomolaceldadeltotaldehoras,multiplicopor24para
pasarelresultadoahoras,yluegoporelpreciohora.Recordarquemasalldelcambiode
formatoquehicimos,internamenteExcelsiguereconociendodichaceldaenterminodedasyno
enterminodehoras.
BUSCAROBJETIVOYSOLVER
Estasdosherramientasnosservirnendeterminadasocasionesenlasquequeramosrealizar
previsionesoestimacionesenExcel.
Pasemosalsiguienteejemplo:
Enestecasomanejamosunejemplodondeunrestauranteque
vendecaf,tienesupreciounitarioen30pesos,yatravsdela
cantidaddetazasvendidasgeneraeltotaldelarecaudacin.
Debemostomarencuentaqueestaestructurasedebecontemplar
paralaaplicacindeBUSCAROBJETIVO,dondeunafrmuladebe
generarladependenciadeunconjuntodefactores(celdasdependientes)queresuelvenel
esquema(enestecasolarecaudacindependedelacantidaddetazasvendidasydelprecio
unitario).
Parautilizarlaherramienta,vamosaMenHerramientasBuscarObjetivo:
Enlapantalladeconfiguracin:Definirlacelda:enestecasoB3,celdaquecontienefrmula
dentrodelaplanilla.
Conelvalor:vamosadefinircomovalor6000pesos(totalderecaudacinestimada,oprevisinde
recaudacin).
Paracambiarlacelda:B2(celdaqueactacomovariabledelsistema,yquecalcular
automticamentelaherramienta)
Enestecaso,yopodrahaberresueltoelsistemaperfectamentemedianteunaregladetres
simple,peroencasosmscomplejoscomoelquevemosacontinuacinelclculodela
estimacinseraposibleconmayoresfuerzo:
Enestecasoplanteamosunejemplodondeseotorgaun
prstamosde20000aunatasaanualdel8%ydondese
pagarn12cuotas.Lafuncinpagocomovemosnoscalcular
deformaautomticalacuotaapagar,queendichocasoser
de1739(Nota:elvalorresultantesernegativoyaquelas
funcionesfinancierastomanlosegresosconestesigno).
Ahora,veamosquesucedesienestecasoquisiramos
estimarcualseraelmontodelprstamoquepodramos
obtenersisemantienenlascondiciones,perosabemosque
podemospagarunacuotamximade1500.Paraesto
aplicamoslaHerramientaBuscarObjetivodelasiguientemanera:
Elsistemanosresuelveydirquemedianteelpagodeunacuotade1500ymanteniendolas
condiciones,llegaremosaobtenerunprstamode17243.
Laherramientasiempretrabajaconunavariableacalcularyunafrmulacuyoresultadofinalser
estimadoporeloperador.
Veamosqueenesteltimoejemplonuestrosupuestoesestimarunvalordecuotade1500(lase
quedebesernegativo,portomarsecomounegresofinanciero),ymanteniendolascondiciones,
secalcularelmontdelprstamoalquelapersonapodracceder.
EnelcasodelaherramientaSOLVER,actacomoCOMPLEMENTOdeExcelporlotantohayque
habilitarlo,dentrodelmenHerramientasComplementos,ytildarlacasilladeverificacinen
casodequedichaherramientanoestuvierepreviamenteinstaladaenlaPCqueestemos
manejando.
SOLVER
EstaherramientaessimilaraBuscarObjetivoconlasalvedaddecontarconlaventajaderesolver
sistemascondeterminadacantidaddevariables,yconlaposibilidaddeestablecerrestricciones,
queacerquenelsistemaaunarealidadplanteada.
Veamoselsiguientecaso:
Enestecasoestablecimosunaplanillasimilaralaplanillaquetrabajamosanteriormente.Setrata
deunrestaurantequevendevariostiposdeCaf,entreellosCafcomn,CafCortado,Caf
Capuchino.AplicamosenelmenHerramientasSolverlaconfiguracindedichosistema.
Entonces:enCeldaObjetivoestablecemoslaceldaquevamosaestimar,enestecasolaceldadel
totalrecaudadoporelrestaurante,luegoestablecemoselimportedelvalorestimadoparadicha
celda.
Enlareferenciadecambiandolasceldasestablecemoslasceldasquesevanacalcular
automticamenteporlaresolucindelsistema,enelcasonuestromarcaremosmediantelatecla
CTRLcadaunadelasceldasquetienelacantidaddetazasdecadatipodecaf.
Porltimo,enelreainferiorizquierdadeestapantallaestablecemosmedianteelbotnagregar,
la/lasrestriccionesdelsistema,enestecasonuestranicarestriccinfueagregaralaceldaB10
quecontieneeltotaldetazasvendidasdecafcapuccino,queellimiteesquedichacelda
contengaunvalormenora50.Podemosagregarmltiplesrestriccionesyaquecadavezque
queramosagregarunarestriccinmas,solopresionaremosenelbotnagregarloquenos
permitiriragregandonuevasrestricciones.Tambintenemoslaposibilidaddecambiar,y
eliminarrestriccionesmediantelosbotonesasociados.
UnavezqueterminamosladefinicindedichapantallamedianteelbotnRESOLVER,elsistema
nosgeneraunasolucinparaelesquemapropuestoynosmuestralasiguientepantalla:
Elesquemaquedaresueltoyvemoslasolucinfinalenlaplanilla.Podemosenestapantalla
marcarlaopcindeUtilizarlasolucinencontradaporSOLVER,otambinpodemosRestaurar
valoresoriginalespararegresaralestadoinicialdelaplanillaantesderesolverelesquema.
Lasaplicacionesdedichaherramientassonmuchsimas,tantoenmbitosdeestadstica,
probabilidad,comotambinenmateriadeMatemticas,IngenierayEconoma.
PodemosvervariosejemplosaplicadossibuscamoselarchivoSOLVSAMP.xlsqueseencuentraen
C:\ArchivosdePrograma\MicrosoftOffice\Office10\SAMPLES\
MDULO
ANLISIS
DE
INFORMACIN
Mdulo:AnlisisdeInformacin
Enestemduloseverlaaplicacindeherramientasvolcadasalanlisisdeinformacindentrode
Excel.
Enprimerlugar,conunejemploseaplicarelusodelosdiferentestiposdefiltrosquenosprovee
laherramienta.
Veamoselsiguienteejemplo:
Enestaplanillaaplicaremoselprimertipode
filtro,queserelAutofiltroyquenospermitir
aplicarfiltrosautomticosenlaplanilladeuna
formamuysencilla.
Paraaplicarlobastarconposicionarnosen
cualquierceldadenuestrabasededatosy
luegomedianteelmendeDaotsFiltro
Autofiltrocomenzaremoslaaplicacindel
mismo.
Laplanillanosquedardelasiguientemanera:
Veamosenprimerlugar,quecuando
nosotrosmarcamosenelmendedatos
filtrosautofiltro,esteactacomoun
subrayado,dondepodemostildarydestildar
estaopcin,encasoquequeramosdejade
utilizarelAutofiltroenalgnmomento.
Elautofiltronosdaestaopcindelcuadro
desplegableenelttulodecadacampodela
basededatos.
Bastarconpincharenelcuadrodesplegable
parapoderseleccionarelcriterioaaplicar
parafiltrarlainformacinsobredichocampo.
Porejemplo,sienestaplanillayoquisiera
soloverlasventasdelvendedorDaz,solo
seleccionarDazenlasopcionesdelcampo
Vendedores,yestomeaplicarautomticamenteelfiltrocondichocriterio.
Acontinuacinsedaelejemplodecmoaparecelaplanillaconelfiltroaplicado:
Enelcasoanteriorelsistemaenformaautomticaocultalasfilasdelrestodevendedoresydeja
solovisibleslasventasdelvendedorseleccionado.
Podemosasuvezaplicarotrofiltroenformasimultaneasobreotrodeloscamposcomopor
ejemploelcampodeRegin,solobastarconseleccionardedichocampolaopcindelaregin
quenecesitaremosvisualizarylaherramientaaplicarestefiltroenformatotalmentedinmica.
QUITARAUTOFILTROSRESTABLECERBASEDEDATOS
Encasodequeenalgnmomento,apliquemosvariosfiltrosdeacuerdoavarioscamposyen
algnmomentoqueramosquitardichofiltro,existendosopciones:podemosquitarelautofiltro
directamenteyendoalmendedatosfiltrosautofiltro,otambinmedianteelmendedatos
filtrosmostrartodos(estomuestranuevamentetodoslosdatosoriginalesdelabasededatos
peromantieneelautofiltro.
CRITERIOSPERSONALIZADOS
Tambinmuchasvecessepuededarelcasodequeelcriterioparafiltrarlainformacinnoeste
disponibleenformadirectasobreelcampoquequeramosfiltrar,yporlotanto,delcuadro
desplegablerecurrimosalaopcindePersonalizar,paraestecampo:
CuandoseleccionamoslaopcinPersonalizar,podremosaplicarcriteriosunpocomasavanzados
parafiltrardichocampo:
Enestecaso,comonosposicionamossobreelcampoVentas2005,yseleccionamoslaopcinde
Personalizar,allpodemosverqueennuestrocasoaplicamosdoscriteriosquesealanqueel
filtrosertomarnicamenteVentas2005convaloresmayoresoigualesa80000ymenoreso
igualesa100000.Podemosverasuvezqueexistenmltiplescriteriosquepodemosaplicarsobre
dichocampo.
Laplanillaluegodeaplicardichofiltroserverdelasiguientemanera:
Undetallesumamenteimportanteatomarencuentaeselhechodequesiendichaplanilla
quisiramosenalgnmomentoobtenerlasumadeventasdel2005peronicamentedelosdatos
visiblesnopodemosaplicarlafuncin=SUMA(C2:C15),puestoquetomaratodaslasfilas(tanto
visiblescomonovisibles).
Paraestetipodecasosaplicamoslafuncin=SUBTOTALES(9;C2:C15)
SUBTOTALES(nm_funcin;ref1,ref2,...)
Nm_funcin Funcin
1 PROMEDIO
2 CONTAR
3 CONTARA
4 MAX
5 MIN
6 PRODUCTO
7 DESVEST
8 DESVESTP
9 SUMA
10 VAR
11 VARP
Veamosenelejemplodado,losresultadosdelafuncinSUMAySUBTOTALESaplicadospara
dichorangodeceldas(C2:C15).
NOTA:Tambinpodramoshaberutilizadoelbotn
Dichobotnaplicaautomticamentelafuncincorrectasegnencuentreceldasocultasonoen
eserango(aplicafuncinSUMAencasodequenoexistanfilasocultas,yaplicaenforma
predeterminadaSUBTOTALEScuandoencuentrafilasocultasenelrango).
Elautofiltrotambinnospermitefiltrospersonalizadosenelcasodecolumnascondatostipo
TEXTO,porejemplosiyoquisieraobtenerlosdatosdeventasdeaquellosvendedorescuyo
apellidotermineconletraS.
EndichoejemploseaplicasobreelcampoVendedores,elcriteriodepersonalizacinyluegoel
filtroquedeterminaquedichocampomuestrenicamenteregistrosqueterminaconletras.
Hayunalimitacinenlaaplicacindelautofiltroyes,justamentelaconsignaparapasaral
siguientetema.Nopodemosmedianteelautofiltroaplicarcriteriosquecomparencampospor
ejemplo,enelsiguientecaso,vamosaaplicarunfiltroquenosexponganicamentelasventasdel
2005superioresalasdel2006.
EsololograremosconelFiltroAvanzado:
Recordemosqueparapoderaplicarelfiltroavanzadodebemoshacerlosintenerlaopcinde
autofiltroencendido.Porlotantositenemoselautofiltro,debemosapagarloyendoaDatos
FiltroAutofiltro.
ParaaplicarelfiltroavanzadovamosaDatosFiltroFiltroAvanzado,yluego:
VeamosquecomocriteriosaplicamoslacomparacinentrelaceldaC2yD2,dondesolo
colocamoslafrmula=C2>D2
Enelcuadroquenosaparececuandoaplicamoselfiltro:
ComoRangodelalista:A1:D19(marcamoslabasededatoscompleta)
RangodeCriterios:F7:F7(marcamoslasdosceldas,elttulodelcriterio,ylaceldaquecontieneel
criteriopropiamentedicho)
Veamosqueendichocuadroenestecasoaplicamoslaopcinqueaparecepordefectoquees:
Filtrarlalistasinmoverlaaotrolugar,yaqueloquequeramoseraaplicarelfiltrodirectamente
enlabasededatos.
Enlasiguientepantallaseexponecomoelfiltroaplicadichocriteriodirectosobrelabasede
datos:
Aquvolvemosacomentarelhechodequesiqueremosobtenerlasumatoriadeventasde2005o
2006,nodebemosusarlafuncinSUMA,puestoquedeberamosutilizarlafuncinSUBTOTALES.
PararestaurarlabasededatosvolvemosalmenDatosFiltroMostrarTodo,comosepresenta
enlasiguientepantalla:
Enelcasodequereraplicarfiltrosenformasimultnea,tendremosquearmardichoscriteriosen
lamismalnea.Enelsiguienteejemploveremoslaaplicacindeunfiltrodondevemoslasventas
2005superioresalasdel2006,perosolodelaReginSur,veamosnosololaaplicacindelfiltro,
sinoelarmadodedichoscriterios:
AquveamosquecomoRangodeCriteriosmarcamosF6:G7,yaqueloscriteriosenestecasoson
2,unoqueaplicasobreelcampoRegin,dondeseextraesolodatosquecoincidanconRegin
SUR,yporotrolado,elsiguientecriterio(ledimosunttuloarbitrario,enestecasoCriterio),
dondehicimoslacomparacindeunodelosregistrosdeventas2005contraundatodeventas
2006.
Asnosquedaranlosdatosfiltrados,deventasdeReginSUR,dondelasVentas2005superana
lasdel2006:
Veamosquesucedesiloscriteriossonlosmismosperonorespetamoseltemadequeseanenla
mismalnea:
AqusepuedeverqueaplicamosunfiltrodondelaReginesSUR,peronohacealmismotiempo
comparativodeventasentreelao2005y2006,mientrasqueparaelrestodeventasdeotras
RegionesSaplicaelcriteriodecompararlasventas2005,yquedichasventasseansuperioresa
lasdelao2006.
Podemosseguiraplicandocriterios,perosiemprequeapliquemosvarioscriterios,tienenqueestar
armadosdiferenciandoloscamposdelabasededatos,perotambinenelmismoordenque
aparecendichoscamposenlabasededatos.
Veamosahoraenunejemplodondeapliquemosestemismofiltroperoconunaextraccindeuna
subbasededatosparanomodificarlabaseoriginal:
EnlapantallaquenosapareceenestecasomarcamoslaopcindeCopiaraotrolugar,y
nuevamenteen:
Rangodelalista:A1:D19(nuevamentemarcamostodalabasededatos)
Rangodecriterios:F6:G8(aqumarcamostodosloscriterios,enestecasolosdoscriterios)
Copiara:Aqumarcamosunaceldacualquieravacayaqueapartirdeahsevaagenerarlasub
basededatosconlosdatosquecumplanconloscriteriospautados.
SiendichoejemploplanteamosquelasubbasededatossoloobtengaloscamposdeVendedores,
Ventas2005yVentas2006excluyendolaRegin,deberamosarmarapriorilosttulosdelos
camposquevanaformardichasubbasededatos:
Aqumarcamosenelcuadro,enelrenglnCopiara:F11:H11(celdasdondeseencuentranlos
ttulosdelasubbasededatosquesevaaarmarconlosdatosfiltrados)
Acontinuacinvemoselresultadofinaldedichofiltro:
TablasDinmicas
Utilizandolabasededatosdelejemploanteriorgeneraremosnuestraprimeratabladinmica.
Estaherramientanospermitircruzardediversasformasinformacindeunabasededatos,tanto
seaunabasearmadaenExcel,comotambinenfuentesdedatosexternas(comoarchivosde
texto,basesdeAccess,SQL,DBase,etc.)
ParacomenzarnosguiaremosmedianteelAsistente,queencontramosenDatosInformede
TablasyGrficosDinmicos,comovemosenlasiguientepantalla:
Enlaprimerapantalladelasistentetendremoslasopcionesparaelegirelorigendelosdatosque
sevanatomarenlatabladinmica,yendichapantallaenlaparteinferiorelegimoseltipode
informeaobtener,yquepuedeserTablaDinmicaoGrficoDinmico:
Enestaprimerapantallanosotroselegimoslasopcionesquevienencomopredeterminadasyaque
labasededatosnuestraprovienedeunalistaquearmamospreviamenteenExcelyelinformede
salidaesefectivamenteunatabladinmica.
Presionamosenelbotnsiguienteparapasaralasegundapantalla:
ElRangoeselqueseformaportodanuestrabasededatos,recordarqueenelcasodequerer
tomarsolodeterminadoscampos,mediantelateclacontrolpresionadapodemosmarcarsolo
dichoscamposparaqueformenpartedenuestratabladinmica.
Pasemosconelbotnsiguientealatercerapantalladenuestroasistente
Enestatercerapantalladelasistente,podremoselegirlaubicacindenuestratabladinmica,la
cualpodemosestablecerenunahojadeclculonueva,otambinenunahojadeclculo
existente.Tomemosencuentaqueenelcasodequemarquemoshojadeclculoexistente,
debemosmarcarunaceldaqueformarelngulosuperiorizquierdodenuestratabladinmica
porlotantotenerpresentequedesdeestaceldahaciaabajoyhacialaderechaexistalugarvacoy
disponibleendichaplanilladeclculo.
Veamoselresultadoqueobtenemosaldarfinalizar(enestecasoseleccionamoslaopcinde
volcarlatabladinmicaenunahojanueva):
Todatabladinmicaseformarpor4cuadrantesquesern:
CamposdeFila
CamposdeColumna
CamposdeDatos
CampodePgina
Podremosarrastrarcualquieradenuestroscamposdelabasededatosquetenemosenlalista
queaparecealaderechahaciaelreadenuestratabladinmicadondequeramosdisponerdicho
campo.
Essumamenteimportantetenerpresenteenunprincipiocualeselresultadoquesedesea
obtener,paranoperdernosentretantasopcionesquetenemosenloscamposquetenemosenla
basededatos.
Enesteprimerejemplovamosapedireltotaldeventasdel2005paracadaunodelos
vendedores:
Aquloquehicimosfuearrastrar(conelbotnizquierdopresionado)elcampodevendedoresal
readeFila(vemosquecadavendedorapareceenunafiladiferente),yllevamoselcampode
Ventas2005alreadeDatos(vemosquelasventasde2005aparecencadaunaendicharea).
HayquetenerpresentequeExcelesrealmentesensiblerespectoacadaunadeestasreasporlo
tantotratemossiempredetrasladarcadacampohaciaelreacorrespondienteenlaformamas
exactaposible.
Encasodequecambiemosdeopininynosparezcamejorobtenereltotaldeventas2005pero
decadareginynodecadavendedorpuedotrasladarelcampodevendedoresderegresoala
Listadecamposdetabladinmica,ytrasladaracontinuacin,elcampodeReginnuevamenteal
readefila:
Aquvemosquequitamoselcampodevendedores,yahoravamosacolocarelcampodeRegin,
solovolvemosaarrastrardichocampoalreadefilasynosquedacomovemosacontinuacin:
Endichoejemplovemosqueloquelogramosenesteltimocasoestotalizarlasventasdel2005
paracadaunadelasregiones.
Perovolviendoalcasoanteriorpodramosquererobtenerambosresultados,osealasventasde
2005decadavendedorytambinporregin,comopresentamosenlasiguientepantalla:
EnestecasotrasladamoselcampodeVendedoresalreadeFILAyelcampodeRegionesalrea
deCOLUMNAS.Elcampodeventas2005queddispuestocomoantesenelreadeDATOS.
FILTROSENTABLASDINMICAS
Tambintenemoslaopcindeaplicarfiltrosenlatabladinmica,medianteelcuadrodesplegable
delosttulosdelcampofila(enestecasovendedores)ytambinenelttulodelcampode
columna(enestecasoRegin).
Enestecasoaligualquecomohacamosenelautofiltro,elegimosloscriteriosdefiltradoque
vamosaaplicarsobredichocampo.Enelcasoanteriorfiltramosparaquesolodesplieguelas
ventasdelosvendedoresMoralesyVega,quesonlosquedejamostildadosenelcuadro
desplegable.
Siquisiramosobtenerademsdelasventasdel2005,tambinlasdel2006,simplemente
agregamosesteltimocampoenelreadedatos:
Vemosqueaquobtenemosdoscamposenelreadedatos,ytenemoslostotalestantopor
vendedorcomotambinporregindelosaos2005y2006.
Podemosaplicartambinunfiltroquenosmuestreporejemplodeterminadaregin(SURpor
ejemplo):
Cadafiltroaplicadosereflejainmediatamenteenelresultadodenuestratabladinmica.
ACTUALIZACIONESENTABLASDINMICAS
Apliquemosenprincipioelprimertipodeactualizacinquesepuededar:
Cambiandodatosenlabasededatooriginal.Tomemosalgndatodelabasededatos
originalymodifiquemosestedatosustancialmenteparaqueveamosreflejadoeste
cambioenlatabladinmica.
Veamosqueenestecasosemodificelprimerregistrodelabasededatos,sinembargocuando
regresamosalatabladinmica,estapermaneceexactamenteigualquecomoestabaantesde
realizarelcambio.
Paraqueelcambioserealiceyseveareflejadoenlatabladinmicadeberemosdarclicenel
botndeactualizar(botnconelsignode!)enlabarradeherramientasdetabladinmica.
EncasodenotenerdichobotndisponiblepodremosrecurriralmenVERBARRADE
HERRAMIENTASTABLASDINMICAS,yluegodarclicsobreestebotnpareverelcambio
realizado:
Alpresionarsobreelbotnvemosquelatabladinmicarecalculalosvaloresynosmuestrael
detallequevemosacontinuacin:
Hayuntemamuyimportanteadestacar,yeselhechodequelatabladinmicanoessensibleala
incorporacindenuevosregistros(nuevaslneas)enlabasededatosoriginal,ascomoala
insercindecolumnasenlabasededatosoriginal.
Acontinuacinharemosreferenciaalconceptoymetodologaamanejarcuandoagregamos
nuevosregistrosenlabasededatosoriginal.
ACTUALIZACINDETABLASDINMICAS(CONINSERCINDEDATOSENLABASEDEDATOS
ORIGINAL)
Enesteejemplovamosaagregarunalneaadicionalenlabasededatos,haremosreferenciaauna
ventaenunareginquehastaahoranohabamoscargado:
Elltimoregistrofueagregadoenlabasededatos,sinembargocuandoregresamosalatabla
dinmica,stanoreflejaelcambioquerealizamosenlabasededatos.Peronosencontramosque
presionandoelbotndeactualizarenlabarradeherramientasdetabladinmicatampoconos
reflejaelcambio.
Paraqueelcambiosereflejeennuestratabladinmicarealizaremoselsiguienteprocedimiento:
1. Vamosalabarradeherramientastabladinmica,medianteelmenVERBARRADE
HERRAMIENTASTABLADINMICA
2. Unavezquetenemoslabarradeherramientasdisponible,vamosalbotnTablaDinmica,
yallelegimosAsistente:
Cuandopresionamosenlaopcindeasistente,estenosdespliegalaltimapantalladelasistente
detablasdinmicas,alpresionarelbotndeatrsvemosquenospermiteredimensionarlabase
dedatosoriginal:
EnestecasomarcaremoselrangoA1:D20,agregandodeestamaneraelnuevoregistroalabase
dedatos,luegopresionamosenelbotnsiguiente,pasandoalaltimapantalladelasistenteypor
ltimofinalizar.
Vemosacontinuacinlaimagendenuestratabladinmicaactualizadamedianteelasistentede
tablasdinmicas:
Agreguemosacontinuacinennuestrabasededatosoriginalunanuevacolumnaquenosrefleje
elpasadondeserealizcadaunadelastransaccionesconloquelabasededatosquedardela
siguientemanera:
Alpresionarelbotndeactualizarenlabarradeherramientasdetabladinmica,nosapareceen
lalistadecampos,elnuevocampoPASquepodremosutilizarparaagregarenlatabladinmica:
AgreguemosdichocampoenelreadePginayveamoselefectoqueresultadeesto:
Alagregardichocampoenelreadepginapodremosresumirlatabladinmicadeacuerdoa
dichocampo.Enelsiguientecaso,alseleccionarunpas(porejemploArgentina)veamoselefecto
queproducesobrelosdatosdenuestratabladinmica:
Latabladinmicapasaahoraamostrarlasventasdecadavendedordelosaos2005y2006,
tambinconlaposibilidaddeverladivisinporreginperoUNICAMENTEDELPASARGENTINA
(queactacomofiltrodenuestratabladinmica).
CAMBIOSSOBRELASOPERACIONESDECAMPOSDEDATOS
Enestecasoseguiremostrabajandoconlabasededatosdeejemploperovamosaaplicarotra
operacinsobreelcampodeventas2005,enlugardepedireltotaldeventas2005(sumade
ventas2005)solicitaremoselpromediodeventas2005.
Parasimplificarsolotrabajaremosconloscamposdevendedoresyventas2005:
Aquporahorasolovemoslaoperacinsimpledondenosmuestralasumadeventas2005,
veamoscomohacemosparacambiarlaoperacinpredeterminadadelcampodedatos:
1. Nosposicionamossobrecualquieradelosdatos,deimportesdenuestratabladinmicay
presionamoselbotnderechodelMouse,yallseleccionamoslaopcinde
CONFIGURACINDECAMPO
2. Enlapantallaquenosaparecepodremosseleccionareltipodeoperacinqueaplicaremos
sobredichocampo:
VemosquepodemosaplicarcomooperacinlaSUMA,CUENTA,PROMEDIO,MXIMO,MNIMO,
PRODUCTO
EnnuestrocasovamosaseleccionarcomoopcinPROMEDIO,paraquenosapliquedicha
operacinsobreelcampodeVentas2005.
Tambinpodremosendichocuadro,sobrelalneadeNombre,ajustarelnombreareflejarde
dichocampo.
Tenemoslaopcintambindeagregarelmismocampounsinnumerodevecesparaqueeste
reflejeoperacionesdiferentes.
Porejemplo,sinecesitoquelatabladinmicareflejelasumadeventas2005peroadems,nos
proveadelpromediodeventas2005paracadavendedor.Arrastramosdosveceselcampode
ventas2005haciaelreadedatos,ysimplementeaunodeloscamposlecambiamosla
configuracindecampo:
Tambincuandorealizamoslaconfiguracindecampopodremostenermasopciones,comopor
ejemplodesplegarel%deponderacindecadaventa,conrespectoaltotaldeventasdelao
comopodemosveracontinuacin:
Enlapantalladeconfiguracindecampo:
Latabladinmicanosmostrarelsiguienteresultado:
Noolvidemosquepodramospresentarlosimportesdeventas2005,yluegoarrastrar
nuevamenteelcampopararealizarestaconfiguracinparaqueademsdelosimportesrefleje
tambinlosporcentajesdeventas.
TABLASDINMICASCONIMPORTACIONDEDATOSDESDEACCESS
Veamosenunejemplolospasosquedebemoscumplirsiqueremosarmarunatabladinmica
paraanalizarinformacindeunabasededatosquelaempresatieneenMicrosoftAccess.
Comenzamoselasistentedelamismamaneraquelohicimosantes,medianteelmendeDatos
InformedeTablasyGrficosdinmicos
Enlaprimerapantalladelasistente,elegimoscomoopcinFUENTEDEDATOSEXTERNA:
Alpresionarelbotnsiguiente,vemosqueelasistentecambiaconrespectoalqueveamosenel
captuloanterior:
PresionandoelbotndeObtenerDatos,seleccionamoselOrigendeDatos(eselsoftwaredonde
estalojadalabasededatos).Muchasvecesseconfundeestapantallaconlaeleccindirectade
labasededatos.
SeleccionamosenestecasoMSAccessDatabase,queeselsoftwaredondetenemoslabasede
datos,yaldaraceptar,podremosrecorrerlascarpetashastaencontrarlabasededatos,eneste
casorecorremosC:\ArchivosdePrograma\MicrosoftOffice\Office11\Samples
Cuandoseleccionamoslabasededatos,enestecasoNEPTUNO,nosaparecelasiguientepantalla:
Aqunosreflejalasdiferentestablasdelasqueestcompuestalabasededatos,ydelaque
podremostomardeterminadastablas,completas,porejemploladeCLIENTES,otambin
podremospresionarenelsigno+paradesplegarloscamposdelosqueestcompuestalatabla.
EnelsiguienteejemplotomaremosdeterminadoscamposdelastablasdeClientes,Productos,
Categoras,yProductos.
Cadaunodeloscamposquequeramosincorporarenlatabladinmicalopasaremosalrea
derechadelapantalla,enelreadecolumnasenlaconsulta.
Cuandopresionamoselbotnsiguiente:
Enestapantallatendremoslaposibilidaddefiltrarlainformacindeloscamposdeacuerdoauno
ovarioscriteriosqueseleccionemos.
Enlasiguientepantallapodremosseleccionarunordendeterminadoaestablecer,deacuerdoa
uncampoqueseleccionemos,enformaascendenteodescendente.
Enlaltimapantallaseleccionamoslaopcinqueapareceenformapredeterminada,y
devolvemoslosdatosdirectamenteaMicrosoftExcel,yledamossiguienteenlapantalladel
asistente:
Llegamosenestaetapafinal,alamismapantalla,queenelcaptuloanteriordondetendremosel
esqueletodelatabladinmica:
Aqupodremosarmarlatabladinmicasimplementeajustandoloscamposyllevndolosalrea
defila,readecolumnas,yalreadedatos.
Recordemosquedesdeaqupodemoslograrlomismoqueyarealizamosenelcaptuloanterior
condatosdeunabasededatosdeExcel:
GRAFICOSDINMICOS
Paragenerarunatabladinmica,yapartirdelamisma,reflejarungrficodinmico,simplemente
nosposicionamosencualquieradeloscamposdelatabladinmicaymedianteelbotnderecho
delMousetendremoslaopcindegenerarelgrfico.
Veamosenelsiguienteejemplo:
MediantelaopcindeGrficodinmico,estenosgenerarenunanuevahojaelgrficodinmico
quesedesprendedelatabladinmicageneradaanteriormente.
DentrodelGrficodinmicopodremosajustarycambiardeposicincualquieradeloscampos,
perosiempretomandoencuentaquealcambiarelgrficodinmico,tambincambiarenforma
simultanealatabladinmicadelacualdepende.
ElGrficodinmicotieneasuvez4reasdiferenciadas,yson:
1. Camposdecategoras(enestecasovendedores)
2. Camposdeserie(enestecasonotenemos)
3. Camposdepgina(enestecasonoincluimosningunoan)
4. Camposdedatos(enestecasoelcampoVentas2005)
Enelsiguienteejemplovemoselcasodeteneruncampoencadaposicin:
MDULO
GRFICOS
PERSONALIZADOS
FORMULARIOS
MdulodeGrficosPersonalizadosyFormularios
DentrodeestemduloseverndiferentesopcionesalmomentodegraficarenExcelascomo
opcionesdegrficospocoutilizadas,ycasosprcticosdondeapliquemosusosdegrficospara
diferentesactividades.
Comencemosconungrficosencilloenelquesepretendagrficasexportacionesdeunproducto
adiversospasesatravsde4aos.
Nosbasaremosenlasiguienteplanilla:
Paracomenzarnosposicionamosencualquieradelosdatosdenuestraplanillayvamosal
asistenteparagrficosmedianteelmenInsertarGrfico
Enlaprimerapantallaquenosdespliegaelasistenteparagrficostendremoslaposibilidadde
seleccionarlacategoradelgrficoquegeneraremosydentrodecadacategoratambin
podremosseleccionarlasubcategoradedichogrfico,comovemosenlapantallaacontinuacin:
VeamosquetenemosunbotndePresionarparavermuestra,que,dependiendoenque
categoranosposicionamosnosvaadarunaimagenpreliminardelgrficoquegeneraremosa
travsdelalistaobasededatosquetenemosseleccionada.
Alpresionarsiguiente,ypasandoalsegundopasodelasistente:
Aqusedestacandospuntos,enprimerlugar,elhechodequeExceltomenformaautomtica
comoRangodedatosdesdeA1:E6,incluyendoaqulosttulosdeamboscampos,perotomandola
fila1comosifueraunaserieagraficar,yestonosgeneraunerror,yaqueaparecerunaserieque
nocontieneinformacin(veamosenlamuestra).
Enestecasocorrigiendoelreaagraficarytomandodesdelafila2,oseamarcandocomoRango
dedatosdeorigendesdeA2:E6,nosquedarlamuestracorrespondientealreaque
efectivamentedebemosgraficar.
Sivemoslasopcionesdegraficarlasseriesen:FILAS,COLUMNAS,enformapredeterminadaExcel
marcalasseriencomocolumnas,yporlotantocadaaoformarunaseriedenuestrogrfico,en
cambiosiintercambiamosypasamosalaopcindeSeriesenFILAS,severdelasiguiente
manera:
Enestecasoloqueestamosrepresentandosonlasventasdecadaunodelosaos(1,2,3,4)y
dentrodecadaaolasseriesestnrepresentadasporlasexportacionesacadapas.
AsuvezsidamosclicenlasolapadeSERIEenestamismapantallaveremoslosiguiente:
Enestapantallapodremosdefinir:
Nombre:Elrango(ocelda)dondeencontramoselnombredecadaserie(enestecasode
cadapas)
Valores:Elrangodeceldasdondeencontramoslosvalorescorrespondientesadichaserie
(valoresdeexportacionesatravsdelosaosdedichopas)
Rtulosdelejedecategoras(X):AquvamosasealarelrangoB1:E1queeselrango
dondeencontramoslosttulosdelascategoras(enestecasolosaos)
Presionamosensiguienteypasamosal3erpasodelasistente:
AqucompletamosenlasolapadeTtuloslosttulosdecadasectordelgrfico,enprimerlugarel
TtuloGeneraldelgrfico,luegocompletamoselTtulodeEjeX,yporltimoeltitulodeEjeY.
PasamosalasolapadeEJE:
Aqupodemosmarcarodesmarcarlasopcionesquenospermitirnvisualizarlosejesdevaloresy
categoras,otambinpodremosdejarlodesmarcadoencasodequequererocultardichosejesen
elgrfico.
AlpasaralasolapadeLneasdeDivisin:
Elefectoqueproducelascasillasdeverificacinenestasolapadecategoraseseldeagregar
referenciasparaidentificarlosvaloresenelgrfico,enungrficodelneas,yanivelestadstico
estoesfundamentalparatenerunareferenciamasprecisadelosvaloresquevemosenelgrfico.
PasandoalasolapadeLeyenda:
Aquseleccionamoslaubicacindelaleyendadereferenciadeseriesdentrodelgrficoascomo
tambinpodemosdestildarlacasilladeverificacinencasodequererocultarlaleyendadel
grfico.
EnlasolapadeRtulodeDatos,tendremoslaposibilidaddereflejarenelgrficolosNombresde
laseries(enestecasolospases),Nombresdelascategora(aosenestecaso),yValores(valores
correspondientesacadadatograficado).
Debemostenerpresentequemarcartodaslasopcionesmuchasvecespuederesultarcomplejo
parapoderentendercorrectamentetantasintaxisdentrodelgrfico,ymuchasveceshacequeel
graficoquederealmentecomplejoparaunanlisisposterior.
Enestaltimasolapa,sinosotrospretendemos,dentrodelapantalladelgrficoagregarla
informacindelosdatosgraficados,yaseaporquelosmismosseencuentranenotraubicacin,o
porquequeremostenerlosdisponiblesdentrodelgrfico,marcamoslaopcindeMostrarTabla
deDatos,ydeesamaneranosquedanlosdatosincrustadosdentrodelgrfico.
Alpresionarsiguiente,pasamosalpaso4delasistentedondeseleccionamosentonces,la
ubicacinqueledaremosalgrfico:
Podemosubicarelgrficotantoenunahojanueva,comotambinpodemosubicarlocomoun
objetodentrodelahojaactiva,olahojaqueseleccionemos.
Finalmente,vemoselgrficodentrodenuestrahoja,elcualpodremosseleccionar,ydesdelos
bordes,talcualcomosifueraunaimagencambiarsusdimensiones:
AREASDELGRFICO
Elgrficoestformadobsicamentepordiversasreas:
readelgrfico(elfondoblancoquevemosdentrodelgrfico)
readetrazado(elfondogrisenelqueposicionamoslasseries)
Ttulodelgrfico(ennuestrocasoexportaciones)
Series(ennuestrocasolascolumnas,queformanlasexportacionesacadapas)
Ejedecategoras(ejex)
Ejedevalores(ejey)
Leyenda(cuadroquetienelarepresentacindelaseries)
Ttulodelejedecategoras(Aosennuestrocaso)
Ttulodelejedevalores(Importesennuestrocaso)
Enelcasodequerercambiarcualquieradelasreasdelgraficorecordarquesimplementenos
posicionamossobredichareayconelbotnderechonosdesplegarlasopcionespropiasdel
reamarcada.
Parapoderrecurriralamodificacindecualquieradelospasosquerecorrimosmedianteel
asistente,nosposicionamossobreelreadelGrfico(reablanca)yconelbotnderecho:
Tipodegrfico(paso1delasistentedondeseleccionamoslacategoradelgrfico)
Datosdeorigen(paso2delasistentedondeindicamoselrangodedatos)
Opcionesdelgrfico(paso3delasistentedondeindicamosttulos,leyendas,ejes)
Ubicacin(paso4delasistentedondeseleccionamoslaubicacindeseadaparael
grfico).
ModificacionesdeGrficos
Paramodificarelreadegrficosimplementedamosdobleclicsobredichareaynosaparecer
lasiguientepantalla:
Aqupodremosindicarnosololosbordesdelrea,permitiendoseleccionarelcolordelborde,el
estilodelmismo,ascomotambinelgrosor,sinoquetambinpodremoscambiarlafuente(junto
consuspropiedades),ascomotambinelfondodelgrfico(rea).
Tambinpodemospresionarsobreelbotndeefectoderellenoparamodificarlosefectosque
apliquemossobreelfondodelgrfico,entrelosquepodemos:
Aplicardegradado,condiferentesefectosdelmismo,conuncolor,odos,conefectosde
transparencias,yademscondiversosestilosdesombreado.
Podemosaplicartambintexturas:
AscomotambinindicarleconelbotndeOtraTextura,ybuscarelarchivodondeseencuentre
latexturaquequeramosdarlealreadegrfico.
Podremosademsdeseleccionaruncolor,yefectodedegradadoaplicarunatramaenparticular:
Porltimosinosparececonveniente,tambinpodremosubicarcomofondodelgrficouna
imagen,seleccionandolamismadesdesuubicacineneldisco:
Estemismotipodeefectossepuedeaplicarsobrecualquierreadelgrfico,porejemplotambin
sobrelasseries,obteniendoentoncesungrficocomoelquesereflejaacontinuacin:
Sibiennosonlosmismosdatosqueenelejemplovistoanteriormentelaideaesreflejarnosolo
loscambiosdelreadegrficosinotambindelreadetrazado,yasuvezdelreadeseries,
modificandocadaserieyviendocomoagregarlabanderadelpascomoidentificacindedicha
serie.
GrficosPersonalizados
GeneraremosenelsiguienteejemplounGrficoquedenominaremospirmidepoblacionala
partirdelasiguienteplanilla:
Enlamismaencontramosuntotaldelamuestra,enestecasodelbarrioMALVINyseparadopor
sexo(hombres,ymujeres)yasuvezeltotaldivididoporgrupoetario.Laideaesgraficarestoy
quepodamosrepresentarlascantidadesdepersonasdecadasexoycadabarrarepresenteaun
grupoetariodiferente.
Elresultadofinalsemuestraacontinuacinyluegoveremoselpasoapasoaseguirparaobtener
dichogrfico:
Parallegaraesteresultadofinal,comenzaremosporgenerarconlosdatosungrficodebarras
seleccionandoelrangoagraficar(enestecasodesdeA1:K5).AllvamosaInsertarGrfico:
SeleccionamoselgrficodetipoBARRASprimersubtipoqueeseldeBARRAAGRUPADA,luego
ledamosclicenelbotnsiguiente:
NotemosqueaqucorregimosenprimerlugarelRangodedatos(A4:K5)paratomarnicamente
lossexosylosgruposdeedades,quecomprendennicamenteloquevamosagraficar,pero
ademsvamosadarclicsobrelasolapaseries:
AquloquehicimosfueagregarenelRtulodelejedecategorasXelrangoquevadesdeB2:K2
dondeindicamoslosttulosdegruposdeedadesqueformarnpartedenuestrogrfico.
Ennuestrosiguientepaso:
Aqudefinimoslosnombrestantodelgrficogeneralcomotambindelosejes.
Estefueelresultadofinalqueobtuvimos,ahoraveamosloscriteriosquetenemosqueutilizarpara
perfeccionarlapirmidepoblacional.
Enprimerlugar,paraqueunsexotomevaloresaladerechadelcortedeejeXyelotrosexotome
valoresalaizquierdadelcortedeejeXdebemostomarencuentaquelologramosfcilmente
cambiandoelsignoenlaplanillaoriginalcomovemosacontinuacin:
Veamosqueagregamosunalneadondesimplementelecambiamoselsignoalosvalores
correspondientesalsexofemenino,eincluimosestaseriedentrodelgrficodelasiguiente
manera:
Aquincluimosdentrodelacategoramujeres,elrangoB6:K6enlugardelrangoB5:K5quetena
anteriormentevaloresnegativos.
Recordarparareasignarlasdireccionesdedichorangoaccedemosclickeandoconelbotn
derechosobreelreadegrfico(fondoblancodelgrfico)yseleccionandocomoopcinDatosde
Origen,yallpresionamossobrelapestaadeSerie.
Ahoracambiaremoslaposicindecadaunadelasbarrasparaquesedisponganalineadasysin
espaciosinseparacinentrelasmismas.Estolologramospresionandoenunadelasbarrasdel
grfico(cualquieradelasseries),yluegoconelbotnderechodelMouse,seleccionamoslaopcin
deFormatodeSeriedeDatos,yenlasolapaOpcionesveremosjustamentedosopciones:
EndichasopcionescambiaremoseldatodeSuperposicin,elcualpasaremosaunvalorde100,
paraquelasbarrasquedenalineadas,yelanchoderangoavalor0,paraquecadabarraocupeel
totaldereadetrazado,ynoexistanespaciosintermediosentreunabarrayotra.
Veamoselefectodelmismo:
Enestesiguientepasovamosaquitarelrtulodelasleyendasencadagrupodeedad:
EstolologramospresionandoconelbotnderechodelMousesobreelreadegrficoyluego
vamosaOpcionesdeGrficoyluegoenlasolapadeEjedesmarcamoslacasilladeverificacin
correspondientealEjedeCategorasX,comovemosacontinuacin:
VemosqueelefectoinmediatodeestaaccinesquitarlareferenciaalejeX.
EnestesiguientepasovamosacambiarelformatodeEjecategorasconlaposibilidaddeque
podamosversiempredgitospositivos,peroaambosladosdelcrucedeleje.
EstolologramosseleccionandoenprimerlugarelejedecategorasX,yluegoconelbotn
derechodelMousedamosclicenlaopcindeFormatodeEjes,yallenlapestaaNmero,
aplicamoscomoTipo(0;0)paraque,tantolosvalorespositivoscomonegativosaparezcansin
signo(ni+ni).
AplicandolosretoquesdeFormatoderea,degradados,vistosenelcaptuloanterior,llegamosa
unaimagensimilardelgrficoquedebamosgenerar:
GrficosconDobleEje
Dadalasiguienteplanilla,generaremosungrficodelneasquelarepresente:
Generamosentonceselgrficodelneascorrespondiente,obteniendoelsiguienteresultado:
Veamosquemasalldequegraficamosambasseries,VentasyPorcentajes,altenerambas
valorestotalmentedismiles,estonosgeneraunimpactovisualyaquelaseriedeporcentaje
contienevaloresentre0y1yporlotantolalneaquedapegadaalejedecategoras.
ParaquelaseriedePorcentajetomecomoreferenciaunejesecundario,seleccionamoslaserie
dandoclicsobrecualquieradelosvaloresdelalneaquerepresentaadichaserieenelgrficoy
conelbotnderechoaccedemosalaopcinFormatoSeriedeDatos.Enestepuntodamosclic
sobrelapestaaEjes,yallagregamosomarcamoslaopcindeEjeSecundario.
Elimpactodelmismoserelsiguiente:
Parasepararambasseriesyquelosvaloresquedendistanciados,yasuvezquecadaunadelas
serieshagareferenciaaunejediferente,presionamossobreelejesecundarioagregado,yconel
botnderechoseleccionamoslaopcinFormatodeEjesenlapestaadeEscalaCambiaremos
laescalaparaqueelvalormximoestedadoenel0,5(osea50%).
Pasamosentoncesaobtenerelsiguientegrfico:
Deestamanera,alapersonaquetengaquedarunalecturadelgrficoleresultarmasfacil
analizarambasseriessabiendoqueambastomanescalasdiferentesyhacenreferenciasaejes
diferentesdelgrfico(unaalejeprimario,yotraalsecundario).
GrficosdeGANTT
Dadalasiguienteplanilla,generaremosungrficodeGANTTquenosmuestreladuracindelas
tareas,ynosdelaopcindeadaptarseautomticamenteantecambiosenfechasdeinicio,o
duracindelasmismas.
Estegrficoesmuyusado,enproyectosparaencontrarpuntoscrticos,ascomotambin
determinaratrasosenlasentregasyevaluardecisionesatomarantedesvosenelcronograma
propuesto.
Enlasiguienteplanillavemosquetenemosfechainicialdecadatarea,fechadefindecadatarea,
ymedianteunaformulacalculamoslosdasquedemoramoseneldesarrollodecadatarea.
Apartirdeallgeneramosungrficodebarras,yllegaremosalsiguientegrfico:
Formularios
EsteconjuntodeherramientasnosaportarenExcel,unestilogrficoquenospermitirmanejar
laplanilladesdeunentornovisualmsameno.
Enelsiguienteejemploveremoscomoutilizarlabarradeherramientas,personalizandovarias
opcionesalrespecto.
Enlaplanillaaplicaremosvariasherramientasdeltemaformularios,paraesto,elprimerpasoser
dejarvisibledichabarradeherramientas,yparaesovamosalmenVerBarraHerramientas
Formularios,comovemosacontinuacin:
Estaopcinnosdesplegarlasiguientebarraconlaquetrabajaremosenlossiguientespasos:
LaprimeraherramientaqueaplicaremosserladeCuadroCombinadoparalaspropuestasde
diferentestiposdehabitacionesconlasquecuentaelhotel.Paraesto,vamosacolocaruna
planillaauxiliarquenosproveadelasiguienteinformacin:
Vamosatomarentoncesdelabarradeherramientas,elCuadroCombinado,yalseleccionarnos
permitirdibujardichocuadrosobrelaplanilla:
Paraquedichocuadrodesplieguelasopciones,detiposdehabitaciones,daremosclicderecho
sobreelcuadrocombinadoquedibujamos,yseleccionamoslaopcindeFormatodeControl.
Estonosdesplegarlasiguientepantalla:
AqucompletaremoselRangodeEntrada:ennuestrocasoformadoporelrangoE1:E3(los
distintostiposdehabitacionesquesedesplegarnalpresionarsobreelcuadrocombinado).
Lavinculacinconlaceldalaharemosconunaceldaarbitraria(H1),enellamasadelante
visualizaremoselnmerodendiceoposicinqueelusuarioseleccionedelcuadrocombinado.
Porltimoenestecuadrolaslneasdeuninverticalesrepresentanlacantidaddedatosquese
vanavisualizarporpantallaquesemuestreenelcuadrocombinado.
VeamosquealseleccionarenestecasolahabitacinSINGLE,aparecerelnmero1enlacelda
H1quefuelaceldaconlaquevinculamoselcuadrocombinado.Encasoqueelusuarioseleccione
lahabitacindoble,sereflejarelnmero2enH1,ynmero3encasodeseleccionarlaSUITE.
ParaqueautomticamentepodamosdeterminarelpreciodelahabitacinporDIA,utilizaremos
unafuncindeExcelqueserINDICE:
=INDICE(F1:F3;H1)
ConestoobtendremosdelrangoF1:F3,elnmerodeposicinquesedeterminaenlaceldaH1.
Enestesiguientepasovamosautilizarotrodeloscontrolesdelabarradeformularios,queserel
ControldeNmeros:
Enestapantallacontrolaremosnuestroformulario.Aplicaremosunvaloractual.Elvalormnimolo
estableceremosen1,yelvalormximoen30,yelincrementoen1.Estoquieredecirqueel
mnimodedasdeestadaser1,yelmximodedasdeestadaser30.Laceldaconlacual
vincularemosserlaceldaH2(celdaarbitraria).
EnlaceldaB5,aplicaremoscomofrmulaunareferenciaalaceldaH2yaqueestacontendrel
valorseleccionadoenelformulario.
ParaelcasodelaeleccindecocheraoptaremosporuncontroldenominadoCasillade
Verificacin(delamismabarradeformularios).Estonosdaruncheckboxconvaloresde
verdaderoofalso,segnlacasillaestemarcadaono.
EstableceremoselvalordelacocheraenbasealaceldaH3,porlotantoennuestraceldaB6
aplicaremoslasiguienteformula:
=SI(H3;5;0)*B5
Estaformulanospresentarelvalor5encasodequelacasilladeverificacinestemarcadaycero
encasodequenoestemarcada,basndoseenelvalordelaceldaH3queserverdaderoofalso,
yestolomultiplicamosporlaceldaB5quetienelacantidaddedasdeestadaenelhotel.
Laideaesquemedianteelejemploveamoselusodediferentesformularios,perotambincada
unolopuedeadaptaralasnecesidadesdelaplanillaqueesteimplementando.
Enelsiguientecasoparalasformasdepago,dibujaremosuncuadrodelista,yentoncesdaremos
comorangodeentradalasceldasquecontienenlasdiferentesopcionesencuantoaformasde
pago.
EnelcasodelporcentajedeintersnuevamenteutilizaremoslafuncinINDICEcomoaplicamos
anteriormente.
Veamoslaplanillafinalizada,eimplementandolosdiferentesformularios:
Existendiferentesbotonesdelabarradeformulariosque,sibiennofueronutilizadoseneste
ejemplosontilesendiferentescasoscomoson:
Etiqueta
Cuadrodegrupo
Botn
Botndeopcin
Barradesplazamiento
MDULO
MACROS
EN
EXCEL
MduloMacrosenExcel
ConceptoGeneral:
Macro:
UnprogramaescritoograbadoporelusuarioquealmacenaunaseriedecomandosdeMicrosoft
Excelquepuedenutilizarseposteriormentecomounnicocomando.Mediantelasmacros
puedenautomatizarselastareascomplejasypuedenreducirseelnmerodepasosnecesarios
pararealizarlastareasqueseejecutanconmsfrecuencia.Lasmacrossegrabanenellenguajede
programacindeVisualBasicparaAplicacionesdeMicrosoft.Tambinpuedenescribirselas
macrosdirectamenteenelEditordeVisualBasic.
LaideadegenerarmacrosenMicrosoftExcelradicaenlaautomatizacindetareasenlaplanilla
electrnica.DeestamaneraquedarimplementadaunasolucinenVisualBasicparaaplicaciones
(VBA)queesellenguajedeprogramacinqueseutilizaenlasuitedeOfficeparadesarrollar
Macros.
Existenbsicamentedosformasdedesarrollarmacros:
MedianteelusodelaGrabadoradeMacros
MedianteelEditordeVisualBasicparaaplicaciones
Comencemosconelusodelagrabadoraenunejemplodondeapliquemostrestareas,enprimer
lugarescribiremosHolaenlaceldaA1,luegopondremosNegritayporltimopintaremosde
fondoamarillodichacelda.
Paraesto,comenzaremosporencenderlagrabadora,paraquecaptecadaunadelastareasque
vamosrealizando:
LagrabadoralaencendemosmedianteelmendeHerramientasMacroGrabarnuevamacro,
comovemosacontinuacin:
Nosaparecerlasiguientepantallaparaconfigurarlagrabacindedichomacro:
Acadamacroquegrabemoslepodemosasignarunnombre,enformapredeterminadala
grabadoraasignarMacro1,Macro2.
LuegopodremostambinasignarunMtodoAbreviado,paraqueelusuarioquedeseeejecutar
rpidamenteunmacropuedaacudiraesteatajodeteclado(porejemploctrl.+T).
Podremosgrabarelmacroenelmismolibroenelcualestamostrabajando,podremosgrabarloen
unlibroindependiente,otambincomoopcinadicionalpodremosgrabarloenelLibroPersonal,
queesalgoascomounabibliotecademacrospersonalesquepodemosejecutarencualquier
archivodeExcelquedeseemoseldademaana.
Enladescripcinpodemosdarpautasprecisasdedeterminadosdetallesdelastareasque
ejecutarnuestromacro.
Cuandoconfiguramosdichapantalla,alpresionarAceptar,lagrabadoradeMacrosgenerarun
cdigoVBAporcadaunadelastareasquevayamosrealizandodeahoraenmas(nocaptalos
movimientosdelMouse,nidelcursorquerealicemos,perosielingresoacualquieradelas
opcionesdeExcel).
Realizamosacontinuacinlastrestareaspropuestas,yluegodetenemoslagrabacinmedianteel
mendeHerramientasMacroDetenerGrabacin.
Bueno,ahoraveamoscomorepetimoslastareasejecutandoelmacrograbadoenestaetapa
anterior.
UnadelasposibilidadesquetenemosesejecutarelmacromedianteelmendeHerramientas
MacroMacros
Seleccionamoselmacroaejecutaryluegopresionamossobreelbotnejecutartalcualaparece
enlapantallaacontinuacin:
Enestapantallanosolopodemoselegirelmacroaejecutar,yluegorealizarlaejecucinsinoque
tambinencasoquequeramosdarunmtodoabreviadobastarconseleccionarelmacroycon
elbotndeopcionesnosaparecerelsiguientecuadrodondeasignaremoselmtodoabreviado
quedeseemos:
EnestecasoelusuarioquepresionelacombinacinCTRL+tejecutarelmacroque
desarrollamosanteriormente.
Noolvidemosqueelmacronoeliminaelcontenidodelaceldaparaejecutar,sinoquelohace
sobrescribiendoelcontenidoanteriordedichacelda.
Podramosbiencrearunmacroquenospermitaborrarparaluegovolveraejecutar.
Enelcasoquedeseemoscambiarelmtodoabreviadovolveremosarepetirelprocedimientode
iralmenHerramientasMacroMacros(omedianteelaccesodirectodeALT+F8),
seleccionamoselMacroalquelequeramoscambiarelmtodoabreviadoyconelbotnopciones
accedemosalamismapantalladondereasignaremoselabreviado.
Ahora,sinosotrosquisiramosejecutarelmacrodeunaformamssimpleyrpidatambin
tenemoslaposibilidaddeinsertarunbotndesdelabarradeformularios,yasignarlealmismoun
macro.
EstoloharemosmedianteelmenVerBarraHerramientasFormularios,comovemosa
continuacin:
Enlabarradeherramientasdeformulariosseleccionaremoselbotndecomandoylo
dibujaremosenlaplanillaconlaqueestamostrabajando.
Elbotndecomandonospermitirdibujarlosobrecualquierlugardelaplanillacon
lacualestemostrabando.
Esimportanteacotarquedichobotnquedarsobrelaplanillaynoformandoparte
delamismaenunaceldaenparticular.
Unavezquedibujemosdichobotndecomando,alsoltarelMousenospermitir
asignarleunmacroalmismo.
EnelcasodequehayamossoltadoelMouseynosquedemossinasignarunmacroal
mismo,podemosmedianteelbotnderechosobreelbotndibujadoseleccionarla
opcindeAsignarMacro.
Adichobotnpodremoscambiarleelnombre,modificarleeltamaocambiareltextoqueaparece
dentrodelbotn.
RecordarqueparaseleccionarelbotnsimplementeconelCTRLpresionadodamosclicsobre
dichobotnyyapasamosalmodoedicindondeaparecenlospuntosdeagarresobredicho
botn.
Deahoraenmas,simplementeelusuariopresionardichobotnparaejecutarelmacroasignado.
NOTA:Siqueremosasignarunmacroaunaimagenoaunmacropodemoshacerelmismo
procedimiento,osea,insertarlaimagenoelgrficoyconelbotnderechoseleccionarlaopcin
deasignarmacroparaindicarquemacroasignaremosadichaimagen.
Porotroladootramaneraquetenemosdegenerarunaformarpidadeejecucindemacroses
generandouniconoenlabarradeherramientasdeExcel.
ParaestopresionaremossobrelabarradeherramientasestndarconelBOTNDERECHODEL
MOUSE,yseleccionamoslaopcinPERSONALIZAR.
Nosaparecerlasiguientepantalla:
EnlasolapaComandos,buscaremoslacategoraMacrosyaladerechaenlalistadecomandos
veremosdostiposquesern:PersonalizarelementodemenyPersonalizarbotn,estaltima
opcinserlaqueutilicemosparaarrastrarelicono(medianteelbotnizquierdodelMouse
presionado)haciaunlugardelabarradeherramientasestndardeExcel.
Elbotnnosquedenlabarradeherramientasysimplementecuandopresionemosporprimera
vezendichobotnnospermitirasignarleelmacrocorrespondiente.
Encasodequenosotrosqueramosmodificarelmacroydeahoraenmsdeseemoscambiarla
estructura,paraqueloapliqueaunconjuntodeceldas,oparaquenosescribadiferentespalabras
porcadacelda,nonosquedarotraqueacudiraleditordeVisualBasicparaAplicacionespara
cambiarlasintaxisdelagrabacin.
ConlacombinacinALT+F11pasaremosrpidamentealentornoVBA,tambinpodramospasara
dichapantallamedianteelmendeHerramientasMacrosEditorVisualBasic
Nosdesplegarlapantallaquevemosacontinuacin:
Enestapantallatrabajaremosescribiendonuestrospropiosmacros.
Comovemossobrelaparteizquierdadeestapantalla,tenemosunacarpetadeMdulosdonde
encontraremoslosdiferentesmacrosquesehayandesarrollado.Ennuestrocasosolocontamos
conelMdulo1queesdondeseencuentraelmacrograbadoanteriormente.
AldardobleclicsobreelMdulo1veremosaladerechadelapantallaelcdigoque
anteriormentelagrabadorafueescribiendoautomticamentemientrasnosotrosrealizbamoslas
tareas.
CDIGOVBA
ElcdigoVBAsemanejaenidiomaingls.Engeneralellenguajebsicamentesemanejaorientado
aeventos.
Cadaobjetoseseparamedianteel.(Punto)delasdiferentespropiedadesqueposee.
Conceptosesenciales.
Clase:Esunaagrupacindeobjetosconlasmismascaractersticasypropiedades.
Objeto:Sonelementosquesecaracterizanporposeerpropiedadesencomn.
Mtodo:Cualquieroperacinpasibledeserejecutadasobreunobjeto.
Ejemplo: Clase:MediosdeTransporte(generalizacin)
Subclase:Autos(especializacin)
Variable:
Unlugardealmacenamientoconnombrequepuedecontenerciertotipodedatos.Cadavariable
tiene un nombre nico que la identifica. Nombres de variable deben comenzar con un carcter
alfabtico,debensernicosdentrodelmismombito,nodebencontenermsde255caracteres
ynopuedencontenerunpunto.
CadamacroquevayamosescribiendoeneleditordevisualBasic,debecomenzarconlasentencia
Sub,yterminarconlasentenciaEndSub.
Veamosennuestroprimerejemplo.DentrodelacarpetaMdulostenemosnuestroModulo1y
dentrodelmismodesarrollamosdosmacros.
NuestroMacro1fuegrabadomedianteelusodelagrabadoraparamacrosyluegocomenzamos
mediantelaordenSubelmacrodenominadoPrimeroquesimplementeescribelapalabraHOLA
enlaceldaA1.
EnformapredeterminadacuandohacemosreferenciaalaceldaA1,MicrosoftExcellotomar
sobrelahojaactiva(hojaenlaqueestamosposicionadosalejecutarelmacro).
Formasdereferiralahoja:
ActiveSheet.Range(A1).value
AquhacemosreferenciaalaceldaA1delahojaactiva
Sheets(1).Range(A1).Value
Aquhacemosreferenciaalahojaconndice1,celdaA1dellibroactivo
Sheets(Hoja1).Range(A1).Value
AquhacemosreferenciaalahojadenominadaHoja1,celdaA1
RepetimosqueenformapredeterminadaExceltomaActivesheetcuandonosreferimosauna
celdadeterminada.
Mtodos.
Lamayoradeobjetostienencomportamientosorealizanacciones,porejemplo,unaaccin
evidentedeunobjetococheeseldemoverseoloqueeslomismo,trasladarsedeunpuntoinicial
aunpuntofinal.
Cualquierprocesoqueimplicaunaaccinopautadecomportamientoporpartedeunobjetose
defineensuclaseparaqueluegopuedamanifestarseencualquieradesusobjetos.As,enlaclase
cochesedefiniranenelmtodomovertodoslosprocesosnecesariosparallevarloacabo(los
procesosparadesplazardeunpuntoinicialaunpuntofinal),luegocadaobjetodelaclasecoche
simplementetendraqueinvocarestemtodoparatrasladarsedeunpuntoinicialaunpunto
final,cualesquieraquefueranesospuntos.
Repasemosacontinuacintodosestosconceptosperoahoradesdeelpuntodevistadealgunos
delosobjetosquenosencontraremosenExcelcomoWorkSheet(Objetohojadeclculo)oRange
(Objetocasillaorangodecasillas).
UnobjetoRangeestdefinidoporunaclasedondesedefinensuspropiedades,recordemosque
unapropiedadesunacaracterstica,modificableono,deunobjeto.Entrelaspropiedadesdeun
objetoRangeestnValue,quecontieneelvalordelacasilla,ColumnyRowquecontienen
respectivamentelafilaylacolumnadelacasilla,Fontquecontienelafuentedeloscaracteresque
muestralacasilla,etc.
Range,comoobjeto,tambintienemtodos,recordemosquelosmtodossirvenllevaracabo
unaaccinsobreunobjeto.PorejemploelmtodoActivate,haceactivaunaceldadeterminada,
Clear,borraelcontenidodeunaceldaorangodeceldas,Copy,copiaelcontenidodelaceldao
rangodeceldasenelportapapeles,...
Conjuntos.
Unaconjuntoesunacoleccindeobjetosdelmismotipo,paralosqueconozcanalgnlenguajede
programacinesunarraydeobjetos.Porejemplo,dentrodeunlibrodetrabajopuedeexistirms
deunahoja(WorkSheet),todaslashojasdeunlibrodetrabajoformanunconjunto,elconjunto
WorkSheets.
Cadaelementoindividualdeunconjuntosereferenciaporunndice,deestaforma,laprimera,
segundaytercerahojadeunlibrodetrabajo,sereferenciarnporWorkSheets(1),WorkSheets(2)
yWorkSheets(3).
ObjetosdeObjetos.
Esmuyhabitualqueunapropiedaddeunobjetoseaotroobjeto.Siguiendoconelcoche,unade
laspropiedadesdelcocheeselmotor,yelmotoresunobjetoconpropiedadescomocubicaje,
caballos,nmerodevlvulas,etc.ymtodos,comoaumentar_revoluciones,cargar_combustible,
mover_pistones,etc.
EnExcel,elobjetoWorkSheetstienelapropiedadRangequeesunobjeto,Rangetienela
propiedadFontqueestambinunobjetoyFonttienelapropiedadBold(negrita).Tengaestomuy
presenteyaqueutilizaremosfrecuentementePropiedadesdeunobjetoqueserntambin
Objetos.
Dichodeotraforma,haypropiedadesquedevuelvenobjetos,porejemplo,lapropiedadRangede
unobjetoWorkSheetdevuelveunobjetodetipoRange.
Insertarunnuevomdulo.
Unmdulosirveparaagruparprocedimientosyfunciones.Elprocedimientoylafuncinson
entidadesdeprogramacinquesirvenparaagruparinstruccionesdecdigoquerealizanuna
accinconcreta.
ParainsertarunmduloactiveopcindelmenInsertar/Mdulo.Seactivarunanuevaventana,
siaparecedemasiadopequea,maximcela.
Insertarunprocedimiento.
Yahemosdichoqueunprocedimientoesunbloquedeinstruccionesdecdigoquesirvenpara
llevaracaboalgunatareaespecfica.Unprocedimientoempiezasiempreconlainstruccin
SubNombre_Procedimiento
YterminaconlainstruccinEndSub.
Acontinuacincrearemosunprocedimientoparaponereltexto"Hola"enlacasillaA1.
Ejemplo1
SubPrimero
Range("A1").Value="Hola"
EndSub
Observeelcdigo.
Range("A1").Value="Hola"
EnestalneaestamosindicandoquetrabajamosconunobjetoRange.Paraindicarlequenos
referimosalacasillaA1,encerramosentreparntesisestareferencia(msadelanteverotra
formadereferirnosalascasillas).Deesteobjeto,indicamosquequeremosestablecerunnuevo
valorparalapropiedadValue,observequeparasepararelobjetodesupropiedadutilizamosla
notacinpunto.
RecuerdequeelconjuntoRangeesunobjetoquependedelobjetoWorkSheets,asporejemplo
elsiguientecdigoharalomismoqueelanterior.
WorkSheets(1).Range("A1").Value="Hola"
Bueno,dehechonohacelomismo,enlaprimeraopcin,eltexto"Hola"seponedentrodela
casillaA1delahojaactiva,mientrasqueenelsegundoesenlacasillaA1deprimerahoja(del
conjuntodehojas).
Lasegundanotacinesmslarga,perotambinmsrecomendableyaqueseespecificantodos
losobjetos.Enmuchasocasionessepuedenomitiralgunosobjetosprecedentes,nole
aconsejamoshacerlo,susprogramasperdernclaridadyconcisin.
SideseahacerreferenciaalahojaactivapuedeutilizarActiveSheet,as,elprimerejemplolo
dejaremosdelamanerasiguiente.
SubPrimero
ActiveSheet.Range("A1").Value="Hola"
EndSub
Sideseaponer"Hola"(ocualquiervalor)enlacasillaactiva,puedeutilizarlapropiedad(objeto)
ActivecelldeWorkSheets.Asparaponer"Hola"enlacasillaactivadelahojaactivaseria,
SubPrimero
ActiveSheet.ActiveCell.Value="Hola"
EndSub
Paraterminarconesteprimerejemplo.WorkSheetsestndentrodelObjetoWorkBooks(libros
detrabajo)yWorkBooksestndentrodeApplication.
Applicationeselobjetosuperior,eselquerepresentalaaplicacinExcel.As,elprimerejemplo,
siguiendotodalajerarquadeobjetosquedaradelaformasiguiente.
SubPrimero
Application.WorkBooks(1).WorkSheets(1).Range("A1").Value="Hola"
EndSub
Insistiendoconlanomenclatura,Applicationcasinuncaesnecesarioespecificarlo,pienseque
todoslosobjetospendendeeste,WorkBookssernecesarioimplementarlosienlasmacrosse
trabajacondiferenteslibrosdetrabajo(diferentesarchivos),apartirdeWorkSheets,es
aconsejableincluirloenelcdigo,sobretodosisequieretrabajarcondiferenteshojas,ver,sin
embargo,queenmuchasocasionesnoseaplica.
Ejecutarunprocedimientoofuncin.
Pruebeejecutarelprimerprocedimientodeejemplo.
1. Siteelcursordentrodelprocedimiento.
2.ActiveopcindelabarrademensEjecutar/EjecutarSubUserform.Tambinpuedehacer
clicsobreelbotnopulsarlateclaF5.
Paraejecutarelprocedimientodesdelahojadeclculo.
Debeestarenunahoja,noeneleditordeVisualBasic
1. ActiveopcindelabarrademensHerramientas/Macro/Macros.Sedespliegauna
ventanaquemuestraunalistadondeestntodaslasmacrosincluidasenellibrode
trabajo.
2. SeleccionelamacrodelalistaypulsesobreelbotnEjecutar.
Ejemplo2
Enestesegundoejemplosimplementeampliaremoslafuncionalidaddelamacrodelejemplo1.
Ademsdeescribir"Hola"enlacasillaA1delaceldaA1,lapondremosennegritayledaremos
coloraltexto.
ParaelloutilizaremoslaspropiedadesBoldyColordelobjetoFont.
SubSegundo
ActiveSheet.Range("A1").Value="Hola"
ActiveSheet.Range("A1").Font.Bold=True
ActiveSheet.Range("A1").Font.Color=RGB(255,0,0)
EndSub
True.
True,quetraducidoesverdadero,simplementeindicaquelapropiedadBoldestactivada.Sise
desearadesactivar,bastaraconigualarlaalvalorFalse.
LafuncinRGB.
ObservequeparaestablecerelcolordelapropiedadseutilizalafuncinRGB(Red,Green,Blue),
lostresargumentosparaestafuncinsonvaloresdel0a255quecorrespondenalaintensidadde
loscoloresRojo,VerdeyAzulrespectivamente.
Referenciarunrangodeceldas.
SlotienequecambiaralaformaCasilla_Inicial:Casilla_Final.Porejemploaplicarelltimo
ejemploalrangodecasillasquevadelaA1alaA8,ponga.
SubSegundo
ActiveSheet.Range("A1:A8").Value="Hola"
ActiveSheet.Range("A1:A8").Font.Bold=True
ActiveSheet.Range("A1:A8").Font.Color=RGB(255,0,0)
EndSub
Variables.
AcontinuacinvamosarepetirelprogramaEjemplo1,peroenlugardeponer"Hola"enlacasilla
A1delahojaactiva,dejaremosqueelusuarioentreuntextodesdetecladoyacontinuacin
guardaremosesevalorenesacasilla.
Observequeelvalorqueingreseelusuariodebeguardarseenalgnlugarparapoderponerlo
despusenlacasillaA1;puesbien,esevalorseguardarenunavariable.
Unavariableessimplementeuntrozodememoriaquelafuncinoprocedimientosereservapara
guardardatos,laformageneraldedeclararunavariablees
DIMvariableAStipo.
SiendovariableelnombrequeseasignaalamismayTipoeltipodedatosqueseguardarn
(nmeros,texto,fecha,booleanos,...).
Ennuestroejemplo,declararemoslavariabledetipoString(tipotexto),yloharemosdelaforma
siguiente.
DimTextoAsString
Conestoestamosindicandoquesereserveuntrozodememoria(elquesea),quesellamaTexto
yqueeltipodedatosqueseguardarnahserncaracteres.
LaFuncinInputBox.
Estafuncinmuestraunaventanaparaqueelusuariopuedatecleardatos.Cuandosepulsasobre
Aceptar,losdatosentradospasanalavariablealaquesehaigualadolafuncin.Vealalnea
siguiente.
Texto=InputBox("Introduzcaeltexto","Entradadedatos").
SienlaventanaquemuestraInputBoxpulsasobreelbotnAceptar,losdatostecleadosse
guardarnenlavariableTexto.
SintaxisdeInputBox.
InputBox(Mensaje,Ttulo,Valorpordefecto,Posicinhorizontal,PosicinVertical,Archivo
Ayuda,Nmerodecontextoparalaayuda).
Mensaje:Eselmensajequesemuestraenlaventana.Sideseaponermsdeunalneaponga
Chr(13)paracadanuevalnea,veaelejemplosiguiente.
Ttulo:EselttuloparalaventanaInputBox.Esunparmetroopcional.
Valorpordefecto:Eselvalorquemostrarpordefectoelcuadrodondeelusuarioentraelvalor.
Parmetroopcional.
PosicinHorizontal:LaposicinXdelapantalladondesemostrarelcuadro,concretamenteesla
posicinparalaparteizquierda.Siseomiteelcuadrosepresentahorizontalmentecentradoala
pantalla.
PosicinVertical:LaposicinYdelapantalladondesemostrarelcuadro,concretamenteesla
Posicinparalapartesuperior.Siseomiteelcuadrosepresentaverticalmentecentradoala
Pantalla.
ArchivoAyuda:Eselarchivoquecontienelaayudaparaelcuadro.Parmetroopcional.
Nmerodecontextoparalaayuda:Nmeroasignadoquecorrespondealidentificadordelarchivo
deayuda,sirveparalocalizareltextoquesedebemostrar.Siseespecificaesteparmetro,debe
especificarseobligatoriamenteelparmetroArchivoAyuda.
Ejemplo3
SubEntrar_Valor
DimTextoAsString
'Chr(13)sirveparaqueelmensajesemuestreendosLneas
Texto=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")
ActiveSheet.Range("A1").Value=Texto
EndSub
Esteejemplotambinsepuedehacersinvariables.
SubEntrar_Valor
ActiveSheet.Range("A1").Value=InputBox("Introduciruntexto"&Chr(13)&"Paralacasilla
A1","Entradadedatos")
EndSub
Ejemplo4
Repetiremoselejemplo3,peroenlugardeentrarlosvaloressobrelacasillaA1,haremosqueel
usuariopuedaelegirenquecasillaquiereentrarlosdatos,esdecir,selepreguntaralusuario
medianteunsegundoInputboxsobrequecasillaquiereentrarelvalordelprimerInputbox.Sern
necesariasdosvariables,unaparaguardarlacasillaqueescojaelusuarioyotraparaguardarel
valor.
OptionExplicit
SubEntrar_Valor
DimCasillaAsString
DimTextoAsString
Casilla=InputBox("Enquecasillaquiereentrarelvalor","EntrarCasilla")
Texto=InputBox("Introduciruntexto"&Chr(13)&"Paralacasilla"&Casilla,"Entradadedatos")
ActiveSheet.Range(Casilla).Value=Texto
EndSub
LasentenciaOptionExplicit.
Envisualbasicnoesnecesariodeclararlasvariables,porejemplo,enelprogramaanteriorse
hubierapodidoprescindirdelaslneas
DimCasillaAsString
DimTextoAsString
A pesar de ello, le recomendamos que siempre declare las variables que va a utilizar, de esta
forma sabr cuales utiliza el procedimiento y qu tipo de datos guarda cada una, piense que a
medidaquevayaaprendiendo,crearprocedimientoscadavezmscomplicadosyquerequerirn
el uso de ms variables, si no declara las variables al principio del procedimiento ocurrirn dos
cosas. Primero, las variables no declaradas son asumidas como tipo Variant (este es un tipo de
datosquepuedealmacenarcualquiervalor,nmero,fechas,texto,etc.perotengaencuentaque
ocupa 20 Bytes y para guardar una referencia a una casilla, la edad de alguien, etc. no son
necesarios tantos bytes); segundo, reducir considerablemente la legibilidad de sus
procedimientos ya que las variables las ir colocando a medida que las necesite, esto, a la larga
complicarlacorreccinomodificacindelprocedimiento.
Bueno, pues toda la explicacin anterior es para que declare todas las variables que va a utilizar.
LasentenciaOptionExplicitalprincipiodelmdulofuerzaaquesedeclarentodaslasvariables.Si
al ejecutar el programa, se encuentra alguna variable sin declarar se producir un error y no se
podrejecutarelprogramahastaquesedeclare.
SitodavanosehaconvencidosobrelaconvenienciadedeclararlasvariablesyutilizarOption
Explicit,pruebeelprocedimientosiguiente,cpielotalcual(TextoyTestoestnpuestosadrede
simulandoquenoshemosequivocadoalteclear).
SubEntrar_Valor
Texto=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")
ActiveSheet.Range("A1").Value=Testo
EndSub
Observequeelprogramanohaceloquesepretendaquehiciera.Efectivamente,TextoyTesto
sondosvariablesdiferentes,comonosehadeclaradoningunanisehautilizadoOptionExplicit
VisualBasicnodaningntipodeerroryejecutaelprograma.Pruebeelsiguientemduloe
intenteejecutarlo.
OptionExplicit
SubEntrar_Valor
DimTextoAsString
Texto=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")
ActiveSheet.Range("A1").Value=Testo
EndSub
Observequeelprogramanoseejecuta,alponerOptionExplicit,forzamosaquesedeclarentodas
lasvariables.VisualBasicdetectaquelavariableTestonohasidodeclaradayasloindica
mostrandoError,entoncesescuandoesmsfcildarnoscuentadelerrorquehemoscometidoal
teclearycambiamosTestoporTexto.Ahoraimaginequeelerrorseproduceenunprogramade
cientosdelneasquenecesitaotrastantasvariables.
TiposdedatosenVisualBasicparaExcel.(Tablacopiadadelaayudaen
lneadeVisualBasicparaExcel).
ConversindeTiposdedatos.
CopieelsiguienteEjemplo.Simplementesepidendosnmeros,sesumanyseguardanellacasilla
A1delahojaactiva.
Ejemplo5
OptionExplicit
SubSumar()
DimNumero1AsInteger
DimNumero2AsInteger
Numero1=InputBox("Entrarelprimervalor","Entradadedatos")
Numero2=InputBox("Entrarelprimervalor","Entradadedatos")
ActiveSheet.Range("A1").Value=Numero1+Numero2
EndSub
Ejecuteelprocedimientoypongarespectivamentelosvalores25y25.Observequetodohaido
correctamenteyenlacasillaA1delahojaactivaapareceun50.
Ahora,vuelvaaejecutarelprogramaycuandoselepideelprimervalorteclee"Hola".Observe
queelprogramasedetieneindicandounerroreneltipodedatos.Efectivamente,observequela
funcinInputBoxdevuelvesiempredatostipoString,enelprimerejemplonohahabidoningn
problema,alentrarcaracteresnumricos1,estospuedenasignarseavariablestipoIntegerporque
VisualBasichaceautomticamentelaconversin,peroalentrartextoeintentarloasignarauna
variableIntegerVisualBasicmuestraunerrorindicandoquelavariablenoesadecuadaparalos
datosquesedeseanguardar.
Parasolucionarestosproblemassedebenutilizarfuncionesdeconversindetipo.Estas
funciones,comosunombreindica,conviertendatosdeuntipoaotro,deStringaInteger,de
IntegeraString,deDateaString,...Aselprocedimientoanteriorquedara.
OptionExplicit
SubSumar()
DimNumero1AsInteger
DimNumero2AsInteger
Numero1=Val(InputBox("Entrarelprimervalor","Entradadedatos"))
Numero2=Val(InputBox("Entrarelprimervalor","Entradadedatos"))
ActiveSheet.Range("A1").Value=Numero1+Numero2
EndSub
LafuncinVal(DatoString),convierteunacadenadecaracteresavalornumrico.Silacadenaa
convertircontienealgncarcternonumricodevuelve0.As,sialpedirunvalorseteclea"Hola",
lafuncinVal,devolveruncero.
Funcionesdeconversindetipos.(Tablacopiadadelaayudaenlneade
VisualBasicparaExcel).
Val(Cadena).Conviertelacadenaaunvalornumrico.
Str(Nmero).Convierteelnmeroaunaexpresincadena.
CDate(Fecha).Conviertecualquiercadenaafecha.
ObjetoCells(fila,columna).
Sirve,comoelobjetorange,parareferenciarunacasillaorangodecasillas,peroenlugarde
utilizarlareferenciadelaformaA1,B1,X320,...utilizalafilaylacolumnaqueocupalacasilla
dentrodelahoja(oobjetoWorkSheet).Porejemplo,paraponerholaenlacasillaA1delahoja
activaseria:
ActiveSheet.Cells(1,1).Value="Hola"
UtilizarCellsparareferenciarunrango.
EstoseraelequivalenteaRange("Casilla_Inicial:Casilla_Final").
LaformaqueseobtieneutilizandoCellsesunpocomslarga,peroseverqueavecesresulta
muchomsfuncionalqueutilizandonicamenterange.ParareferirnosalrangoA1:B8,
pondremos:
Range(Cells(1,1),Cells(8,2)).Value="Hola"
OtraformainteresantedeCellseslasiguiente:
Range("A5:B10").Cells(2,1).Value="Hola"
PondrenlaceldaA6elvalor"Hola",observequeenesteejemploCellscomienzaacontarfilasy
columnasapartirdelrangoespecificadoenelobjetoRange.
VariablesdeObjetos.
Unavariableobjetosirveparahacerreferenciaaunobjeto,estosignificaquepodremosaccedera
laspropiedadesdeunobjetoeinvocarasusmtodosatravsdelavariableenlugardehacerlo
directamenteatravsdelobjeto.Posiblementenoseutilicedemasiadoestaclasedevariables
(estclaroqueestodependerdelaspreferenciasdelprogramador),perohaycasosenlosqueno
haymsremedioqueutilizarlas,porejemploenestructurasForEach...Nextcomoveremos,o
cuandoseanecesarioconstruirfuncionesquedevuelvanrangos,referenciasahojas,etc.
ParadeclararunavariableobjetoseutilizatambinlapalabraDimdelaformasiguiente,
DimVar_ObjetoAsObjeto
PorEjemplo:
DimRAsRange
DimHojaAsWorkSheet
ParaasignarunobjetoaunavariabledebeutilizarlainstruccinSet.
SetVariable_Objeto=Objeto
PorEjemplo
SetR=ActiveSheet.Range("A1:B10")
SetHoja=ActiveSheet
SetHoja=WorkSheets(1)
Veamosacontinuacinunejemplodecmoutilizarestetipodevariables,
Ejemplo6.
Algomuysimple,llenarelrangodeA1aB10conlapalabra"Hola"ydespusponernegrita,
observecomoseasignaunavariableobjetoalobjetoyluegocomosetrabajaconesavariablede
lamismaformaquetrabajaradirectamentesobreelobjeto.
Subobj()
DimRAsRange
SetR=ActiveSheet.Range("A10:B15")
R.Value="Hola"
R.Font.Bold=True
EndSub
Estructurascondicionales.
Ahoraqueyahaexperimentadoconunoscuantosobjetosypropiedades,nosdetendremosa
estudiarlasestructurascondicionales.Lasestructurascondicionalessoninstruccionesde
programacinquepermitencontrolarlaejecucindeunfragmentodecdigoenfuncindesise
cumpleonounacondicin.
EstudiaremosenprimerlugarlainstruccinifCondicinthen..Endif(SiCondicinEntonces...Fin
Si)
LaestructuracondicionalqueseconstruyeconlainstruccinSiCondicinEntonces...FinSitiene
laformasiguiente.
SiCondicinEntonces
Sentncia1
Sentncia2
.
.
SentnciaN
FinSi
.
.
CuandoelprogramallegaalainstruccinSiCondicinEntonces,seevalalacondicin,siestase
cumple(escierta),seejecutantodaslassentenciasqueestnencerradasenelbloque,sinose
cumplelacondicin,sesaltanestassentencias.EstaestructuraenVisualBasictienelasintaxis
siguiente:
IfCondicinThen
Sentncia1
Sentncia2
.
.
SentnciaN
EndIf
Ejemplo6
EntrarunacantidadquerepresentaelpreciodealgoporeltecladoconlainstruccinInputBoxy
guardarloenlaceldaA1delahojaactiva.Sielvalorentradodesdeelteclado(yguardadoenA1)
essuperiora1000,pedirdescuentoconotroInputBoxyguardarloenlacasillaA2delahoja
activa.
CalcularenA3,elpreciodeA1menoseldescuentodeA2.
SubCondicional()
ActiveSheet.Range("A1").Value=0'Ponerlascasillasdondeseguardanlosvalores0.
ActiveSheet.Range("A2").Value=0
ActiveSheet.Range("A3").Value=0
ActiveSheet.Range("A1").Value=Val(InputBox("Entrarelprecio","Entrar"))
'SielvalordelacasillaA1esmayorque1000,entonces,pedirdescuento
IfActiveSheet.Range("A1").Value>1000Then
ActiveSheet.Range("A2").Value=Val(InputBox("EntrarDescuento","Entrar"))
EndIf
ActiveSheet.Range("A3").Value=ActiveSheet.Range("A1").Value_
ActiveSheet.Range("A2").Value
EndSub
Ejemplo7.
Elmismoqueelanteriorperoutilizandovariables.
OptionExplicit
SubCondicional()
DimPrecioAsInteger
DimDescuentoAsInteger
Precio=0
Descuento=0
Precio=Val(InputBox("Entrarelprecio","Entrar"))
'Sielvalordelavariableprecioesmayorque1000,entonces,pedirdescuento
IfPrecio>1000Then
Descuento=Val(InputBox("EntrarDescuento","Entrar"))
EndIf
ActiveSheet.Range("A1").Value=Precio
ActiveSheet.Range("A2").Value=Descuento
ActiveSheet.Range("A3").Value=PrecioDescuento
EndSub
Viendolosdosprogramasanteriorespuedequelesurjaladudadesiemplearvariableso
directamentevaloresalmacenadosenlasceldas.Lasolucinesfcil,loqueleparezcams
convenienteencadacasoconcretoquedeseesolucionar.Lasvariables,aunquemuchasveces
"innecesarias",quizsdejanlosprogramasmslegiblesyclaros.Ylalegibilidaddeunprogramaes
lomsvaliosodelmundoparaunprogramador(profesionalmentehablando),sobretodosiseda
elcaso(inevitableel99,999...%delasocasiones)quesetengaquemodificarunprogramapara
dotarledemsfuncionalidades,facilitarsumanejo,etc.Enlamayoradeejemplosqueencontrar
enestemanualverqueseutilizanvariablespreferentemente.Aunquemuchasvecessufuncin
seasimplementerecogerdatosdelasceldasparaoperarlasydejarlasenotrasceldasy,
consecuentemente,aumenteelnmerodeoperaciones,creemosqueconelloseganaen
legibilidadyflexibilidad.
Ejemplo8.
MacroquecomparalosvaloresdelascasillasA1yA2delahojaactiva.Sisonigualesponeelcolor
delafuentedeambasenazul.
SubCondicional2()
IfActiveSheet.Range("A1").Value=ActiveSheet.Range("A2").ValueThen
ActiveSheet.Range("A1").Font.Color=RGB(0,0,255)
ActiveSheet.Range("A2").Font.Color=RGB(0,0,255)
EndIf
EndSub
EstructuraIf..Else
Estaestructuraseutilizacuandoserequiereunarespuestaalternativaaunacondicin.Su
estructuraeslasiguiente.
SiCondicinEntonces
Sentncia1
Sentncia2
.
.
SentnciaN
Sino
Sentncia1
Sentncia2
.
.
SentnciaN
FinSi
Observeque,sisecumplelacondicin,seejecutaelbloquedesentenciasdelimitadoporSi
CondicinEntoncesySinosecumplelacondicinseejecutaelbloquedelimitadoporSinoyFin
Si.
EnVisualBasiclainstruccinSiCondicinEntonces...Sino...FinSiseexpresaconlas
instruccionessiguientes.
IfCondicinThen
Sentncia1
Sentncia2
.
.
SentnciaN
Else
Sentncia1
Sentncia2
.
.
SentnciaN
EndIf
Ejemplo9.
EntrarunacantidadquerepresentaelpreciodealgoporeltecladoconlainstruccinInputBoxy
guardarloenlaceldaA1delahojaactiva.Sielvalorentradodesdeelteclado(yguardadoenA1)
essuperiora1000,seaplicaundescuentodel10%sinoseaplicaundescuentodel5%,el
descuentoseguardaenlacasillaA2delahojaactiva.ColocarenA3,eltotaldescuentoyenA4el
totalmenoseldescuento.
SubCondicional_Else()
DimPrecioAsSingle
DimDescuentoAsSingle
Precio=0
Precio=Val(InputBox("Entrarelprecio","Entrar"))
'Sielvalordelavariableprecioesmayorque1000,entonces,aplicardescuentodel10%
IfPrecio>1000Then
Descuento=Precio*(10/100)
ActiveSheet.Range("A2").Value=0,1
Else'SinoAplicardescuentodel5%
Descuento=Precio*(5/100)
ActiveSheet.Range("A2").Value=0,05
EndIf
ActiveSheet.Range("A1").Value=Precio
ActiveSheet.Range("A3").Value=Descuento
ActiveSheet.Range("A4").Value=PrecioDescuento
EndSub
Ejemplo10.
RestarlosvaloresdelascasillasA1yA2.GuardarelresultadoenA3.Sielresultadoespositivoo0,
ponerlafuentedeA3enazul,sinoponerlaenrojo.
SubCondicional_Else2()
ActiveSheet.Range("A3").Value=AvtiveSheet.Range("A1").Value_
ActiveSheet.Range("A2").Value
IfActiveSheet("A3").Value<0Then
ActiveSheet.Range("A3").Font.Color=RGB(255,0,0)
Else
ActiveSheet.Range("A3").Font.Color=RGB(0,0,255)
EndIf
EndSub
EstructurasIfanidadas.
Notienequesorprenderle,dentrodeunaestructuraifpuedeirotra,ydentrodeestaotra,y
otra...Veaelejemplosiguiente.
Ejemplo11.
CompararlosvaloresdelascasillasA1yA2delahojaactiva.Sisoniguales,escribirenA3"Los
valoresdeA1yA2soniguales",sielvalordeA1esmayorqueA2,escribir"A1mayorqueA2",
sino,escribir"A2mayorqueA1".
SubCondicional()
IfActiveSheet.Range("A1").Value=ActiveSheet.Range("A2").ValueThen
ActiveSheet.Range("A3").Value="LosValoresdeA1yA2soniguales"
Else
IfActiveSheet.Range("A1").Value>ActiveSheet.Range("A2").ValueThen
ActiveSheet.Range("A3").Value="A1mayorqueA2"
Else
ActiveSheet.Range("A3").Value="A2mayorqueA1"
EndIf
EndIf
EndSub
ObservequelasegundaestructuraIf..Else..EndIfquedadentrodelElsedelaprimeraestructura.
Estaesunareglageneral,cuandoponeunEndIf,estecierrasiempreelltimoIf(oElse)abierto.
Operadoreslgicos.
Estosoperadoresseutilizancuandosenecesitanevaluardosomscondicionesparadecidirsise
ejecutanonodeterminadasacciones.
OperadorLgicoAnd(Y).
Utilizaremosesteoperadorcuandoseaprecisoqueparaejecutarunbloquedeinstruccionesse
cumplamsdeunacondicin.Observequedeberncumplirsetodaslascondiciones.Veael
ejemplosiguiente.
Ejemplo12.
EntrarelNombre,lacantidadyelpreciodeunproductodesdeeltecladoyguardarlos
respectivamenteen
A1,A2yA3.CalculareltotalyguardarloenA4.Sieltotalessuperiora10.000yelnombredel
productoes"Patatas",pedirundescuento,calcularloeltotaldescuentoyguardarloenA5,luego
restareldescuentodeltotalyguardarloenA6.
SubEjemplo_12()
DimProductoAsString
DimCantidadAsInteger
DimPrecioAsSingle
DimTotalAsSingle
DimDescuentoAsSingle
DimTotal_DescuentoAsSingle
Precio=0
Producto=InputBox("EntrarNombredelProducto","Entrar")
Precio=Val(InputBox("Entrarelprecio","Entrar"))
Precio=Val(InputBox("Entrarlacantidad","Entrar"))
Total=Precio*Cantidad
ActiveSheet.Range("A1").Value=Producto
ActiveSheet.Range("A2").Value=Precio
ActiveSheet.Range("A3").Value=Cantidad
ActiveSheet.Range("A4").Value=Total
'Sitotalmayorque10.000yelproductoesPatatas,aplicardescuento.
IfTotal>10000AndProducto="Patatas"Then
Descuento=Val(InputBox("EntrarDescuento","Entrar"))
Total_Descuento=Total*(Descuento/100)
Total=TotalTotal_Descuento
ActiveSheet.Range("A5").Value=Total_Descuento
ActiveSheet.Range("A6").Value=Total
EndIf
EndSub
ObservequeparaqueseejecuteelbloquedeinstruccionesentreIf..EndIfdebencumplirselas
doscondicionesqueseevalan,sifallacualquieradelasdos(olasdosalavez),noseejecuta
dichobloque.
OperadorLgicoOr(O).
Utilizaremosesteoperadorcuandoseaprecisoqueparaejecutarunbloquedeinstruccionesse
cumplaalgunadeunaseriedecondiciones.Observequesloesnecesarioquesecumplaalguna
delascondicionesqueseevalan.Veaelejemplosiguiente.
Ejemplo13.
EntrarelNombre,lacantidadyelpreciodeunproductodesdeeltecladoyguardarlos
respectivamenteenA1,A2yA3.CalculareltotalyguardarloenA4.Sieltotalessuperiora10.000
oelnombredelproductoes"Patatas",pedirundescuento,calcularloeltotaldescuentoy
guardarloenA5,luegorestareldescuentodeltotalyguardarloenA6.
SubEjemplo_13()
DimProductoAsString
DimCantidadAsInteger
DimPrecioAsSingle
DimTotalAsSingle
DimDescuentoAsSingle
DimTotal_DescuentoAsSingle
Precio=0
Producto=InputBox("EntrarNombredelProducto","Entrar")
Precio=Val(InputBox("Entrarelprecio","Entrar"))
Precio=Val(InputBox("Entrarlacantidad","Entrar"))
Total=Precio*Cantidad
ActiveSheet.Range("A1").Value=Producto
ActiveSheet.Range("A2").Value=Precio
ActiveSheet.Range("A3").Value=Cantidad
ActiveSheet.Range("A4").Value=Total
'Sitotalmayorque10.000oelproductoesPatatas,aplicardescuento.
IfTotal>10000OrProducto="Patatas"Then
Descuento=Val(InputBox("EntrarDescuento","Entrar"))
Total_Descuento=Total*(Descuento/100)
Total=TotalTotal_Descuento
ActiveSheet.Range("A5").Value=Total_Descuento
ActiveSheet.Range("A6").Value=Total
EndIf
EndSub
ObservequeparaqueseejecuteelbloquedeinstruccionesentreIf..EndIfsloesnecesarioque
secumplaalgunadelasdoscondicionesqueseevalan(olasdosalavez).Slocuandonose
cumpleningunadelasdosnoseejecutanlasinstruccionesdelbloque.
EstructuraSelectCase.
Enocasionessedarelcasoqueenfuncindelvalororangodevaloresquepuedateneruna
variable,unacasilla,unaexpresin,etc.debernllevarseacabodiferentesaccionesogruposde
acciones.Veaelejemplosiguiente.
Ejemplo15.
Macroquesuma,resta,multiplicaodividelosvaloresdelascasillasA1yA2dependiendodesiB1
contieneelsigno+,,x,:.ElresultadolodejaenA3.SienB1nohayningunodelossignos
anterioresenA3debedejarseun0.
SubEjemplo_15()
DimSignoAsString
DimValor1AsInteger,Valor2AsInteger,TotalAsInteger
Valor1=ActiveSheet.Range("A1").Value
Valor2=ActiveSheet.Range("A2").Value
Signo=ActiveSheet.Range("B1").Value
Total=0
IfSigno="+"Then
Total=Valor1+Valor2
Endif
IfSigno=""Then
Total=Valor1Valor2
Endif
IfSigno="x"Then
Total=Valor1*Valor2
Endif
IfSigno=":"Then
Total=Valor1/Valor2
Endif
ActiveCell.Range("A3").Value=Total
EndSub
Observequeenelejemploanteriortodaslasinstruccionesifevalanlamismavariable.El
programafuncionacorrectamenteperoparaestoscasosesmejorutilizarlainstruccinSelectCa
se,elmotivoprincipalesporlegibilidadyelegancia.SelectCasetienelasintaxissiguiente,
SelectCaseExpresin
Casevalores:
Instrucciones.
Casevalores:
Instrucciones.
.
.
Casevalores:
Instrucciones.
CaseElse
Instruccionesencasoquenoseanningunodelosvaloresanteriores.
EndSelect
Veaelejemploanteriorsolucionadoconestaestructura.
Ejemplo16.
SubEjemplo_16()
DimSignoAsString
DimValor1AsInteger,Valor2AsInteger,TotalAsInteger
Valor1=ActiveSheet.Range("A1").Value
Valor2=ActiveSheet.Range("A2").Value
Signo=ActiveSheet.Range("A3").Value
SelectCasesigno
Case"+"
Total=Valor1+Valor2
Case""
Total=Valor1Valor2
Case"x"
Total=Valor1*Valor2
Case":"
Total=Valor1/Valor2
CaseElse
Total=0
EndSelect
ActiveCell.Range("A3").Value=Total
EndSub
VeaelejemplosiguientedondecadasentenciaCaseevalaunrangodevalores.
Ejemplo17.
ProgramaquepidetresnotasdeunalumnomediantelafuncinInputBox.Lasnotasvanaparar
respectivamentealascasillasA1,A2yA3delahojaactiva.Elprogramacalculalamediayladeja
enA4.
Silamediaestentre0y2dejaenA5elmensaje"Muydeficiente",silanotaes3dejaenA5el
mensaje"Deficiente",silanotaes4deja"Insuficiente",sies5"Suficiente",sies6"Bien",siest
entre7y8deja"Notable",siesmayorque8deja"Sobresaliente".
SubEjemplo_17()
DimNota1AsInteger,Nota2AsInteger,Nota3AsInteger
DimMediaAsSingle
Nota1=Val(InputBox("EntrarNotaprimeraevaluacin","Nota"))
Nota2=Val(InputBox("EntrarNotaSegundaevaluacin","Nota"))
Nota3=Val(InputBox("EntrarNotaTerceraevaluacin","Nota"))
Media=(Nota1+Nota2+Nota3)/3
ActiveSheet.Range("A1").Value=Nota1
ActiveSheet.Range("A2").Value=Nota2
ActiveSheet.Range("A3").Value=Nota3
ActiveSheet.Range("A4").Value=Media
SelectCaseMedia
Case0To2
ActiveSheet.Range("A5").Value="Muydeficiente"
Case3
ActiveSheet.Range("A5").Value="Deficiente"
Case4
ActiveSheet.Range("A5").Value="Insuficiente"
Case5
ActiveSheet.Range("A5").Value="Suficiente"
Case6
ActiveSheet.Range("A5").Value="Bien"
Case7To8
ActiveSheet.Range("A5").Value="Notable"
Case>8
ActiveSheet.Range("A5").Value="Sobresaliente"
EndSelect
EndSub
LafuncinMsgBox.
Estafuncinmuestraunmensajeenuncuadrodedilogohastaqueelusuariopulseunbotn.La
funcindevuelveundatotipoIntegerenfuncindelbotnpulsadoporelusuario.Alahorade
invocarestfuncin,sepermitendiferentestiposdebotones.
SintxisdeMsgBox.
MsgBox(Mensaje,Botones,Ttulo,Archivodeayuda,contexto)
Mensaje:Obligatorio,eselmensajequesemuestradentrodelcuadrodedilogo.
Botones:Opcional.Esunnmeroounasumadenmerosoconstantes(veatablaValorespara
botoneseIconos),quesirveparamostrardeterminadosbotoneseiconosdentrodelcuadrode
dilogo.Siseomiteesteargumentoasumevalor0quecorrespondeaunnicoBotnOK.
Ttulo:Opcional.Eseltextoquesemostrarenlabarradelttulodelcuadrodedilogo.
ArchivodeAyuda:Opcional.Sihaasignadountextodeayudaalcuadrodedilogo,aqudebe
especificarelnombredelarchivodeayudadondeesteltexto.
Context:Opcional.Eselnmeroquesirveparaidentificareltextoaltemadeayuda
correspondientequeestarcontenidoenelarchivoespecificadoenelparmetroArchivode
Ayuda.
TablaparabotoneseiconosdelcuadroMsgBox.(Tablacopiadadelarchivo
deayudade
MicrosoftExcel).
Elprimergrupodevalores(0a5)describeelnmeroyeltipodelosbotonesmostradosenel
cuadrodedilogo;elsegundogrupo(16,32,48,64)describeelestilodelicono,eltercergrupo(0,
256,512)determinaelbotnpredeterminadoyelcuartogrupo(0,4096)determinalamodalidad
delcuadrodemensajes.Cuandosesumannmerosparaobtenerelvalorfinaldelargumento
buttons,seutilizasolamenteunnmerodecadagrupo.
NotaEstasconstanteslasespecificaVisualBasicforApplications.Portanto,elnombredelas
mismaspuedeutilizarseencualquierlugardelcdigoenvezdesusvaloresreales.
Losvaloresquepuededevolverlafuncinmsgboxenfuncindelbotnquepulseelusuariose
muestranenlatablasiguiente.
TabladevaloresquepuededevolverMsgBox.(TablacopiadadelarchivodeayudadeMicrosoft
VisualBasicparaaplicaciones).
EjemplosdeMsgBox.
SubTal()
.
.
'ElcuadroMuestralosbotonesSiyNoyuniconoenformadeinterrogante.Cuandosepulsa
'unbotn,elvalorlorecogelavariableX.Enestecasolosvaloresdevueltospuedenser6o7
'quecorrespondenrespectivamentealasconstantesVbYesyVbNo,observelainstruccinIfde
'despus.
X=MsgBox("DeseaContinuar",vbYesNo+vbQuestion,"Opcin",,)
'SehapulsadosobrebotnSi
IfX=vbYesThen
.....
Else'SehapulsadosobrebotnNo
.....
EndIf
.
.
EndSub
AlgunasvecespuedequeleinteresesimplementedesplegaruncuadroMsgBoxparamostrarun
mensajealusuariosinqueserequierarecogerningnvalor.Enestecasopuedeoptarporlaforma
siguiente:
MsgBoxPrompt:="Holausuaria,Haacabadoelproceso",Buttons:=VbOkOnLy_
Title:="Mensaje"
LoquenopuedehacerporqueVisualBasicdaraerroresponerlaprimeraformasinigualarlaa
ningunavariable.Porejemplo,laexpresinsiguienteesincorrecta:
MsgBox("Holausuario,Haacabadoelproceso",VbOkOnly,"Mensaje")
Seracorrectoponer:
X=MsgBox("Holausuario,Haacabadoelproceso",VbOkOnly,"Mensaje")
Enestecaso,aunqueXrecibaunvalor,luegonoseutilizaparanada,esdecirsimplementese
poneparaqueVisualBasicderror.
LainstruccinWith.
Suponemosquellegadoaestepuntoleparecerengorrosotenerquereferirsealosobjetos
siguiendotodaocasitodalajerarqua.Yahemosindicadoqueesmejorhacerlodeestamanera
porqueelprogramaganaenclaridadyeleganciay,consecuentemente,elprogramadorgana
tiempoalahoradehacermodificacionesoactualizaciones.LasentenciaWithleayudaratener
queescribirmenoscdigosinqueporestoelprogramapierdaenclaridad.Concretamenteesta
funcinsirveparaejecutarunaseriedeaccionessobreunmismoObjeto.
Susintaxiseslasiguiente:
WithObjeto
Instrucciones
EndWith
Repetiremoselejemplo13utilizandoestasentencia.ObservecomoconWithsehacereferenciaal
objetoActiveSheet.
Ejemplo19.
EntrarelNombre,lacantidadyelpreciodeunproductodesdeeltecladoyguardarlos
respectivamenteenA1,A2yA3.CalculareltotalyguardarloenA4.Sieltotalessuperiora10.000
oelnombredelproductoes"Patatas",pedirundescuento,calcularloeltotaldescuentoy
guardarloenA5,luegorestareldescuentodeltotalyguardarloenA6.
SubEjemplo_19()
DimProductoAsString
DimCantidadAsInteger
DimPrecioAsSingle
DimTotalAsSingle
DimDescuentoAsSingle
DimTotal_DescuentoAsSingle
Precio=0
Producto=InputBox("EntrarNombredelProducto","Entrar")
Precio=Val(InputBox("Entrarelprecio","Entrar"))
Precio=Val(InputBox("Entrarlacantidad","Entrar"))
Total=Precio*Cantidad
WithActiveSheet
.Range("A1").Value=Producto
.Range("A2").Value=Precio
.Range("A3").Value=Cantidad
.Range("A4").Value=Total
EndWith
'Sitotalmayorque10.000oelproductoesPatatas,aplicardescuento.
IfTotal>10000OrProducto="Patatas"Then
Descuento=Val(InputBox("EntrarDescuento","Entrar"))
Total_Descuento=Total*(Descuento/100)
Total=TotalTotal_Descuento
WithActiveSheet
.Range("A5").Value=Total_Descuento
.Range("A6").Value=Total
EndWith
EndIf
EndSub
EstructurasRepetitivas.
Estetipodeestructuraspermitenejecutarmsdeunavezunmismobloquedesentencias.
Ejemplo20.
Supongamosquetenemosquehacerunprogramaparaentrarlasnotasdeunaclasede5alumnos
queseguardaranrespectivamenteenlasceldasdeA1aA5delahojaactiva.Despushacerla
mediaqueseguardarenA6.Conlasestructurasvistashastaahora,podramoshacer:
SubEjemplo_20()
DimNotaAsInteger
DimMediaAsSingle
Media=0
Nota=Val(InputBox("Entrarla1Nota:","EntrarNota"))
ActiveSheet.Range("A1").Value=Nota
Media=Media+Nota
Nota=Val(InputBox("Entrarla1Nota:","EntrarNota"))
ActiveSheet.Range("A2").Value=Nota
Media=Media+Nota
Nota=Val(InputBox("Entrarla1Nota:","EntrarNota"))
ActiveSheet.Range("A3").Value=Nota
Media=Media+Nota
Nota=Val(InputBox("Entrarla1Nota:","EntrarNota"))
ActiveSheet.Range("A4").Value=Nota
Media=Media+Nota
Nota=Val(InputBox("Entrarla1Nota:","EntrarNota"))
ActiveSheet.Range("A5").Value=Nota
Media=Media+Nota
Media=Media/5
ActiveSheet.Range("A6").Value=Media
EndSub
Observequeesteprogramarepiteelsiguientebloquedesentencias,5veces.
Nota=Val(InputBox("Entrarla1Nota:","EntrarNota"))
ActiveSheet.Range("A5").Value=Nota
Media=Media+Nota
Paraevitarestatipoderepeticionesdecdigo,loslenguajesdeprogramacinincorporan
instruccionesquepermitenlarepeticindebloquesdecdigo.
EstructurarepetitivaPara(for).
Estaestructurasirvepararepetirlaejecucindeunasentenciaobloquedesentencias,unnmero
definidodeveces.Laestructuraeslasiguiente:
Paravar=Valor_InicialHastaValor_FinalPasoIncrementoHacer
Inicio
Sentencia1
Sentencia2
.
.
SentenciaN
Fin
VaresunavariablequelaprimeravezqueseentraenelbucleseigualaaValor_Inicial,las
sentenciasdelbucleseejecutanhastaqueVarllegaalValor_Final,cadavezqueseejecutanel
bloquedeinstruccionesVarseincrementasegnelvalordeIncremento.
EnVisualBasicparaExcellaestructuraParaseimplementaconlainstruccinFor...Next.
ForVarible=Valor_InicialToValor_FinalStepIncremento
Sentencia1
Sentencia2
.
.
SentenciaN
NextVariable
*Sielincrementoes1,nohacefaltaponerStep1.
Ejemplo21.
Entrar10valoresutilizandolafuncinInputBox,sumarlosyguardarelresultadoenlacasillaA1de
lahojaactiva.
SubEjemplo_21()
DimiAsInteger
DimTotalAsInteger
DimValorAsInteger
Fori=1To10
Valor=Val(InputBox("Entrarunvalor","Entrada"))
Total=Total+Valor
Nexti
ActiveCell.Range("A1").Value=Total
EndSub
Recorrercasillasdeunahojadeclculo.
UnaoperacinbastantehabitualcuandosetrabajaconExceleselrecorridoderangosdecasillas
parallenarlasconvalores,mirarsucontenido,etc.Lasestructurasrepetitivassonimprescindibles
pararecorrergruposdeceldasorangos.Vealossiguientesejemplosparaverejemplosde
utilizacindeestructurasrepetitivaspararecorrerrangosdecasillas,observelautilizacindelas
propiedadesCellsyOffset.
PropiedadCells.
Yaconoceestapropiedad,sirveparareferenciarunaceldaounrangodeceldassegn
coordenadasdefilaycolumna.
Ejemplo22
LlenarelrangodelascasillasA1..A5convaloresparesconsecutivosempezandoporel2.
SubEjemplo_22()
DimFilaAsInteger
DimiAsInteger
Fila=1
Fori=2To10Step2
ActiveSheet.Cells(Fila,1).Value=i
Fila=Fila+1
Nexti
EndSub
Ejemplo23.
Llenarunrangodefilas,empezandoporunacelda,quesedebeespecificardesdeteclado,conuna
seriede10valorescorrelativos(comenzandoporel1).
SubEjemplo_23()
DimCasilla_InicialAsString
DimiAsInteger
DimFilaAsInteger,ColumnaAsInteger
Casilla_Inicial=InputBox("IntroducirlacasillaInicial:","CasillaInicial")
ActiveSheet.Range(Casilla_Inicial).Activate
TomarelvalordefiladelaceldaactivasobrelavariableFila
Fila=ActiveCell.Row
TomarelvalordecolumnadelaceldaactivasobrelavariableFila
Columna=ActiveCell.Column
Fori=1To10
ActiveSheet.Cells(Fila,Columna).Value=i
Fila=Fila+1
Nexti
EndSub
EstructurarepetitivaDoWhile..Loop(HacerMientras).
Laestructurarepetitivaforseadaptaperfectamenteaaquellassituacionesenquesesabe
previamenteelnmerodevecesquesehaderepetirunproceso,entrarveintevalores,recorrer
cincuentaceldas,etc.
Perohayocasionesocasosenlosquenosesabepreviamenteelnmerodevecesquesedebe
repetirunproceso.
Porejemplo,supongaquehaderecorrerunrangodefilasenlosquenosesabecuantosvalores
habr(estoes,cuantasfilasllenashabr),enocasionespuedequehayanveinte,enocasiones
treinta,enocasionesninguna,etc.Paraestoscasoslaestructurafornoesadecuadaydeberemos
recurriralasentenciaDoWhile..Loopenalgunadesusformas.Estaestructurarepetitivaest
controladaporunaovariascondiciones,larepeticindelbloquedesentenciasdependerdesise
vacumpliendolacondicinocondiciones.
HacerMientras(secumplalacondicin)
Sentencia1
Sentencia2
.
.
SentenciaN
FinHacerMientras
EnVisualBasic
DoWhile(secumplalacondicin)
Sentencia1
Sentencia2
.
.
SentenciaN
Loop
**LosejemplosqueveremosacontinuacinsobrelainstruccinDoWhile..Loopseharnsobre
unabasededatos.
UnabasededatosenExcelessimplementeunrangodeceldasenquecadafilarepresentaun
registroycadacolumnauncampoderegistro,laprimerafilaeslaquedanombrealoscampos.
Paranuestrabasededatosutilizaremosloscampossiguientes,Nombre,Ciudad,Edad,Fecha.
PongaestosttulosenelrangoA1:D1delaHoja1(EnA1pongaNombre,enB1pongaCiudad,en
C1pongaEdadyenD1Fecha),observequelosdatosseempezarnaentrarapartirdeA2.
Ejemplo27.
Programaparaentrarregistrosenlabasededatos.CadacamposeentraconInputBox.El
programavapidiendodatosmientrasseentreunvalorenelInputBoxcorrespondientealnombre,
esdecircuandoalpreguntarelnombrenoseentreningnvalor,terminarlaejecucindel
bloqueencerradoentreDoWhile...Loop.
ObservelautilizacindelapropiedadOffsetparacolocarlosdatosenlasceldascorrespondientes.
SubEjemplo_27()
DimNombreAsString
DimCiudadAsString
DimEdadAsInteger
DimfechaAsDate
Activarhoja1
WorkSheets("Hoja1").Activate
ActivarcasillaA2
ActiveSheet.Range("A2").Activate
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
MientraslavariableNombreseadiferenteacadenavaca
DoWhileNombre<>""
Ciudad=InputBox("EntrelaCiudad:","Ciudad")
Edad=Val(InputBox("EntrelaEdad:","Edad"))
Fecha=Cdate(InputBox("EntralaFecha:","Fecha"))
Copiarlosdatosenlascasillascorrespondientes
WithActiveCell
.Value=Nombre
.Offset(0,1).Value=Ciudad
.Offset(0,2).Value=Edad
.Offset(0,3).Value=fecha
EndWith
Haceractivalaceldadelafilasiguientealaactual
ActiveCell.Offset(1,0).Activate
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
Loop
EndSub
Ejemplo28.
Presteespecialatencinaesteejemployaqueseguroqueelcdigoquevieneacontinuacinlo
utilizarenmuchasocasiones.
Antesquenadaobserveelejemploanterior,fjeseenquesiempreempezamosallenarelrangode
lahojaapartirdelaceldaA2,estotieneunanefastaconsecuencia,lasegundavezqueejecutela
macromachacarlosdatosdeA2:D2ysicontinuaejecutandomachacarlosdatosdelosrangos
siguientes.
Unasolucinseraobservarcualeslacasillavacasiguienteycambiarenlainstruccin
ActiveSheet.Range("A2").Activate,lareferenciaA2porlaquecorrespondealaprimeracasilla
vacadelacolumnaA.Elcdigoquelemostramosacontinuacinharestopornosotros,esdecir
recorrerunafiladeceldasapartirdeA1hastaencontrarunavacaydejaraestacomocelda
activaparaquelaentradadedatoscomienceapartirdeella.
SubEjemplo_28()
.
.
Activarhoja1
WorkSheets("Hoja1").Activate
ActivarcasillaA2
ActiveSheet.Range("A1").Activate
Mientraslaceldaactivanoestvaca
DoWhileNotIsEmpty(ActiveCell)
Haceractivalaceldasituadaunafilapordebajodelaactual
ActiveCell.Offset(1,0).Activate
Loop
.
.
EndSub
Ejemplo29.
Eslaunindelosdosprogramasanteriores.EsdecirhabrunbucleDoWhilequebuscarla
primeracasillavacadelabasededatosyotroparapedirlosvaloresdeloscamposhastaquese
pulseEnterenNombre.
SubEjemplo_28()
DimNombreAsString
DimCiudadAsString
DimEdadAsInteger
DimfechaAsDate
WorkSheets("Hoja1").Activate
ActiveSheet.Range("A1").Activate
BuscarlaprimeraceldavacadelacolumnaAyconvertirlaenactiva
DoWhileNotIsEmpty(ActiveCell)
ActiveCell.Offset(1,0).Activate
Loop
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
MientraslavariableNombreseadiferenteacadenavaca
DoWhileNombre<>""
Ciudad=InputBox("EntrelaCiudad:","Ciudad")
Edad=Val(InputBox("EntrelaEdad:","Edad"))
Fecha=Cdate(InputBox("EntralaFecha:","Fecha"))
WithActiveCell
.Value=Nombre
.Offset(0,1).Value=Ciudad
.Offset(0,2).Value=Edad
.Offset(0,3).value=fecha
EndWith
ActiveCell.Offset(1,0).Activate
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
Loop
EndSub
Cuandosetienenqueentrardesdeeltecladoconjuntosdevalores,algunosprogramadoresy
usuariosprefierenlafrmuladequeelprogramapreguntesisedeseanentrarmsdatos,latpica
preguntaDeseaIntroducirmsdatos?,sielusuariocontestaS,elprogramavuelveaejecutarlas
instruccionescorrespondientesalaentradadedatos,sicontestaquenosefinalizaelproceso,
observecomoquedaranuestrobucledeentradadedatosconestesistema.
Mas_datos=vbYes
DoWhileMas_Datos=vbYes
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
Ciudad=InputBox("EntrelaCiudad:","Ciudad")
Edad=Val(InputBox("EntrelaEdad:","Edad"))
Fecha=Cdate(InputBox("EntralaFecha:","Fecha"))
WithActiveCell
.Value=Nombre
.Offset(0,1).Value=Ciudad
.Offset(0,2).Value=Edad
.Offset(0,3).value=fecha
EndWith
ActiveCell.Offset(1,0).Activate
Preguntaralusuariosideseaentrarotroregistro.
Mas_datos=MsgBox("Otroregistro?",vbYesNo+vbQuestion,"Entradadedatos")
Loop
**ObservequeesnecesarialalneaanterioralbucleMas_datos=vbYes,paraquecuandose
evalelacondicinporvezprimeraestasecumplayseejecutenlassentenciasdedentrodel
bucle,Mas_datosesunavariabledetipoInteger.Vealaseccinsiguientedondeseestudiauna
variantedelaestructuraDoWhilequeesmsadecuadaparaestetipodesituaciones.
EstructuraDo..LoopWhile.
Elfuncionamientodeestaestructurarepetitivaessimilaralaanteriorsalvoquelacondicinse
evalaalfinal,lainmediataconsecuenciadeestoesquelasinstruccionesdelcuerpodelbuclese
ejecutaranalmenosunavez.Observequeparanuestraestructuradeentradadedatosvistaenel
ltimoapartadodelaseccinanteriorestaestructuraesmsconveniente,almenosms
elegante,sivamosaentrardatos,almenosunoentraremos,portantolasinstruccionesdelcuerpo
delbuclesedebenejecutaralmenosunavez,luegoyadecidiremossiserepitenono.
Do
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
Ciudad=InputBox("EntrelaCiudad:","Ciudad")
Edad=Val(InputBox("EntrelaEdad:","Edad"))
Fecha=Cdate(InputBox("EntralaFecha:","Fecha"))
WithActiveCell
.Value=Nombre
.Offset(0,1).Value=Ciudad
.Offset(0,2).Value=Edad
.Offset(0,3).value=fecha
EndWith
ActiveCell.Offset(1,0).Activate
Mas_datos=MsgBox("Otroregistro?",vbYesNo+vbQuestion,"Entradadedatos")
MientrasMas_Datos=vbYes
LoopWhileMas_Datos=vbYes
ObservequeenestecasonoesnecesariolalneaMas_Datos=vbYesantesdeDoparaforzarla
entradaenelbucleyaquelacondicinvaalfinal.
EstructuraDo..LoopUntil(Hacer..Hastaquesecumplalacondicin).
Esotraestructuraqueevalalacondicinalfinalobservequelainterpretacinesdistintayaque
elbuclesevarepitiendoHASTAquesecumplelacondicin,noMIENTRASsecumplelacondicin.
Culdelosdosutilizar,pues,nosesorprenda,laqueentiendamejorolegustems.
Laentradadedatosconestebuclequedara:
Do
Nombre=InputBox("EntreelNombre(ReturnparaTerminar):","Nombre")
Ciudad=InputBox("EntrelaCiudad:","Ciudad")
Edad=Val(InputBox("EntrelaEdad:","Edad")
Fecha=Cdate("InputBox("EntralaFecha:","Fecha")
WithActiveCell
.Value=Nombre
.Offset(0,1).Value=Ciudad
.Offset(0,2).Value=Edad
.Offset(0,3).value=fecha
EndWith
ActiveCell.Offset(1,0).Activate
Mas_datos=MsgBox("Otroregistro?",vbYesNo+vbQuestion,"Entradadedatos")
HastaqueMas_DatosseaigualavbNo
LoopUntilMas_Datos=vbNo
EstructuraForEach.
Estebucleseutilizabsicamenteparaejecutarungrupodesentenciasconloselementosdeuna
coleccinunamatriz(prontoveremoslosquees).Recuerdequeunacoleccinesunconjuntode
objetos,hojas,rangos,etc.Veaelejemplosiguientequeseutilizaparacambiarlosnombresdelas
hojasdeunlibrodetrabajo.
Ejemplo29.
Programaquepreguntaelnombreparacadahojadeunlibrodetrabajo,sinoseponenombreala
hoja,quedaelquetiene.
SubEjemplo_29()
DimNuevo_NombreAsString
DimHojaAsWorkSheet
ParacadahojadelconjuntoWorkSheets
ForEachHojaInWorkSheets
Nuevo_Nombre=InputBox("NombredelaHoja:"&Hoja.Name,"NombrarHojas")
IfNueva_Nombre<>""Then
Hoja.Name=Nuevo_nombre
Endif
Next
EndSub
**HojavareferenciandocadaunadelashojasdelconjuntoWorkSheetsacadapasodebucle.
Ejemplo30.
EntrarvaloresparalasceldasdelrangoA1:B10delahojaActiva.
SubEjemplo_30()
DimRAsRange
ParacadaceldadelrangoA1:B10delahojaactiva
ForEachRinActiveSheet.Range("A1:B10")
R.Value=InputBox("Entrarvalorparalacelda"&R.Address,"Entradadevalores")
Next
EndSub
**ObservequesehadeclaradounavariabletipoRange,estetipodedatos,comopuedeimaginar
yhavistoenelejemplosirveparaguardarRangosdeunaomscasillas,estasvariablespueden
luegoutilizartodaslaspropiedadesymtodospropiosdelosObjetosRange.Tengaencuentaque
laasignacindelasvaraiblesquesirvenparaguardaroreferenciarobjetos(Range,WorkSheet,
etc.)debeninicializarsemuchasvecesatravsdelainstruccinSET,estoseestudiarenotro
captulo.
InsertarfuncionesdeMicrosoftExceldesdeVisualBasic.
Copieelsiguienteprocedimientoyejectelo.Esunprocedimientoquesencillamentevapidiendo
nmerosylosvacolocandoenlasceldasdelacolumnaApartirdeA1,alfinalcolocalafuncin
=SUMAparasumarlosvaloresintroducidosylafuncin=PROMEDIOparahacerelpromediode
losmismosvalores.
SubSumar()
DimValorAsInteger
DimCasilla_InicialAsString
DimCasilla_FinalAsString
'HaceractivalacasillaA1delahojaactiva
ActiveSheet.Range("A1").Activate
Do
'Entrarunvaloryconvertirloanumrico
Valor=Val(InputBox("Entrarunvalor","Entrada"))
'Sielvaloresdistintode0
IfValor<>0Then
'Guardarelvalorenlacasillaactiva
ActiveCell.Value=Valor
'Haceractivalacasilladelafilasiguiente
ActiveCell.Offset(1,0).Activate
EndIf
LoopUntilValor=0
'Establecerlacasillainicialdelrangoasumar
Casilla_Inicial="A1"
'Establecerlacasillafinaldelrangoasumar.
'Cogerladireccindelacasillaactiva,laltima
Casilla_Final=ActiveCell.Address
ActiveCell.Offset(1,0).Activate
'PonerenlacasillaactivalafuncinSUMA
ActiveCell.Formula="=Suma("&Casilla_Inicial&":"&Casilla_Final&")"
ActiveCell.Offset(1,0).Activate
'Ponerenlacasillaactivalafuncinpromedio
ActiveCell.Formula="=Promedio("&Casilla_Inicial&":"&Casilla_Final&")"
EndSub
Unavezhayaejecutadolamacro,observequeenlasceldasdondesehancolocado
respectivamentelasfunciones=SUMA,=PROMEDIOapareceNOMBRE?(esposiblequeaparezca
####,enesecasoamplelacolumna),estosignificaqueExcelnoreconoceelnombredela
funcin,quenoexiste.Sinembargo,estasfuncionessiexistenyfuncionanperfectamentecuando
setecleandirectamentesobrelahojadeclculo,sepreguntarelporqucuandosecolocan
desdeunamacronofuncionan.PuesresultaqueparaquecualquierfuncindeExcelinsertada
desdeunamacroNOdeerrordebeponerseconsunombreeningls,latraduccinsehaceluego
deformaautomtica.Esdecirenlamacrodebeponerlaeninglsyluegocuandoestaseinserte
enlahojaaparecerconsunomenclaturaenelidiomaquecorresponda.
Modifiqueelprocedimientodelejemployenlugardeponer
ActiveCell.Formula="=Suma("&Casilla_Inicial&":"&Casilla_Final&")"
Ponga
ActiveCell.Formula="=Sum("&Casilla_Inicial&":"&Casilla_Final&")"
Yahora,enlugarde
ActiveCell.Formula="=Promedio("&Casilla_Inicial&":"&Casilla_Final&")"
Ponga
ActiveCell.Formula="=Average("&Casilla_Inicial&":"&Casilla_Final&")"
Ejecutelamacroycompruebequeahoratodofuncionacorrectamente.Observequeenlahoja,
lasfuncionessehaninsertadoconsunombrecorrectosegnelidioma,esdecirSUMAy
PROMEDIO.
DeestaformadamosporterminadoelmdulodeMacros,quesimplementeesunaintroduccin
altema.
Elestudiantepuededesarrollarsemuchoms,estemanualpretenderealizarunbosquejodel
tema,einiciaralalumnoalaprogramacinenlenguajeVBA.
Repartidos
Prcticos
ANLISIS
DE
INFORMACIN
EJERCICIOS MDULO: Anlisis de Informacin
Ejercicio 1
Dada la siguiente tabla de datos:
Ao Perodo Ventas
2004 1 15458
2004 2 5487
2004 3 6587
2004 4 1587
2003 1 15874
2003 2 4358
2003 3 5743
2003 4 2543
2002 1 18045
2002 2 7845
2002 3 6784
2002 4 1254
2001 1 10548
2001 2 4587
2001 3 6879
2001 4 3597
Se pide:
Mediante Tablas Dinmicas:
1. Obtener total de ventas por ao.
2. Obtener total de ventas por ao y dentro de cada ao, por perodo.
3. Obtener promedio de ventas por ao y por perodo.
EJERCICICIO 2
Dada la siguiente base de datos:
Ao Perodo Tipo de cliente Ventas
2004 1 Minorista 12924
2004 1 Mayorista 2534
2004 2 Minorista 4462
2004 2 Mayorista 1025
2004 3 Minorista 5383
2004 3 Mayorista 1204
2004 4 Minorista 745
2003 4 Mayorista 842
2003 1 Minorista 13520
2003 1 Mayorista 2354
2003 2 Minorista 3311
2003 2 Mayorista 1047
2003 3 Minorista 4708
2003 3 Mayorista 1035
2003 4 Minorista 1701
2002 4 Mayorista 842
2002 1 Minorista 13544
2002 1 Mayorista 4501
2002 2 Minorista 6589
2002 2 Mayorista 1256
2002 3 Minorista 5944
2002 3 Mayorista 840
2002 4 Minorista 929
2001 4 Mayorista 325
2001 1 Minorista 7000
2001 1 Mayorista 3548
2001 2 Minorista 3533
2001 2 Mayorista 1054
2001 3 Minorista 5426
2001 3 Mayorista 1453
Se pide:
Mediante Tablas Dinmicas:
1. Obtener total de ventas por perodo, y por ao. Dar la posibilidad de filtrar por
cliente dicha informacin.
2. Obtener grfico dinmico de dicha informacin.
3. Visualizar mediante tabla dinmica, porcentaje sobre el total de ventas de cada
perodo y de cada ao.
EJERCICIO 3
DADA LA SIGUIENTE BASE DE DATOS:
ALUMNO SUCURSAL DOCENTE CLARIDAD
AL
EXPLICAR
BUENA
DISPOSICIN
BUEN USO
DEL
PIZARRN
CONCEPTO
GENERAL
DEL
DOCENTE
3.015.665-5 BUCEO Luis 2 4 2 2
1.967.222-3 PARQUE Pedro 5 5 4 5
2.123.334-1 BUCEO Pedro 4 4 5 4
1.944.314-6 RIVERA Gabriel 1 2 3 2
3.054.365-4 BUCEO Luis 4 3 3 3
1.665.145-0 RIVERA Gabriel 3 3 4 4
1.945.328-6 PARQUE Gabriel 5 4 4 4
3.412.331-0 RIVERA Luis 2 1 2 2
4.036.365-6 RIVERA Luis 3 2 2 2
4.365.441-8 BUCEO Luis 1 1 2 1
2.966.356-4 BUCEO Pedro 5 4 4 4
1.665.324-3 PARQUE Gabriel 4 5 4 4
1.689.365-0 PARQUE Gabriel 3 4 4 3
3.554.321-4 BUCEO Luis 2 1 1 1
OBTENER:
1. NOTAS GENERALES de cada DOCENTE y dividido por cada SUCURSAL.
2. Cantidad de encuestas tomadas de cada docente.
3. Mximo Concepto General alcanzado por un docente, detallando cual es el
docente y en qu sucursal obtuvo dicha nota.
4. Cantidad de encuestas que se realizaron en cada sucursal.
5. Graficar notas de cada pregunta obtenida por cada docente, y con la posibilidad
de desplegar este grfico por sucursal.
EJERCICIO 4
IMPORTAR DESDE LA BASE DE DATOS NEPTUNO (C:\Archivos de Programa\Microsoft
Office\Office10\Samples) las tablas de Pedidos y de Clientes.
OBTENER:
1. CANTIDAD de pedidos que se tomaron por pas.
2. Cantidad de pedidos tomados por empleado y por ciudad del destinatario.
3. Generar un campo calculado para saber cuntos pedidos se realizaran por pas
si la empresa pensara incrementar su cantidad de pedidos en un 30 %.
4. Visualizar las unidades en existencia de cada producto que nos trae cada
proveedor.
5. Promedio de precios unitarios de los productos de cada proveedor.
6. Graficar la cantidad de pedidos que se le hayan entregado al cliente ALFKI y
ANTON en las diferentes formas de envio.
EJERCICIO 5
Importar desde MS Access, desde la base de datos NEPTUNO (se encuentra en
C:\Archivos de Programas \ Microsoft Office\Office10\Samples) las tablas de
productos y categoras.
Obtener mediante Tablas Dinmicas:
1. Cantidad de productos por categora
2. Promedio de precios unitarios por categora
3. Productos por categora, y unidades en existencia
4. Calcular mediante un campo calculado el IVA de todos los precios unitarios, el
importe de cada precio con IVA incluido
5. Graficar cantidad de proveedores que existen por categora de productos
6. Graficar en forma de torta los precios unitarios de los productos que
pertenezcan a la categora Bebidas.
EJERCICIO 6 (Datos Tabla)
Se presenta planilla con datos de un artculo que nuestra empresa comercializa y se
nos solicita estudiemos la sensibilidad del precio de venta frente a dos variables: el
margen de ganancia y la cantidad de artculos a producir.
Esto significa que analizaremos cul sera el valor final para distintas combinaciones de
mrgenes y cantidades.
Para hacerlo crearemos una tabla de datos que resuma esta informacin.
Cantidad a producir 500
Costo por unidad $ 8,50
Costos fijos $ 1.200,00
Costo total $ 5.450,00
Margen de ganancia 30%
Ventas a realizar $ 7.085,00
Valor unitario $ 14,17
$
14,17 300 400 500 600
15%
20%
25%
30%
35%
40%
EJERCICIO 7 (Filtros)
Copie esta tabla en cuatro hojas distintas
Distribuidor Zona
Ventas
2003
Ventas
2004
G Fuentes Zona Este 1 100000 142000
G Fuentes Zona Este 2 230000 225000
G Fuentes Zona Este 3 59000 72000
G Fuentes Zona Este 4 186000 190000
C Rodrguez Zona Norte 1 310000 302000
C Rodrguez Zona Norte 2 98000 101000
C Rodrguez Zona Norte 3 77000 75000
C Rodrguez Zona Norte 4 160000 190000
F Prez Zona Oeste 1 320000 350000
F Prez Zona Oeste 2 190000 200000
F Prez Zona Oeste 3 132000 106000
F Prez Zona Oeste 4 148000 140000
M Carminati Zona Oeste 1 95000 52000
M Carminati Zona Oeste 2 74000 96000
M Carminati Zona Oeste 3 86000 105500
M Carminati Zona Oeste 4 110000 132000
Se pide:
Nota los se pide 1 a 3 realcelos sobre la misma base de datos.
1. Ventas del 2004 mayores a 150000 pesos.
2. Ventas menores a 60000 o mayores a 200000 pesos.
3. Ventas entre los 150000 y los 200000 pesos de aquellos distribuidores cuyo
nombre comience con la letra C.
4. Genere una nueva tabla que muestre aquellos registros en los que las ventas
del 2003 fueron mayores a las ventas del 2004.
EJERCICIOS
GRFICOS
PERSONALIZADOS
FORMULARIOS
Ejercicios Mdulo de Grficos Personalizados y Formularios.
Ejercicio 1
Dada la siguiente tabla:
Paises
Aos
Ventas Anuales
2004 2005 2006
Australia 1680000 1230000 2000000
Argentina 1200000 2250000 2100000
Brasil 1800000 3500000 3200000
EEUU 2000000 3500000 3400000
Nueva
Zelanda 1900000 2500000 3000000
Uruguay 600000 1800000 1750000
Mexico 1200000 1200000 1600000
Paraguay 750000 900000 1240000
1. Generar un grfico de columnas con las ventas de cada pas segn los aos en
los que se hayan producido. Generar un color de fondo del grfico basado en
una textura. Generar un efecto de relleno con degradado en el rea de trazado.
Desplegar la leyenda en la parte superior del grfico. Aplicarle efectos de
degradado a cada una de las series.
2. Generar un grfico de columnas con las ventas de cada ao para los diferentes
pases. Aplicar en cada serie el efecto de colocar la imagen de la bandera
correspondiente a cada pas como fondo de cada columna correspondiente a
dicho pas. Aplicar en el fondo del grfico un efecto con degradado a dos
colores.
3. Generar un grfico de torta donde se represente las ventas del ao 2004 a cada
pas. Mostrar dentro del grfico el pas al que corresponde cada rea y el
porcentaje correspondiente del total. Aplicarle un efecto 3D con un efecto de
elevacin.
Ejercicio 2
Dada la siguiente tabla:
Edad
Poblacion
Grupo de edades
0 a 3 4 a 5 6 a 14 15 a 19 20 a 24 25 a 29 30 a 49 50 a 64 65 a 79 80 o ms
MALVN 990 530 2.756 1.969 1.916 1.973 7.877 5.093 4.112 1.418
Hombres 487 268 1.387 1.029 947 920 3.672 2.177 1.631 438
Mujeres 503 262 1.369 940 969 1.053 4.205 2.916 2.481 980
Generar un grfico de tipo pirmide poblacional. Aplicarle a dicho grfico todos
los retoques correspondientes para su correcta visualizacin.
Grabar este grafico como tipo personalizado para poder utilizarlo a futuro.
Aplicarle efecto de degradado a las series, y un efecto de textura tanto al rea
de trazado como al rea de grfico.
Ejercicio 3
Tareas
Fecha
Inicio
Fecha
Fin
Das
Corridos
Compra de Terrenos 10/02/2006 20/02/2006 10
Desmonte 21/02/2006 10/03/2006 17
Confeccin de Plano 08/03/2006 31/03/2006 23
Compra de
Materiales 01/04/2006 18/04/2006 17
Construccin 20/04/2006 24/08/2006 126
Pintura 25/08/2006 31/08/2006 6
Revisin 01/09/2006 15/09/2006 14
Entrega 18/09/2006 19/09/2006 1
Generar un grfico representando un diagrama de Gantt.
Aplicarle efecto de relleno con degradado a un color al rea de grfico y rea de
trazado.
Generar un diagrama de Gantt aplicando formato condicional con la misma tabla.
Ejercicio 4
Dada la siguiente tabla:
Hora Produccion
00:43 785
02:37 662
05:21 546
05:35 356
07:20 447
07:47 611
10:22 310
10:33 564
11:18 583
Generar un grfico de dispersin (XY) con lineas suavizadas para representar la
produccin en el transcurso de las horas.
Adaptar el eje de valores (x) para que represente una escala de horas que vaya de las
00:00 hs a las 12:00 pasando en valores de a 1 hora.
Ejercicio 5
Aos
Pais
Exp
2000
Exp
2001
Exp
2002
Exp
2003
Exp
2004
Exp
2005
Argentina 2293660 2657911 1913896 1231816 5000000 1319296
Brasil 3863727 2616891 2210725 4650539 4000000 3951452
Uruguay 1125873 1074146 1021074 1449403 1057386 1049902
Paraguay 1028543 1134743 1166809 1143472 1195914 1093311
Peru 877385 947571 1019173 1015051 1071022 754180
Boli via 1379161 1405565 1530906 1670229 1535585 1144279
Venezuela 2275591 3113542 3706347 4245991 1819779 1971444
Ecuador 1907308 1443472 1815317 961641 1905881 1949043
Colombia 2511773 2085069 2073359 2006935 2266457 2273786
Minimo 877385 947571 1019173 961641 1057386 754180
Maximo 3863727 3113542 3706347 4650539 5000000 3951452
Dada la tabla expuesta:
Utilizar lista desplegable, cuadro combinado, barra desplazamiento para lograr
graficar en lineas las exportaciones de cada pais por ao. La idea es que
mediante un cuadro combinado yo pueda elegir un pais y visualice el grafico de
las exportacion de ese pais (a travs de los aos). Lo mismo con una lista
desplegable y tambin con barra desplazamiento.
Ejercicio 6
Dic-05 PROC1 PROC2 PROC3 PROC4 PROC5 PROC6
Dias min M max Valores Valores Valores Valores Valores Valores
1 55 60 65 56 55 57 55 58 50
3 55 60 65 62 60 65 60 60 60
5 55 60 65 65 63 63 63 63 63
7 55 60 65 55 50 50 50 50 50
9 55 60 65 56 56 56 56 56 56
11 55 60 65 64 64 64 64 64 64
13 55 60 65 62 62 62 62 62 62
15 55 60 65 60 67 67 67 67 67
17 55 60 65 56 52 52 52 52 52
19 55 60 65 59 60 60 60 60 60
21 55 60 65 58 62 62 62 62 62
23 55 60 65 56 53 53 53 53 53
25 55 60 65 60 50 50 50 50 50
27 55 60 65 58 55 55 55 55 55
29 55 60 65 55 60 60 60 60 60
31 55 60 65 57 64 65 60 55 53
Dada la siguiente tabla, generar un grfico de lneas que represente cada uno de los
procesos. Dichos procesos se seleccionaran con un cuadro de lista, y control de
nmeros.
EJERCICIOS
MACROS
EN
EXCEL
Mdulo: MACROS EN EXCEL
Ejercicio 1
Generar un macro que pregunte al usuario datos de empleados tales como:
Nombre y Apellido
Direccin
Ciudad (donde reside)
o Si la ciudad es Montevideo mostrar en la siguiente columna: CAPITAL
o Si la ciudad es diferente a Montevideo mostrar: INTERIOR
Sueldo nominal
Fecha de ingreso en la empresa
o Si el empleado tiene ms de 5 aos de antigedad se le pagar un
incentivo de antigedad de un 2 % de su sueldo nominal.
o Si el empleado tiene ms de 7 aos de antigedad se le pagar un
incentivo de antigedad de un 4 % de su sueldo nominal.
o Si el empleado tiene ms de 9 aos de antigedad se le pagar un
incentivo de antigedad de un 6 % de su sueldo nominal.
o Si el empleado tiene ms de 10 aos de antigedad se le pagar un
incentivo de antigedad de un 8 % de su sueldo nominal.
o Si el empleado tiene menos de 5 aos de antigedad no se le pagar
dicho incentivo.
(Se compara siempre con la fecha actual = funcin DATE)
Mostrar en una columna el incentivo por antigedad que le corresponde al empleado.
Calcular los aportes del empleado sabiendo que, sumando Sueldo Nominal y el
incentivo de antigedad se utilizarn las siguientes escalas:
Aportes:
18 % si gana menos de 3 SMN
20 % si gana menos de 6 SMN
24 % si gana menos de 10 SMN
26 % si gana menos de 12 SMN
Tomar en cuenta que el SMN es de $ 1242.
Mostrar el aporte de cada empleado en una columna.
Mostrar el lquido de cada empleado sumando Sueldo Nominal + Antigedad Aportes.
Repaso de inputbox, msgbox, bucles, uso de variables.
Ejercicio 2
Pedir al usuario nombre, precio unitario y descripcin de artculos. Volcar estos datos
en la planilla.
A medida que el usuario cargue cada registro ir acumulando el total de precios, con la
finalidad de calcular el promedio de precios.
Dejar que el usuario corte el pedido de artculos cuando lo desee.
En la ltima instancia, con el promedio de precios calculado, marcar el promedio de
rojo si este es mayor a 500, marcarlo de verde si es mayor a 1000, y marcarlo de azul
si es mayor a 2000.
Repaso de inputbox, bucles, msgbox. Aplicar offset (o mostrar la aplicacin del mismo
en el ejercicio prctico).
Ejercicio 3
Generar un macro que le pida al usuario datos de una persona:
Nombre, Apellido, y Nmero de Credencial (slo nmero)
Basndose en la planilla que se plantea a continuacin se deber ir cargando
automticamente con los datos de cada persona y la direccin donde le tocar
sufragar.
N Circuito Desde Hasta Direccin
113 1000 5000 Italia 6255
502 5001 8000 Rod 2411
682 8001 12000 Chan 1654
691 12001 18000 Canelones 1698
La planilla que se ir cargando tendr el siguiente formato:
Nombre Apellido Credencial Direccin
El estudiante deber ejecutar mediante un botn en la planilla y el usuario deber
tener la flexibilidad de cargar tantos registros como desee, o sea por cada registro que
vaya cargando se le preguntar si se desea continuar.
Sealar de rojo solo los registros que el usuario haya ingresado y que tengan como
lugar de votacin la siguiente direccin: CANELONES 1698
Cuando el usuario decida terminar, se deber mostrar la vista preliminar de la planilla.
Ejercicio 4
Generar una macro que guarde en una base de datos la siguiente informacin:
Nombre de Articulo
Lote del Articulo
Rubro:
Deber figurar Informtica solamente si se trata de un insumo de
computacin
Deber figurar Otros si no se trata de un insumo de computacin
Precio unitario de Costo
Fecha de Compra de dicho articulo
En funcin de esta informacin deber calcularse el Precio de Venta Mayorista y
Minorista.
El Precio Mayorista se calcula como un 7% adicional sobre el Precio de costo, salvo
para los artculos comprados hace mas de 3 aos que se calcula un adicional de 5%
sobre Precio de costo.
El Precio Minorista de cada artculo se calcula como:
15% sobre Precio de costo para artculos de Informtica con antigedad
menor a 1 ao
12% sobre Precio de costo para artculos de Informtica con antigedad
mayor o igual a 1 ao
17% para el resto de los artculos
Tanto el Precio mayorista como minorista debern incluirse en 2 nuevas columnas
destinado a ello.
La funcionalidad de dicha macro deber incluir:
En la primer fila de la Base de datos, los ttulos de cada variable.
La posibilidad de utilizar dicha macro en repetidas ocasiones y que no se
eliminen antiguos registros
La posibilidad de elegir a continuacin de cada registro estas 3 opciones:
Ingresar un nuevo registr a continuacin.
Eliminar el ltimo registro en caso de equivocacin.
Dejar de ingresar nuevos registros.
Ejercicio 5
Utilizar el asistente de Microsoft Office en la aplicacin del ejercicio 4.
COMPENDIO
PRUEBAS
FUNCIONES
AVANZADAS
COMPENDIODEPRUEBASYEXAMENESDEPRCTICA
FuncionesAvanzadas
PruebaFinal
Ejercicio1
Fecha Vendedor Tipo de Producto Sucursal Tipo Operacin Forma de Pago Importe
01/01/2006 German Alimentos Central Venta Contado $U 1.556
03/01/2006 Luis Informatica Central Devolucion Contado $U 2.294
05/01/2006 Marcelo Electrodomesticos Filial2 Venta Diferido 3 pagos $U 1.966
09/01/2006 Esteban Alimentos Filial2 Venta Diferido 3 pagos $U 2.843
11/01/2006 Andrea Informatica Filial 1 Venta Contado $U 5.461
11/01/2006 Luisa Electrodomesticos Filial2 Venta Contado $U 5.685
11/01/2006 Daniela Alimentos Filial2 Devolucion Contado $U 2.971
11/01/2006 German Informatica Central Venta Contado $U 4.101
12/01/2006 Luis Electrodomesticos Central Devolucion Contado $U 4.847
12/01/2006 Marcelo Alimentos Filial2 Venta Diferido 3 pagos $U 5.030
13/01/2006 Luisa Informatica Filial2 Venta Diferido 6 pagos $U 3.296
16/01/2006 Daniela Alimentos Filial2 Devolucion Contado $U 1.656
19/01/2006 German Informatica Central Venta Diferido 3 pagos $U 4.800
20/01/2006 Luis Electrodomesticos Central Devolucion Contado $U 2.913
23/01/2006 Marcelo Alimentos Filial2 Venta Contado $U 5.526
25/01/2006 Luis Informatica Central Venta Diferido 6 pagos $U 3.969
27/01/2006 Marcelo Alimentos Filial2 Venta Contado $U 4.760
27/01/2006 Esteban Informatica Filial2 Venta Contado $U 1.492
27/01/2006 Andrea Alimentos Filial 1 Devolucion Contado $U 5.282
31/01/2006 Luisa Informatica Filial2 Venta Diferido 3 pagos $U 2.189
31/01/2006 Daniela Alimentos Filial2 Venta Diferido 6 pagos $U 4.042
03/02/2006 Daniela Informatica Filial2 Venta Contado $U 5.176
03/02/2006 German Electrodomesticos Central Venta Contado $U 1.528
07/02/2006 Luis Alimentos Central Devolucion Diferido 3 pagos $U 1.846
07/02/2006 Esteban Informatica Filial2 Venta Diferido 6 pagos $U 2.707
07/02/2006 Andrea Electrodomesticos Filial 1 Venta Contado $U 4.754
10/02/2006 Luisa Alimentos Filial2 Venta Diferido 3 pagos $U 4.936
15/02/2006 Daniela Informatica Filial2 Devolucion Contado $U 1.911
20/02/2006 German Electrodomesticos Central Devolucion Contado $U 1.666
Apartirdelasiguientebasededatos,referidaaventasdenuestraEmpresa,sepide:
1.
1.1) Realizarlasumadelasventasefectuadasalcontado,enlasucursalCentral.
1.2) CalculeelPromediodelasventasrealizadasporelvendedorMarcelo.
1.3) CalculelaMximadevolucinefectuadadentrodeltipodeproductoAlimentos.
1.4) Realizarlasumadetodaslasventasquenoseefectuaronalcontado.
2. Apliqueunformatocondicionalalabasededatosconlasiguientescaractersticas:
2.1) Losregistrosquecorrespondenalasucursalcentral,colordefondonaranja.
2.2) LosregistrosquecorrespondenalasucursalFilial1,colordefondoceleste.
2.3) LosregistrosquecorrespondenalasucursalFilial2,colordefondoamarillo.
Ejercicio2
ApartirdelassiguientesbasesdedatosreferidasaClientesyVentas,sesolicitalosiguiente:
Genereuncuadrodeconsultaconlassiguientescaractersticas:
Cedula:
Nombre:
Apellido:
Direccion:
Suma Ventas:
Cuenta de Devoluciones:
ElnumerodeCeduladeberestarvalidadodeacuerdoalosclientes.
ApartirdelaCedulasedeberncalcularautomticamenteelrestodelosdatos.
ApartirdelasiguientebasedeDatosreferidaaentregadeproductossesolicita:
1. CalculelaFechadelaEntregadeacuerdoalossiguientescriterios:
1.1. AtodoslosclientesMayoristasselesentreganlosproductosalos3dashbilesdela
fechadepedido.
1.2. AlosclientesMinoristasselesentregaalos10dashbiles,salvoparalaempresa
vendedoraDRRCorp,queseentreganalos5dashbiles.
2. Apliqueunformatocondicionalconlassiguientescaractersticas:
2.1. FondoazulparalosregistroscorrespondientesaPC(todoslosmodelos).
2.2. Fondorojoparaelrestodelosregistros.
Ejercicio4
Secuentaconlasiguientebasededatosreferidaalashorastrabajadasdelosdiferentes
empleadosdelaempresa,con109registros.
Enbaseadichainformacinsesolicita:
1. Genereenunanuevacolumnaelclculodelashorastrabajadasdecadaempleadoparacada
registro.
2. Calculeenunanuevacolumnaelpagoporhoraacadatrabajadordeacuerdoalasiguiente
regla:
2.1. SipertenecealsectorVentas;20eurosporhora.
2.2. SipertenecealsectorCompras;18eurosporhora.
2.3. SipertenecealsectorContable;15eurosporhora.
2.4. SipertenecealsectorAdministrativo;12eurosporhora.
2.5. SipertenecealsectorProduccin;8eurosporhora.
3. Calculeenunanuevacolumnaelpagodelsalariototalparacadada.
4. Genereunsolocuadrodeconsultaasueleccinentrelassiguientesopciones:
EnamboscasoslosdeEmpleadooSectoryeldatodefechaserintroducidoporelusuariodela
consulta,ysedebercalcularautomticamenteel3dato.
Sieligeelprimercuadrodeconsultasedebercalcularlossalariostotalespagadosadicho
Empleado,hastalafechaquefigureenelcuadro.LaceldadondeseintroduzcaelEmpleado
debervalidarse.
Sieligeelsegundocuadrodeconsultasedebercalcularlossalariostotalespagadosadicho
Sector,hastalafechaquefigureenelcuadro.LaceldadondeseintroduzcaelSectordeber
validarse.
Sector Nombre Apellido Fecha Hora Ingreso Hora Egreso Horas Trabajadas Pago/Hora Salario/dia
Contable Raul Abal 01/02/2006 11:11:22 5:14:53
Produccion Lucila Vazquez 01/02/2006 7:47:29 6:23:34
Compras Anibal Bass 02/02/2006 8:34:49 16:08:55
Compras German Furia 03/02/2006 23:51:50 7:53:06
Contable Ana Monje 03/02/2006 0:36:05 4:10:01
Administrativo Eliana Boss 04/02/2006 0:54:53 14:32:46
Produccion Andrea Guzman 04/02/2006 8:45:58 0:57:23
Administrativo Luis Torres 05/02/2006 22:45:28 7:41:47
Produccion Walter Lopez 05/02/2006 12:05:06 23:17:14
Administrativo Hugo Prato 06/02/2006 20:29:17 15:53:44
Contable Danila Estevanez 06/02/2006 7:25:26 3:32:26
Produccion J ulio Verdi 07/02/2006 4:19:15 12:20:00
Ventas J uan Balverde 07/02/2006 0:00:45 5:30:01
Produccion Esteban Samir 07/02/2006 1:18:58 2:43:36
Administrativo Fernando Luisi 08/02/2006 19:14:38 3:32:01
Produccion Milton Suarez 09/02/2006 18:06:46 3:47:05
Produccion Diego Nion 10/02/2006 10:14:41 12:43:31
Produccion Daniel Marquez 11/02/2006 5:26:43 0:34:42
Ventas Miriam Rey 11/02/2006 1:25:57 23:08:40
Produccion Maite Lupro 12/02/2006 17:26:05 1:33:24
Ventas Damian Valente 12/02/2006 17:30:59 4:36:26
Compras J imena Duarte 13/02/2006 8:07:40 1:39:25
Produccion Fernando Grassi 13/02/2006 11:17:42 13:52:30
Produccion Luisa Ottospan 14/02/2006 17:53:43 11:28:25
Ventas Mirta Rodriguez 14/02/2006 2:16:55 2:21:09
Produccion Carla Dupuy 15/02/2006 11:49:50 21:56:34
Produccion Ernesto Darlem 15/02/2006 7:11:00 2:14:06
Contable Raul Abal 16/02/2006 23:02:17 23:30:23
Produccion Lucila Vazquez 16/02/2006 16:29:22 20:38:22
Compras Anibal Bass 16/02/2006 21:43:18 21:05:41
Compras German Furia 17/02/2006 20:20:44 5:56:07
Contable Ana Monje 20/02/2006 11:54:08 17:25:57
Administrativo Eliana Boss 21/02/2006 0:18:22 3:57:12
Produccion Andrea Guzman 22/02/2006 17:33:35 4:13:53
Administrativo Luis Torres 22/02/2006 1:05:19 11:04:26
Produccion Walter Lopez 22/02/2006 14:34:28 5:07:44
Administrativo Hugo Prato 24/02/2006 17:09:20 6:23:08
Contable Danila Estevanez 27/02/2006 17:24:19 18:06:56
Produccion J ulio Verdi 01/03/2006 22:12:16 4:44:52
Ventas J uan Balverde 02/03/2006 9:34:09 20:30:08
Produccion Esteban Samir 02/03/2006 2:52:58 4:32:00
Administrativo Fernando Luisi 02/03/2006 8:20:40 14:07:48
Produccion Milton Suarez 06/03/2006 15:45:04 8:10:43
Produccion Diego Nion 06/03/2006 3:47:03 20:19:58
Produccion Daniel Marquez 07/03/2006 8:25:54 9:54:43
Ventas Miriam Rey 07/03/2006 8:02:41 16:04:13
Produccion Maite Lupro 07/03/2006 23:02:35 3:08:58
Ventas Damian Valente 07/03/2006 18:43:08 4:17:44
Empleado
Fecha
Salario pagado hasta la fecha
FuncionesAvanzadas
PruebaFinal
Ejercicio1
Acontinuacinsepresentalasiguientebasededatos,lacualcontienelosnombresdelos
participantesdelos4equiposexistentes.
Dichosparticipantesdelosequiposseencuentranagrupadosporcolumnas,ysesabequecada
equipocontaracon16participantes.
SePide:
Creuncuadrodeconsultasimilaralqueselepresentaacontinuacin,dondeapartirdela
introduccindeuntextocualquieraenelcampocorrespondientealNombredeParticipante:,el
mismodevuelvaenelcampocorrespondienteaEquipo:,elequipoalcualcorrespondedicho
participante.Enelcasoquenoexistadichoparticipante,endichocampodeberfigurar:No
perteneceaningnequipo.
Tengaencuentaqueaunseencuentrancuposlibresencadaequipo,ylafuncinqueustedcree
paradichocuadrodeconsultadeberfuncionarcorrectamentecuandoseinsertennuevos
participantes.Yrecuerdequeelnombrededichoparticipantenotienerestriccinalguna(puede
comenzarconcualquierletra).
Elformatodelcuadrodeconsultaeselsiguiente:
NombredeEquipo:
Participante:
Ejercicio2
Secuentaconlasiguientebasededatos,referidaamovimientosdecomercioexterior.
Sepide:
1) Uncuadrodeconsultacomoelsiguiente,enelcualapartirdelingresodedatoscomoel
Pas,TipodeOperacin,yFecha,senosdevuelvalasoperacionesdeSuma,
Promedio,Mximo,Mnimoreferidaalosdatosdeorigen.
Fecha:
Pais: Brasil
Tipo de Operacin: Importacion
Suma
Promedio
Maximo
Minimo
Enelcasodelcampodefecha,lasoperacionesdebernrealizarseapartirdedichafecha
especificada(parafechasmayoresoigualesalafechaespecificada).
TantoelnombredeloscamposPasyTipodeOperacin,debernvalidarseatravsdeuna
listaquedeberncrear.
2)AplicarformatocondicionalalaBasededatos,dondesepintenlasfilasdelamismaenfuncin
delossiguientescriterios
SiesExportacin,deberfigurarunfondoazul,fuentecolorblanco,estiloNegrita.
SiesImportacin,deberfigurarunfondorojo,fuentecolornegro,estiloNegrita.
Basededatos:
Ejercicio3
Apartirdelasiguientebasededatos,nuestraempresadelogsticaquesededicaalaentregade
diferentesproductosadiferentesempresas,deseaconocerlasfechasdeentregaparacadaunode
losproductos.
Senosdaaconocerlasiguienteinformacin:
TodoslosProductosdelaEmpresaLaTardaseentreganalos15dashbilesdelafechade
facturacin.
EncambioparalaEmpresaLaTempraneraseentreganlosproductosalos3dashbilesdela
fechadefacturacin,salvolosDVDquedebenentregarsealsiguientedahbil.
Ejercicio4
Sesolicitaquecreeuncuadrodeconsultaparafacilitarlealosvotantesdeestainstitucin
encontrarsucircuitoylocaldevotacin.
EllosingresaransuNumerodeSocio,ydebervisualizarsesucircuitodevotacinyDireccinde
dicholocal.
Numero de Socio
N de Circuito
Direccion
Elcuadrodeconsultajamspodrdarcomoresultadoalgnerror,yenelcasoquenoexista
ningnnmerodesocioingresado,loscamposNdeCircuitoyDireccin,debernmostrar
NosehaingresadoNdeSocio.
COMPENDIO
PRUEBAS
ANLISIS
DE
INFORMACIN
PruebaFinal
TablasDinmicas
ApartirdelaBasededatosubicadaenlahojaBD_Ventas,realicelossiguientesejercicios:
Ejercicio1
1. Realiceunatabladinmicaquemuestresegmentadoporturno;lacantidaddeventas
realizadasyelmontototaldelafacturacinenpesos.
1.1. Asigneunformatodepesos,sindecimales,alosdatosrelacionadosconlafacturacin
total.
1.2. Cambieelnombredeloscamposdelreadedatosa:CantidaddeVentasy
FacturacinTotal.
1.3. AgregueunAutoformatoadichaTabladeltipoInforme4.
1.4. Ordenelatablademayoramenordeacuerdoalascantidadesdeventasencada
turno.
2. Realiceotranuevatabladinmicaquemuestresegmentadoparacadasupervisor;el
montototaldelafacturacinrealizada.
2.1. Asigneunformatodepesos,sindecimales,alosdatosrelacionadosconlafacturacin
total.
2.2. Cambieelnombredelcampodelreadedatosa:VentasTotales.
2.3. AgregueunAutoformatoadichaTabladeltipoTabla2.
2.4. Ordenelatablademayoramenordeacuerdoalafacturacintotal.
Ejercicio2
1. Realiceotranuevatabladinmicaquemuestresegmentadoportipodeproducto,las
unidadestotalesvendidas.
1.1. AsigneunautoformatodeltipoTabla1
1.2. Ordenedichatablademayoramenordeacuerdoalascantidadesvendidasdecada
tipodeproducto.
2. Genereungraficodinmicodecolumnasasociadoadichatabla,dondesemuestrelos
tiposdeproductos(enelEjeX),conunacolumnaquemuestrelascantidadesvendidasde
cadatipo.
Ejercicio3
1. Realiceunatabladinmicaquemuestreparacadaempleadoelpromedioenpesosdesus
ventasefectuadas.Filtredichainformacinsolamenteparalasventasrealizadasenel
turnodelanocheyefectuadasalcontado.
1.1. ApliqueunAutoFormatodeltipoInforme10.
1.2. Asigneunformatodepesos,sindecimales,alosdatosrelacionadosconelpromedio
delafacturacintotal.
1.3. Cambieelnombredelcampodelreadedatosa:PromediodeFacturacinpor
empleado.
1.4. Ordenelatablademayoramenor,deacuerdoalpromediodelafacturacinde
cadaempleado.
2. Genereungraficodinmicocircularasociadoadichatabla,dondesemuestreparacada
vendedoreltotaldelasventasefectuadas,segnloscriteriosdelpuntoanterior.
Ejercicio4
1. Genereunatabladinmicaquemuestreparacadatipodepago,elmontototaldela
facturacinrealizada.
1.1. ApliqueunautoformatoadichatabladeltipoInforme2.
1.2. Agregueunformatodepesosaltotaldelasventas,yelcampodelreadedatosse
llamaraFacturacionTotal.
1.3. Agregueuncampocalculadoadichatablaquemuestrelafacturaciontotal+IVAen
unanuevacolumna.ElnombreenlatabladeberfigurarImporte+IVA.
2. GenereunanuevaTabladinmicaquemuestreparacadatipodepago,elmontototalde
lafacturacionrealizada.
2.1. ApliqueunautoformatodeltipoInforme6.
2.2. ElcampodelreadedatosdeberllamarseFacturacionporformadepago,y
debertenerunformatodepesos.
2.3. Agregue2elementoscalculadosenelcampoEmpleados,losmismossellamaran:
VisaCorregidoyMasterCardCorregido.Ysecalcularanconunporcentaje
adicionaldel7%paraVisa,y5%paraMasterCard.
2.4. OculteloselementosVisayMasterCard(quesevisualicensolamenteloselementos
calculados).
2.5. Ordenelatablademayoramenordeacuerdoalafacturaciontotal.
PruebaFinal
TablasDinmicas
Ejercicio1
ApartirdelaBasedeDatosubicadaenBD_Mdeo,sepide:
3. RealiceunatabladinmicaquemuestrelaPoblacindecadabarriosegmentadopor
sexo,ademsdeberfiltrardichainformacinparalasedadescomprendidasentre15y29
aos.
3.1. OrdenedichaTabladeMayoraMenor,deacuerdoalaPoblacindecadaBarriode
Mdeo.
3.2. AgregueunAutoFormatoadichaTabladeltipoTabla10.
4. Genereungraficodinmicodecolumnasasociadoadichatabla,dondesevisualicela
poblacindecadaBarrioenunasolacolumna(cadaBarriodeberfigurarenelEjeX).
EnelejeXdebernaparecersolamentelosBarrios:Pocitos,Cordn,PuntaCarretas,
Centro,UninyBuceo.
Ejercicio2
ApartirdelaBasedeDatosubicadaenBD_Mdeo,sesolicita:
2. Efecteunatabladinmica,dondesepuedacompararporsexoybarrio,loshombresy
mujeresquevivenenlosbarriosdeFlordeMaroas,LaTejayBrazoOriental.Pero
filtredichatablaparaqueaparezcansolamenteaquellaspersonasconedadesentre50y
79aos.
2.1. Ordenedichatabladeacuerdoalapoblacintotaldecadabarriodeacuerdoalas
caractersticasmencionadas.
2.2. AgregueunAutoFormatoadichaTabladeltipoTabla3.
3. Genereungraficodinmicodecolumnasasociadoadichatabla,dondesemuestrelos
citadosBarrios(enelEjeX)yunacolumnaparalapoblacindecadasexoasociadaal
barrio.
Ejercicio3
ApartirdelaBasedeDatosubicadaenBD_Ventas,sesolicita:
2. Realiceunatabladinmicaquemuestreparacadavendedorlasventasefectuadasenlos
mesesdefebreroymayo.
PermitafiltrardichainformacinsegnTipodePago,ymuestresolamentelosdatospara
lasventasalcontado.
2.1. ApliqueunAutoFormatodeTabla2.
3. Genereungraficodinmicocircularaparte,dondesemuestreparacadavendedoreltotal
deventasefectuadas,solamentedebernfigurarlasrealizadasenlosmesesdemarzoy
abril,paratodaslasventasnoefectuadasalcontado.
Ejercicio4
ApartirdelaBasedeDatosubicadaenBD_Ventas,sesolicita:
2. Genereunatabladinmica,quemuestreelpromediodelasventastotalesefectuadas,
paracadatipodeproductosolamenteparalasventasalcontado.Permitafiltrardicha
tabladeacuerdoalosvendedoresquelasrealizaron.
2.6. ApliqueunautoformatoadichatabladeltipoTabla10.
2.7. Agregueunformatodeeurosalpromediodelasventas.
3. Genereotratabladinmicaquepermitaobservar,elporcentajedecadaTipodeProducto
eneltotaldelasventasefectuadasenmarzo,paratodaslasventasquehanrecibidoun
descuentomenoral5%.
PRUEBAAnlisisdeInformacinEXCELAVANZADO
EJERCICIO1
BasadosenlosdatosexistentesenlaHoja1delarchivoVentas.xls:
Crearunatabladinmica,enlaceldaF1,quemuestreelmximodeventasdelao2004paracada
zona.
ColocarlecomonombredecampoMximo2004
OrdenarlatablaporestecampoenformaAscendente
CrearotraTablaDinmica,enlaceldaF9,queindiqueelpromediodeventasporVendedordelao
2003.
Aplicarleaestecampoformatodenmero,conseparadordemilesydosposicionesdecimales.
MostrarsolamentelosdatoscorrespondientesaLOPEZyRODRIGUEZ
CrearotraTablaDinmica,enunahojanueva,dondesemuestreeltotaldecadaaoporZona.
Agregaruncampocalculado,llamadoDiferenciaquemuestrecuantomssevendienel2004
respectodel2003.
Agregarotrocampocalculado,llamadoPorcentajequemuestrecuantorepresenta
porcentualmente(sobre2003)ladiferenciacalculadaenelpuntoanterior.Colocarleformato%con
undecimal.
Pordetectarseunerrordebercambiarelvalordelltimoregistrodelalistaoriginal.Lasventas
realesdePEREZparaelao2004fueronde4765.ReflejarestecambioenlaTablaDinmica.
EJERCICIO2
TrabajarsobrelosdatosqueseencuentraenlaHoja1delarchivoSeminarios.xls
RealizarunatabladinmicaenunaHojanuevaqueindiquelacantidaddeseminariosquetendr
cadaprofesorycolocarlealcampocorrespondienteelnombreTotaldeSeminarios
Representarlatabladelpuntoanterior,enungrficocircular,perosolamentemostrandolosdatos
correspondientesaHardwareyLenguajes.
EJERCICIO3
UtilizandoelArchivoSeminarios.xls,utilizarfiltrospara:
ObtenerlosseminariosdictadosenCHILE.
GenerarunasubbasededatosparaobtenerlosseminariosdictadosenCHILEycuyaduracinhaya
sidomayorde30minutos.Lanuevasubbasededatostienequetenerlascolumnasdelnombre,
tema,yduracin.
Crear,conlaherramientasubtotales,lossubtotalesdealumnosqueacudieronacadaseminario
dictadoencadapas.
EJERCICIO4
Mediantelasiguientetabla:
ImporteVentas: 560000
PorcentajeCosto: 65%
Importe: 364000
Utilidad: 196000
Conlaherramientatabla:realizarclculosdeutilidad,dependiendodelassiguientesvariacionesdel
porcentajedecosto(45%;60%;75%;85%;90%).
COMPENDIO
PRUEBAS
GRFICOS
PERSONALIZADOS
PruebaFinal
Mdulo:GrficosPersonalizados
EjercicioN1
Copieelsiguientecuadrodedatosenla1hojadesulibrodeExcelalquellamara
Prueba_GP_Nombre_Apellido.AlahojanmbrelacomoTablaDatos.
Equipos de Venta
Meses
Equipo A Equipo B Equipo C Equipo D Equipo E
Enero $U 150.000 $U 157.487 $U 125.868 $U 90.834 $U 52.481
Febrero $U 271.139 $U 299.764 $U 163.736 $U 244.286 $U 127.685
Marzo $U 310.874 $U 352.540 $U 194.513 $U 246.763 $U 210.303
Abril $U 324.147 $U 465.699 $U 350.106 $U 361.981 $U 248.181
Mayo $U 338.982 $U 489.592 $U 382.835 $U 536.825 $U 349.743
J unio $U 362.883 $U 525.612 $U 529.520 $U 554.831 $U 455.638
J ulio $U 473.192 $U 671.261 $U 704.240 $U 693.014 $U 489.846
Agosto $U 533.822 $U 802.015 $U 875.955 $U 766.389 $U 552.640
Septiembre $U 653.734 $U 924.318 $U 963.160 $U 905.500 $U 722.182
Octubre $U 701.385 $U 1.018.397 $U 1.089.458 $U 978.142 $U 773.879
Noviembre $U 776.790 $U 1.162.809 $U 1.140.784 $U 1.072.761 $U 809.750
Diciembre $U 913.258 $U 1.245.318 $U 1.220.691 $U 1.197.392 $U 911.762
SePide:
1.1) Creeungraficodecolumnaseinsrteloenunanuevahojadellibroalaquellamara
Grafico11conlassiguientesespecificaciones:
Sedesearealizarungraficoquemuestreuncomparativodelas
ventastotalesanualesrealizadasporcadaEquipodeVentas
(deberfigurarunacolumnasolaparacadaEquipodeVentasen
elejeX),dichograficodebesercreadoapartirdelatablade
datosoriginal,sincrearunanuevacolumnaparatotales.Se
debeincluirenelgraficolosrtulosdecategoradelejeX.
Cadaserieincluidaenelgraficodebellevarsunombreatravs
deunareferenciaalasceldasubicadasenlatablaoriginal
ElgraficodebeincluircomotitulodelmismoVentasanuales
segnEquiposdeVentas.Laleyendadereferenciasnodeber
figurarenelgrafico.
CadaEjedeberllevarlossiguientesttulos,enformato
Negrita:
X=EquiposdeVentas
Y=VentasAnuales
LaescaladelejeYdebervisualizarsecada1200000unidades
Elreadetrazadodelgraficodebertenercomoefectode
rellenounatexturademrmolverdealigualqueelreadel
grafico.
Asigneunformatosimilaratodaslasseries(meses)para
generarenlacolumnadecadaequipodeventaelefecto
deseadodeunacolumnauniforme,paraelloquitebordesy
adopteunefectoderellenoasueleccin.
1.2) Ubiqueelsiguientegraficoenunanuevahojallamada:Grafico12
Asimismosedeseaobservarungraficodebarrasconefecto3D,dondesemuestrelas
ventasdiscriminadaspormeses(paracadamesunasolabarraqueincluyatodoslos
equiposdeventas).Paraelloselesolicitaquegeneredichograficoapartirdela
informacincontenidaenlatabla,yescojaunsubtipodegraficodebarrasadecuadoatal
fin.Ademsasigneunefectoderellenosimilarentodaslasseriesincluidasenelgrafico,
paragenerarunefectodehomogeneidadencadabarra.
Formatosdelgrafico:
Nodeberfigurarlaleyendaconlasdiferentesseries.
Eltitulodelgraficoser:VentasMensualesparaelao2006
EltitulodelEjeZ(valores)ser:ImportesdeVentas
SedebeincluirenelgraficolosrtulosdecategoradelejeX,y
debernfigurarenNegrita,ademsdeltituloparadichoeje:
Meses.
Elefectoderellenodelasreasdetrazadoydelgrafico,
debernincluiruncolorcelesteygrisendegradadoyser
similaresensusestilosdesombreado
Elefectoderellenodelosplanoslateraleseinferioresdel
grafico,debernincluiruncolorverdeendegradado.
1.3) Sedeseagenerarungraficodelneasdondesevisualicelaevolucinmensualdelas
ventasparacadaEquipodeVentas.
Realiceunnuevograficoconlassiguientescaractersticas:
Eltitulodelgraficoser:Evolucinmensualdelasventas
segnEquipodeVenta
Eltitulodelejex:Meses
Eltitulodelejey:ImportedeVentas
Todoslosttulosdebernfigurarennegrita.
Deberincluirelrotulodecategorasennegrita
Lasreasde;trazado,grafico,diferentesttulosyleyenda,
deberntenerelmismoefectodecolorasueleccin.
LaescaladelEjeYdebervisualizarsecada$175000.
UbqueloennuevahojallamndolaGrafico13
Laleyendadeberfigurarsobreelgrafico.
1.4) DeseamosobservarenunnuevograficolaparticipacindecadaEquipodeVentaparael
totaldelasventasendiciembre,atravsdeungraficocircularconefecto3dyseccionado.
Aadaunformatoqueincluya:
Unaimagendefondoenelreadegrafico.
Eltitulodedichograficoser:ParticipacindelosEquiposde
VentaenDiciembre2006.
Deberfigurarelnombreyelporcentajecorrespondientea
cadaEquipo,separadosporunanuevalnea.
Laleyendaconlascategorasdeberfigurarsobreelgrafico.
UbqueloennuevahojallamndolaGrafico14.
EjercicioN2
Copielasiguientetablaaunanuevahojadellibroconelcualestatrabajandoynmbrela
PirmidePoblacional.
Total
0 a 3 4 a 5 6 a 14 15 a 19 20 a 24 25 a 29 30 a 49 50 a 64 65 a 79 80 o ms
POCITOS 69.636 2.276 1.156 5.442 4.379 5.580 5.957 17.998 12.513 10.248 4.087
Hombres 29.827 1.155 590 2.699 2.076 2.598 2.736 8.053 5.083 3.685 1.152
Mujeres 39.809 1.121 566 2.743 2.303 2.982 3.221 9.945 7.430 6.563 2.935
Grupo de edades
Apartirdelasiguientetabladedatosdeberconstruirungraficopersonalizadoquerepresente
unaPirmidePoblacional.DichograficodeberpresentarenelEjehorizontallosHombresala
izquierdaylasmujeresaladerecha,recuerdequesolamentedeberaparecerenelgraficolos
gruposdeedadesenelEjevertical,ynolostotales.
DebenaparecerttulosenambosejesyfundamentalmentelascategorasenelEjeX.
Encadabarradeberfiguraralainternadelamismaelvalorparadichosexoygrupoetario.
Elformatodelasdiferentesreasdelgraficodebeserdelmismocolor,queustedelija.
EjercicioN3(Opcional1)
Consultas Inscripciones
1500 750
1600 760
1800 850
1650 800
200 75
840 550
1200 680
SepresentanlossiguientesparesdeValores(ConsultassobreunCurso,Inscripcionesadicho
curso).
Secreequedichasseriessecorrelacionandealgunamanera.
Sesolicitasiustedpodradeterminarelmejorajustelinealdedichasseriesatravsdeunalnea
detendencia,representargrficamentelanubedepuntosydichaestimacinlineal,laecuacinde
lamismayelcoeficientedecorrelacinalcuadrado(R^2).
EjercicioN4(Opcional2)
Paraelsiguienteproyectodecampaapublicitariasecuentaconlasiguienteinformacin:
Sesolicitaquerealiceparaelinformedepresentacindeldesarrollodeunnuevoproducto,un
GraficoPersonalizadodeGanttdondesevisualicenlasdiferentestareasdelProyectoenelEjeX,y
enelEjeYsemuestrenlasfechasinvolucradas.
Elgraficodeberpresentar:
Titulodelmismo,yttulosdeambosejes(noleyendadereferencias).
Valoresdeduracindecadaunadelastareasenelinteriordecadabarra
Formatosdereadegraficoytrazadoenceleste.
Formatosdelreadelasseriesencolorrojo.
Sepide:
1. Generarungrficodecolumnasquecontengalasventasdeambosequiposencadauno
delosmeses(enejedeXlosmesesyenejedeYlosimportesdeventasdecadaunode
losequipos).
2. Representarenelmismogrfico(agregadoposterioralprimergrfico),dosseriesque
representenporcentualmentelaincidenciadecadaventaencadaunodelosmeses,yesta
representacindeporcentajesdeberestarrepresentadaporunejesecundario.
3. Aplicarefectosderellenoencadaunadelasseries(equipoAconunefectoderellenoa
elecciondelestudiante,equipoBconotroefectoderellenoaeleccindelestudiante).
4. Elareadetrazadotendrcomoefectoderellenounatexturaconefectodemarmol.
5. Generarautomatizacinenelgrfico.Estoserefiereaque,sielestudianteincorpora
otrosmeses(junio,julioyagosto,juntoconventasparacadaequipo)estosdatosse
agreguenenformaautomticaenelgrficoencuestin.
Ejercicio2
PlantasdeCelulosa
Seharealizadounaencuestaadeterminadamuestrapoblacional(200personas)acercadesu
opininacercadesilasplantasseinstalarnenArgentinaoenUruguay.
Generarungrficodepirmidepoblacional.Adicionaralmismounttuloparacadaunodelos
ejes.Mostrarlosvaloresdentrodelgrfico.Aplicarefectosderellenoqueelestudianteconsidere.
Grabarestegraficocomopersonalizadoparaaplicarloenfuturosusos(darlecomonombre
pirmidespersonalizadas).
PruebaFinal
Mdulo:GrficosPersonalizados
EjercicioN1
Copieelsiguientecuadrodedatosenla1hojadesulibrodeExcelalquellamara
Prueba_GP_Nombre_Apellido.AlahojanmbrelacomoEjercicio1.
SePide:
1.1) Creeungraficodecolumnaseinsrteloenunanuevahojadellibroalaquellamara
Grafico11conlassiguientesespecificaciones:
Sedesearealizaruncomparativoparacadaaopor
vendedores,porlotantoselepidequeenelEjeXfigurenlos
aos,yademsseincluyanenelmismolosrtulosdecategora.
Cadaserieincluidaenelgraficodebellevarsunombreatravs
deunareferenciaalasceldasubicadasenlatablaoriginal
ElgraficodebeincluircomotitulodelmismoVentasanuales
segnvendedoresylaleyendaconlasreferenciasalasseries.
Ambosdebenpresentarcomoefectoderellenoensustramasel
mismoformato,undegradadoadoscoloresconunestilode
sombreadodiagonal.Laleyendadereferenciasdeberfigurara
laizquierdadelgrafico.
CadaEjedeberllevarlossiguientesttulos,enformato
Cursiva:
X=Aos
Y=VentasenmilesdePesos
LaescaladelejeYdebervisualizarsecada120unidades
Elreadetrazadodelgraficodebertenercomoefectode
rellenounatexturademrmolblancoaligualqueelreadel
grafico
Debidoalacomplejidaddereconocercadavendedordentrode
cadaaosedecidiqueseincluyaelnombredelmismoencada
columnacorrespondiente,siguiendolaalineacindelamisma.
1.2) Asimismosedeseaobservarungraficodebarrasconefecto3D,dondesemuestreun
comparativoporvendedoresparaelao2001y2002,conidnticoformatoqueelgrafico
realizadoenelpunto1.1),ubqueloenunanuevahojaalaquellamaraGrafico12.
1.3) Ademsnospidenrealizarunnuevograficodecolumnasconformatossimilaral1.1)para
compararlostotalesdeventasparalosaos2001y2002entretodoslosvendedores,
perosingenerarunanuevaserieenlatablaoriginal.Paragenerarelefectodeseadoenel
graficomodifiqueelreadeunaoambasseriesparaquequedenconelmismoefectoy
generenlasensacinbuscada.UbqueloennuevahojallamndolaGrafico13
1.4) Deseamosobservarenunnuevograficolaparticipacindecadavendedorparalasventas
delao2001,atravsdeungraficocircularconefecto3dyseccionado.Aadaunformato
similaralosgrficosanterioresparalasdiferentesreasdelmismo.Peroeneste
deseamosqueaparezcaelnombredelvendedoryelporcentaje(ambosseparadosporun
espacio).UbqueloennuevahojallamndolaGrafico14.Eltitulodedichograficoser
Ventas2001.
EjercicioN2
Copielasiguientetablaaunanuevahojadellibroconelcualestatrabajandoynmbrela
Ejercicio2.
Edades
Sexo
PoblacindeArtigassegnsexoygrupoetario
Total 0a3 4a5 6a14 15a19 20a24 25a29 30a49 50a64 65a79 80ymas
ARTIGASTotal 78.019 5.426 3.139 14.626 7.349 5.634 4.767 19.619 10.169 5.771 1.519
Hombres 39.082 2.798 1.587 7.419 3.797 2.860 2.316 9.836 5.255 2.663 551
Mujeres 38.937 2.628 1.552 7.207 3.552 2.774 2.451 9.783 4.914 3.108 968
Apartirdelasiguientetabladedatosdeberconstruirungraficopersonalizadoquerepresente
unaPirmidePoblacional.DichograficodeberpresentarenelEjehorizontallosHombresala
izquierdaylasmujeresalasderechas,recuerdequesolamentedeberaparecerenelgraficolos
gruposdeedadesenelEjevertical,ynolostotales.
DebenaparecerttulosenambosejesyfundamentalmentelascategorasenelEjeX.
Encadabarradeberfiguraralainternadelamismaelvalorparadichosexoygrupoetario.
ElformatodelasdiferentesreasdelgraficodebesersimilaralasescogidasparaelEjercicio1.
EjercicioN3(Opcional1)
Precios VentasdelMercado
1 792
2 821
3 522
4 552
5 642
6 437
7 671
8 518
9 388
10 503
11 403
12 196
13 180
SepresentanlossiguientesparesdeValores(Precios,CantidadesTransadas)querepresentan
Preciosycantidadestransadasendeterminadomercado.Secreequedichasseriesse
correlacionanlinealmente.
Sesolicitasiustedpodradeterminarelmejorajustelinealdedichasseriesatravsdeunalnea
detendencia,representargrficamentelanubedepuntosydichaestimacinlineal,laecuacinde
lamismayelcoeficientedecorrelacinalcuadrado(R^2).
EjercicioN4(Opcional2)
Paraelsiguienteproyectodecampaapublicitariasecuentaconlasiguienteinformacin:
Fechas
Tareas FechaInicio FechaFinal
Planificacin 01/11/2005 15/11/2005
ContratacindePersonaltemporal 16/11/2005 30/11/2005
CampaasPiloto 17/11/2005 20/11/2005
CampaasFocalizadas 18/11/2005 30/12/2005
FolleteriaBarrial 01/12/2005 15/04/2006
Folleterianoespecializada 01/12/2005 15/01/2006
Graficaespecializada 01/01/2006 25/01/2006
Radio 15/01/2006 15/02/2006
Televisin 25/02/2006 15/03/2006
SesolicitaquerealiceparaelinformedepresentacindelacampaaunGraficoPersonalizadode
GanttdondesevisualicenlasdiferentestareasdelProyectoenelEjeX,yenelEjeYsemuestren
lasfechasinvolucradas.
Elgraficodeberpresentar:
Titulodelmismo,yttulosdeambosejes(noleyendadereferencias).
Valoresdeduracindecadaunadelastareasenelinteriordecadabarra
Formatosdereadegraficoytrazadoidnticos.
Formatosdelreadelasseriesencolorazul.
COMPENDIO
PRUEBAS
MACROS
EN
EXCEL
PruebaMdulodeMacrosenExcel
Ejercicio1
Dadoelarchivoqueleproporcioneldocente.Enlahoja1seencuentraunlistadodechequesen
carteradelaempresa.Determinadoschequesvanvenciendo,ysedebeirpintandoderojolosque
vayanvenciendo(utilizarcomoparmetrolafechaactualdelsistema(funcinDATE)).
Sepretendequemedianteunmacro,seobtengalasumadelosimportesdechequesvencidos.
Ejercicio2
Enlahoja2delmismoarchivoentregadoporeldocente,seencuentraunaplanillademanejode
stock.Sepretendequeelalumnodesarrolleunmacro,paraqueendicholistadosedestaquede
colorazulaquellosartculosqueestnpordebajodelstockmnimorequeridoporlaempresa.
Nota:
Generarunbotnsobrelahoja1paraelmacrodelejercicio1.
Generarunbotnenlabarradeherramientasparaejecutarelmacrodelejercicio2.
PruebaFinal
MacrosenExcel
Ejercicio1
RealiceunamacroqueguardeenunabasededatosdeLiquidacionesdeSueldo,lossiguientes
datos:
NombreyApellidodelEmpleado
CargoenlaEmpresa
Cadete
Auxiliar
Administrativo
Encargado
Gerente
FechadePago
DasdeAusencia
Ademsdeberagregarseenlabasededatosnuevascolumnasreferidasa:
SueldoNominal
Aportes
SueldoLiquido
LosSueldosNominalessonlossiguientes:
Cadete;$4000
Auxiliar;$5500
Administrativo;$7000
Encargado;$12000
Gerente;$25000
LosAportessonlossiguientes:
Cadete;10%sobreSueldoNominal
Auxiliar;12%sobreSueldoNominal
Administrativo;15%sobreSueldoNominal
Encargado;18%sobreSueldoNominal
Gerente;22%sobreSueldoNominal
ElPagodelSalarioenefectivoserealizadeacuerdoalasiguienteregla:
Silasinasistenciassonnulasselopremiaconunincentivode5%sobre(Sueldo
NominalAportes).
SueldoLiquido=(SueldoNominalAportes)*1.05
Sifalto3omenosdastieneunapenalizacinde2%sobre(SueldoNominalAportes)
SueldoLiquido=(SueldoNominalAportes)*0.98
Sifaltomasde3dastieneunapenalizacinde5%sobre(SueldoNominalAportes)
SueldoLiquido=(SueldoNominalAportes)*0.95
Lafuncionalidaddedichamacrodeberincluir:
EnlaprimerfiladelaBasededatos,losttulosdecadavariable.
La posibilidad de utilizar dicha macro en repetidas ocasiones y que no se eliminen
antiguosregistros
Laposibilidaddeelegiracontinuacindecadaregistroestas2opciones:
Ingresarunnuevoregistracontinuacin.
Dejardeingresarnuevosregistros.
PruebaFinal
MacrosenExcel
Ejercicio1
RealiceunamacroqueguardeenunabasededatosdeFacturacindeLlamadas,lossiguientes
datos:
DatosquecargaraelusuarioatravsdeunInputBox:
Fechaactual,(utilicelafuncinNow())
RegindelaSucursaldesdedondeserealizolallamada
Montevideo
Maldonado
Rocha
Rivera
PasdeDestino
Argentina
Espaa
EEUU
Brasil
Otros
Minutosenterosdelallamada
Apartirdelosanterioresdatosquecargaraelusuarioalejecutarlamacro,sedeberncalcularlos
siguientescamposautomticamente:
Costoporminuto
Argentina;0,5USD.
Espaa;2USD.
EEUU;1,5USD.
Brasil;1USD.
Otros;3USD.
CostoTotal
CostoTotal=Costoporminuto*MinutosEnterosdelallamada
Descuento
LlamadashechasdesdelasucursalRochaoRivera,tienenun5%dedescuento.
PrecioFinal
PrecioFinal=CostoTotalDescuento
Lafuncionalidaddedichamacrodeberincluir:
EnlaprimerfiladelaBasededatos,losttulosdecadavariable.
La posibilidad de utilizar dicha macro en repetidas ocasiones y que no se eliminen
antiguosregistros
Laposibilidaddeelegiracontinuacindecadaregistroestas2opciones:
Ingresarunnuevoregistracontinuacin.
Dejardeingresarnuevosregistros.