manual excel avanzado

Upload: paloma-gachon

Post on 13-Oct-2015

30 views

Category:

Documents


1 download

TRANSCRIPT

  • MANUAL

    EXCEL

    AVANZADO

    BIOS

  • ManualExcelAvanzado

    BIOS

    MduloFuncionesAvanzadasPrimerEjemploFuncionessimplesDadalasiguienteplanilla:

    Supongamosquelanotafinalsecalcularbasndonosenelpromediodenotasqueobtuvocadaestudianteensusparciales.Porlotantoaplicaremoslafuncinpromedio:=PROMEDIO(B2:D2)Recordemosquecualquierfuncinquevayamosaaplicardebemosposicionarnossobrelacelda,ycomenzarconelsigno=oensudefectoelsigno+.Porotroladosihubiramosqueridotomarencuentasolodosdelosparcialesdentrodelpromediotendramosque:=PROMEDIO(B2;D2)Enelcasodequequeramostomarrangosdiscontinuosestoseaplicaradelasiguienteforma:=PROMEDIO(B2:D2;H2:J2)Laplanillahastaahoraquedaraas:

  • Ademsenelcasodecopiarestafrmula,podramosrealizarlomediantelaopcinclsicadedarsobreelbotnderechosobrelacelda,seleccionarlaopcincopiar,yluegomarcarelrango(enestecasodeE3:E8)ydarlepegar.MasalldeestaclsicaopcintambinsepodracopiarlaformuladeformasimpledandoDOBLECLICenelbordeinferiorderechodelaceldaquecontienelaformulaacopiar.Enlasiguientecolumna,seharunbreverepasodelaformulacondicionalSI.Deacuerdoaestaformuladeberaplicarse:=SI(prueba_lgica;valorverdadero;valorfalso)Enelcasodelaplanillaquemanejamosanteriormente,estaquedaradeestamanera:=SI(E2
  • Vamosaarmaruncuadroadicionalanexoalaplanillaparaimplementarotrasfunciones:

    EnestecuadrocalcularemoscuantosfueronlosalumnosqueobtuvieroncomocalificacinAprobado,ParcialyReprobado.Asuvezcalcularemosconrespectoaltotaldealumnos,elporcentajequeobtuvocadacalificacin.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,mientrasquelaceldaA12esrelativayaquecambiardefilaalcopiar.EnlafuncinCONTAR.SItenemosencuentaelrangoaevaluar,ycomosegundoargumentotenemoselcriterioatomarencuentaparacopiar.SiaplicamoslafuncionCONTAR,otambinCONTARA,podremossabercuantosalumnostendremos.=CONTAR(E2:E8)EnestecasolafuncinCONTARaplicaperfectamenteparaestecasopuestoquelasceldasqueseevaluantienencontenidonumrico.Enelcasodequererhacerunrecuentoporapellidos:=CONTARA(A2:A8)Aquaplicaperfectamenteyaqueestafuncinnospermiteevaluarceldasnovacas.

  • PasandoaotrotemaveremosacontinuacinalgunaaplicacinadicionaldelafuncinSI.Enlasiguienteplanillaseevaluarlacalidaddelosproductossegnsudimetro.Sieldimetroestcomprendidoentre10y20sucalidadserA,ydelocontrarioserB.

    VemosqueenestecasonosoloseapliclafuncinSI,sinoquesecombinconlaopcinY(tambinpodriamoshaberaplicadolaopcinO),delasiguientemanera:=SI(Y(opcion1;opcion2;..);valorverdadero;valorfalso)=SI(O(opcion1;opcion2;..);valorverdadero;valorfalso)EnelcasodecombinarconlaopcinY,recordemosqueestaramoshablandodequesisecumplenUNAYCADAUNADELASOPCIONESENFORMASIMULTANEAseaplicaralaopcinverdadera,yenelcasoquenofueraasseaplicalaopcinfalsa.MientrasqueenelcasodelasopcionesquedamosmedianteelO,conqueunadelasopcionesfuereverdadera,yaseaplicaralaopcindelvalorverdaderoenlacondicin,ysolosinosecumpleningunadelasopcionesseaplicaraelvalorfalso.

  • Pasemosahoraaunnuevoejemploycontinuamosenlaaplicacindefunciones:

    Enestecasoaplicamosunafuncindebsqueda,quesedenominaBUSCARV.Recordemosquelaformadeutilizarestafuncindebsquedaeslaquesedemuestraacontinuacin:=BUSCARV(valorbuscado;matriz;nmerodecolumna;[ordenamiento])Enelcasoparticulardelaplanilla=BUSCARV(A13;A2:C8;3;FALSO)Vemosaququeelvalorbuscadohacereferenciaalaceldadondeelusuariocargareldatoenelquesebasarlabsqueda.Estedatonodebeserpartedelamatrizdebsqueda(A2:C8)sino,estonotendrasentidoenlabsqueda.Luegosecargalamatriz,alhacerreferenciaalamatriznocargamoslosttulosdelamisma,soloelcontenido(registrosdelamisma),luegocargamoslareferenciaalnmerodecolumnaquesevaaextraer,enestecasolacolumna3yaqueesladelstock(columnacondatoaextraer)yporltimocomoargumentoOPCIONALelordendentrodelamatriz,enestecasofalsoyaquelaprimeracolumnadelamatriznoestordenadaenformaascendente.AdemsenelcasodelargumentoopcionaldeORDENestotambienesrealmentesignificativoalmomentodeaplicarlacoincidenciaenlabsqueda.SiesteargumentoesFALSOylabusquedanoencuentraeldatoprecisoretornaunerror.Porejemplo:

  • EnestecasoalnoencontrarelArtculoA5565devuelveunerrordeltipo#N/A,odatoNODISPONIBLE(NotAvailable).EncambioveamosquepasacuandoelargumentodeordenlocambiamosaVERDADERO.

    Enestecaso,masallqueelproductoA5565noseencontrdetodasformasretornelvalordestockdelartculocuyacoincidencianoeraexacta,sinoaproximada.Enmuchoscasoscuandolabsquedanotieneporqueserexacta,esteargumentoVERDADEROpuedeayudarnosaencontrareldatomscercanoquecoincidaconnuestrabsqueda.EncambioanteriormentecuandoelargumentofuecambiadoporFALSO,labsquedanonosretornabaningnvaloryaqueeldatonoloencontraba(concoincidenciaexacta)enlamatrizderegistros.Enotroambitotambinserabuenoenunaplanillacontrolarlosingresosdeinformacin,yesporestoquevamosaintroducireltemaVALIDACINDEREGISTROS.VALIDACINDEDATOSEnelcasodelaplanillaquepresentamosanteriormente,vamosacomenzarestetemadevalidacintratandodequeelusuarioselimiteaagregarartculosconSTOCKentre0y300,ynopuedaintroducirunnmeromenoracero,nimayora300.Veamoscomooperar:

    1. Pintamoslasceldasdestock(celdasenlasquevamosadarlaregladevalidacin)2. Luegovamosalmendedatosvalidacin3. Establecemoslaregladevalidacinaoperar4. Opcionalmentedefinimosmensajeentrante5. Opcionalmentedefinimosmensajedeerror

  • Veamoselpasoencadapantalla:EnesteprimerpasomarcamoslasceldasdeStockyluegonosdirigimosalmendeDatosValidacin

    Enelsegundopasodefinimoslaregladevalidacin:Enestecaso,definimosqueloquevamosapermitiresunnmeroenteroendichasceldasyestenmerodeberestarcomprendidoentre0y300.

    TenemosotrasopcionesaldesplegarelcuadroPermitir,quelasusaremosenalgunosejemplosposteriores.

  • Poniendootroejemplo:Enestecasonosposicionamosenlaceldadondelapersonavaarealizarlabsquedadelstockdedeterminadoartculo(A13),ydamosunaregladevalidacinparaquesolopuedaingresarcdigosdeartculosexistentesenlamatrizdedatos:

    VeamosquesucedecuandoaplicamostambinelusodelasolapadeMensajeEntrante

    EstoresultarcuandolapersonaseposicionesobrelaceldaA13(enlacualsedeterminlaregladevalidacin).Veamoscomoenlapantallaquesemuestraacontinuacin,semuestraelmensajeentrante: Aquvemoselmensajeentrantealposicionarnossobrelacelda

  • Uncomentarioconrespectoaesto,eselhechodepodertrabajarenlasreglasdevalidacin,tantoconrangosdinmicoscomotambinconrangosconunnombredeterminado.Veamoscomofunciona:

    Enestecaso,aldarcomoorigendelalistalaseleccin:=$A:$A(referenciaalacolumnaA)Laventajaqueselograeselhechodepoderincorporarmasartculosconsurespectivostockalamatrizdeesamaneraintegrarlosalaregladevalidacindeformaautomtica.Aplicandoloquecomentabamos:

    Enestecasoagregamosunartculoalalista,yluegovemoscomoelartculoseintegraenformaautomticaalcuadrocombinadoenlaceldaquetienelavalidacin.

  • DEFINIRNOMBRESARANGOSEnelsiguienteejemploveremoscomoaplicamosenlugardeunareferenciaaunalistaformadapordeterminadasceldas,aunrangoconunnombrepreasignadoEnprimertrminoasignaremosalrango,unnombrecomoporejemploARTICULOSEnelreasealadaasignamoselnombrealrangodeartculos.Oseaprimero,sealamoselrangodeartculos(A2:A9)yluegoledesignamosunnombreaesterango.DeahoraenmascuandoyoquierahacerreferenciaalasceldasA2:A9yapodremosescribirsimplementeARTICULOSqueExcelentenderlasdireccionesalasquesehacerreferencia.Otramaneradeplantearlasreferenciasderangosalosqueseleaplicaunnombresera:

    MedianteelmenInsertarNombreDefinir,tambinpodremostantocrearrangosconnombre,eliminarrangosconnombre,ytambinmodificarlos.Veamosqueendichapantallapodemosasignarelnombre,yendondedefineSerefierea:podremosdeterminarladireccindelasceldasquevamosatenerdentrodelrango.

  • Enestesentidoestapantallanosdamejormanipulacinsobrelosrangos,yaquenosolopodremosasignarlesnombresadeterminadasceldasorangos,sinomodificarladireccinalaquehacenreferencias,comotambineliminardeterminadosnombresqueyanoseandeaplicacinparanuestraplanilla.Enelcasodequererasignarunrangoconnombre,enunareglavalidacin,estoquedara:

    VemosqueaqucomoorigendelalistadeterminamoselrangoconnombrequedenominamosARTICULOS.(Nota:Recordarelsigno=puestoquenoqueremoshacerreferenciaauntextosinoaunrango).

  • FORMATOCONDICIONALEstetemaatratarserinteresanteparaaplicardinamismoencuantoalformatodeceldas.Tambinnosservircomoavisoendeterminadasplanillasenlasquebusquemosquelamismacambiecuandounfactorsecumpla.EstosetratadeunacombinacinentrelafuncincondicionalSIylaaplicacindeformatos(bordes,sombreados,subrayado)enceldasyrangos.Tenemosbsicamentedosmanerasdeaplicarestetema:

    1. Aplicacindelformatocondicionaldeacuerdoalvalordeunacelda2. Aplicacindelformatocondicionalvinculadoaunaformula.

    Aplicaremosenprimerlugarunformatocondicionaldeacuerdoalvalordeunacelda.PorejemplosiqueremosquelaplanillanossealetodoartculocuyoStockestepordebajodelas70unidades.

    Sealamosenprimerlugarelrangoalquelevamosaaplicarelformatocondicional,enestecasoelrangoformadoporlasceldasquedeterminanelstock.Ensegundolugarvamosalmendeformatoformatocondicional.

  • Enelmendeformatocondicional,enestecasolacondicindependedelValordelaCelda,yaestevalorlopodemoscondicionarconoperadoreslgicos(,=,=)porlotantopodremoscompararlosvaloresdelasceldascondichosoperadores.Enelcasoqueveamosanteriormentedeterminamosqueevalesielvalordelaceldaesmenora70,yencasodeserverdaderaestapruebalgica,aplicamoselformato,dndoleunatramaconcolorrojo,loquesealarlaceldadeestecolorcuandosecumplaestacondicin.Enelcasoquequeramosaplicarmsdeunacondicinpodremosagregarhasta3condicionesenelformatocondicional,comosemuestraenelejemploacontinuacin:

    Laopcindeagregarnospermitiriragregandocondiciones,condicholmitede3condicionesenestaherramienta.NOTA:LaposibilidaddeagregarmscondicionesenformatocondicionalsepodrmanejardesdeMacrosenVBA.Enelejemplovistoanteriormenteestamosaplicandocolorrojoalosartculoscuyostockestepordebajodelas70unidades,aplicaremoscolorazulalosartculosentre70y99unidadesyporltimosielartculotiene100omasunidadesensustocklaceldasepintardecolordefondoverde.

  • Encasodequequeramosaplicardichoformatocondicionalconestasmismascondicionesperodeseamosmarcartodalafilacuandosedelascondicionespropuestas,estoloharemosseleccionandoenprimerlugartodalamatrizdedatos(desdeA2:C9).

    Veamosqueaqucomenzamossealandoelrea(A2:C9),luegofuimosalmenformatoformatocondicional,ydentrodelreadedefinicindeformato,aplicamoscomocondicinladependenciadeunaFrmula,ydentrodelrangodondeseevalalafrmula,establecimosunareferenciaalaceldaC2.NtesequelaceldaC2lareverenciamosaplicandoenformafijalacolumnayvariableparalafila($C2)yaqueelformatocondicionalloaplicarparacadaunadelasfilasmarcadas(desdefila2afila9)peroloaplicarsiemprebasndoseenelvalordelacolumnaC.AsuvezesimportantenotarquelaceldaalaquerefieretodaformuladelformatocondicionalDEBERSERSEALADACONELMOUSEPARAQUENOLOTOMEENFORMATOTEXTOYAGREGUEAUTOMATICAMENTECOMILLASALASINTAXIS.Delamismamaneraquelavistaanteriormentepodramosaplicarvariascondicionalesenesteformato,perosiempreconlalimitacindehasta3condicionesaplicadas.Comovemosacontinuacin:

  • Uncomentarioadicionaleselhechodequeparaeliminaralgunadelascondicionespropuestasenelformatocondicional,simplementevolvemosaseleccionarelreaalaquelequeremosquitarenestecasoelformato(A2:C9)yluegonosdirigimosnuevamentealmendeformatoformatocondicional,yseleccionamossobreelbotneliminar:

    Comovemostenemoslaopcindeeliminarunadelascondicionespropuestas,solo2,otodaslascondicionesquehayamosdeterminado.Esimportantesealarelrangodeantemanoyaquesino,Excelnoencontraraenqueceldasseaplicelformatocondicional.

  • EnelsiguienteejemplosemostrarestaherramientaaplicadaconfrmulasdeExcel,ylaideaserqueautomticamentequedenmarcadosloschequesvencidosalafechaactual(lafechaactualsecalcularmediantelafuncinHOY()).

    Enestecasoseleccionamosenprimerlugarlamatriz(A2:D5)yluegoloquehicimosfueaplicarelformatocondicional,dondelacondicindependedeunafrmulayenlamismadefinimoslaceldaC2enlacualfijamoslacolumnaydejamoscomovariablelafila($C2)ycomparamosconeloperadormenoroigualalresultadodelafuncinHOY(),lacualnosobtendrenformaautomticalafechaactualdelsistema.BSQUEDASDEINFORMACINMencionamosenunejemploanteriorquemediantelafuncinBUSCARVpodiamosrealizarbsquedasenmatrices,yextraerdelasmismasundatodedeterminadacolumnaenparticular.EnesteejemploveremosnosolamentelaaplicacindeBUSCARV,sinotambinlafuncinBUSCARHylaslimitacionesquetenemosenelusodedichasfunciones.

    EnestecasovemoslafuncinBUSCARV,aplicadaparabuscarenbasealcdigodelartculoelstockdelmismo.Medianteelpegadoespecialrealizaremosuntrasportededichamatriz,delasiguientemanera:

  • 1. SeleccionaremosmedianteelMousetodalamatrizdedatos(A1:C9)2. BotnDerechoCopiar3. SeleccionaremoslaceldaE14. BotnDerechoPegadoEspecial5. EnlasopcionesseleccionaremosTrasponer(comolovemosenlapantallaa

    continuacin)

    Veamoscomoquedatranspuestalamatrizoriginal:

    EltemadetransponerlamatriztambinnosservirparaverlaaplicacindelafuncinBUSCARHquenospermitirextraerelcontenidodeunaFILAenparticulardelamatriz.EnestecasoenlaceldaE6,utilizaremoslafuncinBUSCARH,paraquealdigitaruncdigodeartculo,nosobtengaladescripcindelmismo(fila2delamatriz).

  • Porotrolado,unadelasrestriccionesimportantesquehayquedestacartantoenelBUSCARVcomoenelBUSCARHeselhechodenocontarconlaposibilidaddebasarmeenundatobuscadoyquererobtenerunacolumnaalaizquierdaenelordendelamatriz,ounafilahaciaarribadeldatobuscadoenelcasodeBUSCARH.Porejemplosienelejemploanterioryomebasoenladescripcin(comodatobuscado)yenbasealadescripcinpretendoobtenerelcdigodedichoartculo.Veamosporlotantolaaplicacindedosfuncionesquenospermitirnsolucionarestetema.LasfuncionessonINDICEyCOINCIDIR.Laaplicacineslasiguiente: Elresultadoser5(Nrodendice)EnestecasoaplicamoslafuncinCOINCIDIR,ydentrodesusargumentoscolocamos,elvalorbuscado,endichoejemplolaceldaA13,dondeelusuarioingresladescripcindelartculo,comosegundoargumentoindicamoslacolumnaB(rangoB2:B9)queesdonderealizaremoslabsquedadedichadescripcin,yporltimocomotercerargumentoelnmero0queestindicandoquelacoincidenciadebeserexactaconeldatobuscado.

  • ElresultadodelafuncinCOINCIDIRser5,queeslaposicindeldatobuscadoenlalistadevalores.Osealadevolucinsiempremeladaenelnmerodendicedeldatobuscadoenlanominadevalores.PorotroladosiyoaplicolafuncinINDICEdelasiguienteforma:

    EncuantoalafuncinINDICElosargumentosson,lamatrizdebsqueda,dondeaqusealelanominadecdigosdeartculos,ycomosegundoargumentoelnmerodefiladelndicequedebebuscar,enestecaso5.Estenmero5loobtuveviendoelresultadoobtenidoporlafuncinCOINCIDIReneldatoanterior.Porlotanto,yresumiendo,estopodrasersimplificadoenunasolacelda,delasiguienteforma:

    LafuncinINDICE,meextraeeldatodeunamatrizdeacuerdoalaubicacindeestedatoendichamatriz.MientrastantolafuncinCOINCIDIRloqueesthaciendoesbuscandoeldatoenunamatrizdeinformacin,ybuscandolaposicindeestedato,conunacoincidenciaexacta.

  • FUNCIONESDEFECHAYHORA

    AplicaremosenesteejemplolasfuncionesdefechayhoraquenosproveeExcel.Paracomenzar,siyoquisieraobtenerlosdascorridosenqueseimplementcadaunadelastareas,tenemosqueentenderqueTODAfechaqueingresemosenExcel,estafechalalecturaquetendrserennmerodedas,comenzandoconelnmero1correspondienteal01/01/1900.Porlotantosienunaceldayocolocolafuncin=HOY()yestamedevuelvelafechaactual,supongamos17/10/2007,enrealidadelcontenidoREALdelaceldaserelnmero39372.Bastaconcambiarelformatodelacelda,aunformatonumricoyvemoselresultado.Entonces,siyonecesitosaberlosdasquetomcadatareasimplementepuedorestarlasceldasdecolumnaCycolumnaB,ytengoelresultadoesperado.(NOOLVIDARASIGNARFORMATONUMRICOALACOLUMNAD,paraobtenerencantidaddedas).

    Hastaaqunohemosaplicadoningunafuncinenparticular.Eltemasedacuandotengoquecalculardashabilesentrelafechadeinicioyfechadefin.Parautilizarestetipodefunciones,ExcelnosproveedeCOMPLEMENTOS.EnestecasodebemoshabilitarelCOMPLEMENTOdeHERRAMIENTASPARAANLISIS,delasiguientemanera:

    EnelmendeHerramientasComplementostendremoslaposibilidaddeverloscomplementosquetenemosypodremosmarcarlosquenecesitemos.RecordarquetodosloscomplementosquemarquemosquedarnhabilitadosdeahoraenmsenTODASlassesionesqueiniciemosconExcel,dentrodedichaPC.

  • EnestecasohabilitamoselCOMPLEMENTOdeHERRAMIENTASPARAANLISIS,queeselquenosproveerdelasfuncionesnecesariasaaplicar.ParaelclculodedashbilesutilizaremoslafuncinDIAS.LABEndichafuncinlosargumentossern=DIAS.LAB(FECHAINICIO;FECHAFIN;[FERIADOS])

    ElargumentodeFERIADOSesopcional,yaquepodramosomitirloylafuncindetodasmanerasmerealizaraelclculo.LaideaesquealtenerelargumentodeFERIADOS,nosoloexcluyadelosdashbilessbadosydomingossinotambinlosferiadosqueaparecenenlanmina.Podramoscomprenderdentrodeestanminaferiadosnolaborables,ylaborables,esoloseleccionarquienestacargodeldesarrollodelaplanilla.NoolvidemosfijarelrangodondedispusimoslosFERIADOSyaquealcopiarlafrmulasedebecontemplaresterangocomoFIJO.

  • Enelsiguienteejemplovamoscontemplarlosdasparalaentregadedeterminadospedidos.Silosdasfuerancorridossimplementedigitamos:=B2+C2

    PeroenelcasodequeapartirdelafechadepedidoyoquieraagregarciertacantidaddeDIASHBILES,aqueltemacambia,yaplicaremosparaestolafuncin:DIA.LAB(FECHAINICIO;DIASLABORALES;[FERIADOS])

    Loquenosimplementadichafuncineslaposibilidaddequeaciertafechaseleagreguenoseledescuentenciertacantidaddedashbiles,agregandocomoargumentoopcionallosferiados.Recordarque,paraestoscasos,tambinpuederesultarcomnquerervisualizarapartirdedeterminadafecha,eldadelasemanaalaquecorresponde.ParaellotenemoslafuncinDIASEM,que,apartirdeunafechanosdicequdadelasemanacorresponde.

  • VeamosquelafuncinDIASEM,nosdevuelveunnmerocorrespondientealdadelasemanaquenoscaeesafecha,desdeel1paradomingo,hastael7parasbado.Siquisiramosqueestonosdeexactamenteenletraseldadelasemana,bastaconcambiarelformatodelaceldaparapersonalizarlocomovemosacontinuacin:

    Aldarbotnderecho,formatosobredichasceldasenlasqueaplicamoslafuncinDIASEM,vamosaPersonalizada,yenelTipo,podremosoptarporDDDDparaquenosdeenletraseldacorrespondientedelasemana.Nota:sihubiramosescritoDDD,nosdaralaabreviacindeldadelasemana.

  • TrabajandoconHORASVeamosenlasiguienteplanillaenlaqueingresamosloshorariosdeentradaysalidadeunempleadoalaempresa.Nosepresentanproblemas,alrestarencadadadelasemanalashorasdesalidaylasdeentrada.Ahoraalmomentodecalculareltotaldehorasqueesteempleadorealizentodalasemana,veamosloquesucede:

    EnestecasoaplicamoslafuncinSUMAparatomarencuentaelrangodehoras,ypoderobtenereltotaldehoras.PeroExcelmuestraunresultadoquenoesdeltodocorrecto.Enrealidadelclculointernamentelorealizacorrectamenteperoelresultadoloexpresaendas,yporlotantoestosera1da,19horas,y14minutos.Lonicoquehacemosescambiarelformatodelacelda,paraquereflejeelresultadoenTOTALdehoras.Veamoscomorealizarestepaso:

    Almomentodecalcularelpagoarealizar,tomolaceldadeltotaldehoras,multiplicopor24parapasarelresultadoahoras,yluegoporelpreciohora.Recordarquemasalldelcambiodeformatoquehicimos,internamenteExcelsiguereconociendodichaceldaenterminodedasynoenterminodehoras.

  • BUSCAROBJETIVOYSOLVEREstasdosherramientasnosservirnendeterminadasocasionesenlasquequeramosrealizarprevisionesoestimacionesenExcel.Pasemosalsiguienteejemplo:

    Enestecasomanejamosunejemplodondeunrestaurantequevendecaf,tienesupreciounitarioen30pesos,yatravsdelacantidaddetazasvendidasgeneraeltotaldelarecaudacin.DebemostomarencuentaqueestaestructurasedebecontemplarparalaaplicacindeBUSCAROBJETIVO,dondeunafrmuladebe

    generarladependenciadeunconjuntodefactores(celdasdependientes)queresuelvenelesquema(enestecasolarecaudacindependedelacantidaddetazasvendidasydelpreciounitario).Parautilizarlaherramienta,vamosaMenHerramientasBuscarObjetivo:

    Enlapantalladeconfiguracin:Definirlacelda:enestecasoB3,celdaquecontienefrmuladentrodelaplanilla.Conelvalor:vamosadefinircomovalor6000pesos(totalderecaudacinestimada,oprevisinderecaudacin).Paracambiarlacelda:B2(celdaqueactacomovariabledelsistema,yquecalcularautomticamentelaherramienta)

  • Enestecaso,yopodrahaberresueltoelsistemaperfectamentemedianteunaregladetressimple,peroencasosmscomplejoscomoelquevemosacontinuacinelclculodelaestimacinseraposibleconmayoresfuerzo:

    Enestecasoplanteamosunejemplodondeseotorgaunprstamosde20000aunatasaanualdel8%ydondesepagarn12cuotas.Lafuncinpagocomovemosnoscalculardeformaautomticalacuotaapagar,queendichocasoserde1739(Nota:elvalorresultantesernegativoyaquelasfuncionesfinancierastomanlosegresosconestesigno).Ahora,veamosquesucedesienestecasoquisiramosestimarcualseraelmontodelprstamoquepodramosobtenersisemantienenlascondiciones,perosabemosquepodemospagarunacuotamximade1500.Paraesto

    aplicamoslaHerramientaBuscarObjetivodelasiguientemanera:

    Elsistemanosresuelveydirquemedianteelpagodeunacuotade1500ymanteniendolascondiciones,llegaremosaobtenerunprstamode17243.Laherramientasiempretrabajaconunavariableacalcularyunafrmulacuyoresultadofinalserestimadoporeloperador.Veamosqueenesteltimoejemplonuestrosupuestoesestimarunvalordecuotade1500(lasequedebesernegativo,portomarsecomounegresofinanciero),ymanteniendolascondiciones,secalcularelmontdelprstamoalquelapersonapodracceder.EnelcasodelaherramientaSOLVER,actacomoCOMPLEMENTOdeExcelporlotantohayquehabilitarlo,dentrodelmenHerramientasComplementos,ytildarlacasilladeverificacinencasodequedichaherramientanoestuvierepreviamenteinstaladaenlaPCqueestemosmanejando.

  • SOLVEREstaherramientaessimilaraBuscarObjetivoconlasalvedaddecontarconlaventajaderesolversistemascondeterminadacantidaddevariables,yconlaposibilidaddeestablecerrestricciones,queacerquenelsistemaaunarealidadplanteada.Veamoselsiguientecaso:

    Enestecasoestablecimosunaplanillasimilaralaplanillaquetrabajamosanteriormente.SetratadeunrestaurantequevendevariostiposdeCaf,entreellosCafcomn,CafCortado,CafCapuchino.AplicamosenelmenHerramientasSolverlaconfiguracindedichosistema.Entonces:enCeldaObjetivoestablecemoslaceldaquevamosaestimar,enestecasolaceldadeltotalrecaudadoporelrestaurante,luegoestablecemoselimportedelvalorestimadoparadichacelda.Enlareferenciadecambiandolasceldasestablecemoslasceldasquesevanacalcularautomticamenteporlaresolucindelsistema,enelcasonuestromarcaremosmediantelateclaCTRLcadaunadelasceldasquetienelacantidaddetazasdecadatipodecaf.Porltimo,enelreainferiorizquierdadeestapantallaestablecemosmedianteelbotnagregar,la/lasrestriccionesdelsistema,enestecasonuestranicarestriccinfueagregaralaceldaB10quecontieneeltotaldetazasvendidasdecafcapuccino,queellimiteesquedichaceldacontengaunvalormenora50.Podemosagregarmltiplesrestriccionesyaquecadavezquequeramosagregarunarestriccinmas,solopresionaremosenelbotnagregarloquenospermitiriragregandonuevasrestricciones.Tambintenemoslaposibilidaddecambiar,yeliminarrestriccionesmediantelosbotonesasociados.UnavezqueterminamosladefinicindedichapantallamedianteelbotnRESOLVER,elsistemanosgeneraunasolucinparaelesquemapropuestoynosmuestralasiguientepantalla:

  • Elesquemaquedaresueltoyvemoslasolucinfinalenlaplanilla.PodemosenestapantallamarcarlaopcindeUtilizarlasolucinencontradaporSOLVER,otambinpodemosRestaurarvaloresoriginalespararegresaralestadoinicialdelaplanillaantesderesolverelesquema.Lasaplicacionesdedichaherramientassonmuchsimas,tantoenmbitosdeestadstica,probabilidad,comotambinenmateriadeMatemticas,IngenierayEconoma.PodemosvervariosejemplosaplicadossibuscamoselarchivoSOLVSAMP.xlsqueseencuentraenC:\ArchivosdePrograma\MicrosoftOffice\Office10\SAMPLES\

  • MDULO

    ANLISIS

    DE

    INFORMACIN

  • Mdulo:AnlisisdeInformacinEnestemduloseverlaaplicacindeherramientasvolcadasalanlisisdeinformacindentrodeExcel.Enprimerlugar,conunejemploseaplicarelusodelosdiferentestiposdefiltrosquenosproveelaherramienta.Veamoselsiguienteejemplo:

    Enestaplanillaaplicaremoselprimertipodefiltro,queserelAutofiltroyquenospermitiraplicarfiltrosautomticosenlaplanilladeunaformamuysencilla.ParaaplicarlobastarconposicionarnosencualquierceldadenuestrabasededatosyluegomedianteelmendeDaotsFiltroAutofiltrocomenzaremoslaaplicacindelmismo.

    Laplanillanosquedardelasiguientemanera:

    Veamosenprimerlugar,quecuandonosotrosmarcamosenelmendedatosfiltrosautofiltro,esteactacomounsubrayado,dondepodemostildarydestildarestaopcin,encasoquequeramosdejadeutilizarelAutofiltroenalgnmomento.Elautofiltronosdaestaopcindelcuadrodesplegableenelttulodecadacampodelabasededatos.Bastarconpincharenelcuadrodesplegableparapoderseleccionarelcriterioaaplicarparafiltrarlainformacinsobredichocampo.Porejemplo,sienestaplanillayoquisierasoloverlasventasdelvendedorDaz,soloseleccionarDazenlasopcionesdelcampo

    Vendedores,yestomeaplicarautomticamenteelfiltrocondichocriterio.Acontinuacinsedaelejemplodecmoaparecelaplanillaconelfiltroaplicado:

  • Enelcasoanteriorelsistemaenformaautomticaocultalasfilasdelrestodevendedoresydejasolovisibleslasventasdelvendedorseleccionado.PodemosasuvezaplicarotrofiltroenformasimultaneasobreotrodeloscamposcomoporejemploelcampodeRegin,solobastarconseleccionardedichocampolaopcindelareginquenecesitaremosvisualizarylaherramientaaplicarestefiltroenformatotalmentedinmica.

    QUITARAUTOFILTROSRESTABLECERBASEDEDATOSEncasodequeenalgnmomento,apliquemosvariosfiltrosdeacuerdoavarioscamposyenalgnmomentoqueramosquitardichofiltro,existendosopciones:podemosquitarelautofiltrodirectamenteyendoalmendedatosfiltrosautofiltro,otambinmedianteelmendedatosfiltrosmostrartodos(estomuestranuevamentetodoslosdatosoriginalesdelabasededatosperomantieneelautofiltro.

  • CRITERIOSPERSONALIZADOSTambinmuchasvecessepuededarelcasodequeelcriterioparafiltrarlainformacinnoestedisponibleenformadirectasobreelcampoquequeramosfiltrar,yporlotanto,delcuadrodesplegablerecurrimosalaopcindePersonalizar,paraestecampo:

    CuandoseleccionamoslaopcinPersonalizar,podremosaplicarcriteriosunpocomasavanzadosparafiltrardichocampo:

    Enestecaso,comonosposicionamossobreelcampoVentas2005,yseleccionamoslaopcindePersonalizar,allpodemosverqueennuestrocasoaplicamosdoscriteriosquesealanqueelfiltrosertomarnicamenteVentas2005convaloresmayoresoigualesa80000ymenoreso

  • igualesa100000.Podemosverasuvezqueexistenmltiplescriteriosquepodemosaplicarsobredichocampo.Laplanillaluegodeaplicardichofiltroserverdelasiguientemanera:

    Undetallesumamenteimportanteatomarencuentaeselhechodequesiendichaplanillaquisiramosenalgnmomentoobtenerlasumadeventasdel2005peronicamentedelosdatosvisiblesnopodemosaplicarlafuncin=SUMA(C2:C15),puestoquetomaratodaslasfilas(tantovisiblescomonovisibles).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,losresultadosdelafuncinSUMAySUBTOTALESaplicadosparadichorangodeceldas(C2:C15).

  • NOTA:TambinpodramoshaberutilizadoelbotnDichobotnaplicaautomticamentelafuncincorrectasegnencuentreceldasocultasonoeneserango(aplicafuncinSUMAencasodequenoexistanfilasocultas,yaplicaenformapredeterminadaSUBTOTALEScuandoencuentrafilasocultasenelrango).ElautofiltrotambinnospermitefiltrospersonalizadosenelcasodecolumnascondatostipoTEXTO,porejemplosiyoquisieraobtenerlosdatosdeventasdeaquellosvendedorescuyoapellidotermineconletraS.

    EndichoejemploseaplicasobreelcampoVendedores,elcriteriodepersonalizacinyluegoelfiltroquedeterminaquedichocampomuestrenicamenteregistrosqueterminaconletras.

  • Hayunalimitacinenlaaplicacindelautofiltroyes,justamentelaconsignaparapasaralsiguientetema.Nopodemosmedianteelautofiltroaplicarcriteriosquecomparencamposporejemplo,enelsiguientecaso,vamosaaplicarunfiltroquenosexponganicamentelasventasdel2005superioresalasdel2006.EsololograremosconelFiltroAvanzado:

    Recordemosqueparapoderaplicarelfiltroavanzadodebemoshacerlosintenerlaopcindeautofiltroencendido.Porlotantositenemoselautofiltro,debemosapagarloyendoaDatosFiltroAutofiltro.ParaaplicarelfiltroavanzadovamosaDatosFiltroFiltroAvanzado,yluego:

  • VeamosquecomocriteriosaplicamoslacomparacinentrelaceldaC2yD2,dondesolocolocamoslafrmula=C2>D2Enelcuadroquenosaparececuandoaplicamoselfiltro:ComoRangodelalista:A1:D19(marcamoslabasededatoscompleta)RangodeCriterios:F7:F7(marcamoslasdosceldas,elttulodelcriterio,ylaceldaquecontieneelcriteriopropiamentedicho)Veamosqueendichocuadroenestecasoaplicamoslaopcinqueaparecepordefectoquees:Filtrarlalistasinmoverlaaotrolugar,yaqueloquequeramoseraaplicarelfiltrodirectamenteenlabasededatos.Enlasiguientepantallaseexponecomoelfiltroaplicadichocriteriodirectosobrelabasededatos:

    Aquvolvemosacomentarelhechodequesiqueremosobtenerlasumatoriadeventasde2005o2006,nodebemosusarlafuncinSUMA,puestoquedeberamosutilizarlafuncinSUBTOTALES.PararestaurarlabasededatosvolvemosalmenDatosFiltroMostrarTodo,comosepresentaenlasiguientepantalla:

  • Enelcasodequereraplicarfiltrosenformasimultnea,tendremosquearmardichoscriteriosenlamismalnea.Enelsiguienteejemploveremoslaaplicacindeunfiltrodondevemoslasventas2005superioresalasdel2006,perosolodelaReginSur,veamosnosololaaplicacindelfiltro,sinoelarmadodedichoscriterios:

    AquveamosquecomoRangodeCriteriosmarcamosF6:G7,yaqueloscriteriosenestecasoson2,unoqueaplicasobreelcampoRegin,dondeseextraesolodatosquecoincidanconReginSUR,yporotrolado,elsiguientecriterio(ledimosunttuloarbitrario,enestecasoCriterio),dondehicimoslacomparacindeunodelosregistrosdeventas2005contraundatodeventas2006.Asnosquedaranlosdatosfiltrados,deventasdeReginSUR,dondelasVentas2005superanalasdel2006:

  • Veamosquesucedesiloscriteriossonlosmismosperonorespetamoseltemadequeseanenlamismalnea:

    AqusepuedeverqueaplicamosunfiltrodondelaReginesSUR,peronohacealmismotiempocomparativodeventasentreelao2005y2006,mientrasqueparaelrestodeventasdeotrasRegionesSaplicaelcriteriodecompararlasventas2005,yquedichasventasseansuperioresalasdelao2006.Podemosseguiraplicandocriterios,perosiemprequeapliquemosvarioscriterios,tienenqueestararmadosdiferenciandoloscamposdelabasededatos,perotambinenelmismoordenqueaparecendichoscamposenlabasededatos.

  • Veamosahoraenunejemplodondeapliquemosestemismofiltroperoconunaextraccindeunasubbasededatosparanomodificarlabaseoriginal:

    EnlapantallaquenosapareceenestecasomarcamoslaopcindeCopiaraotrolugar,ynuevamenteen:Rangodelalista:A1:D19(nuevamentemarcamostodalabasededatos)Rangodecriterios:F6:G8(aqumarcamostodosloscriterios,enestecasolosdoscriterios)Copiara:Aqumarcamosunaceldacualquieravacayaqueapartirdeahsevaagenerarlasubbasededatosconlosdatosquecumplanconloscriteriospautados.SiendichoejemploplanteamosquelasubbasededatossoloobtengaloscamposdeVendedores,Ventas2005yVentas2006excluyendolaRegin,deberamosarmarapriorilosttulosdeloscamposquevanaformardichasubbasededatos:

  • Aqumarcamosenelcuadro,enelrenglnCopiara:F11:H11(celdasdondeseencuentranlosttulosdelasubbasededatosquesevaaarmarconlosdatosfiltrados)Acontinuacinvemoselresultadofinaldedichofiltro:

  • TablasDinmicasUtilizandolabasededatosdelejemploanteriorgeneraremosnuestraprimeratabladinmica.Estaherramientanospermitircruzardediversasformasinformacindeunabasededatos,tantoseaunabasearmadaenExcel,comotambinenfuentesdedatosexternas(comoarchivosdetexto,basesdeAccess,SQL,DBase,etc.)ParacomenzarnosguiaremosmedianteelAsistente,queencontramosenDatosInformedeTablasyGrficosDinmicos,comovemosenlasiguientepantalla:

    Enlaprimerapantalladelasistentetendremoslasopcionesparaelegirelorigendelosdatosquesevanatomarenlatabladinmica,yendichapantallaenlaparteinferiorelegimoseltipodeinformeaobtener,yquepuedeserTablaDinmicaoGrficoDinmico:

  • EnestaprimerapantallanosotroselegimoslasopcionesquevienencomopredeterminadasyaquelabasededatosnuestraprovienedeunalistaquearmamospreviamenteenExcelyelinformedesalidaesefectivamenteunatabladinmica.Presionamosenelbotnsiguienteparapasaralasegundapantalla:

    ElRangoeselqueseformaportodanuestrabasededatos,recordarqueenelcasodequerertomarsolodeterminadoscampos,mediantelateclacontrolpresionadapodemosmarcarsolodichoscamposparaqueformenpartedenuestratabladinmica.Pasemosconelbotnsiguientealatercerapantalladenuestroasistente

  • Enestatercerapantalladelasistente,podremoselegirlaubicacindenuestratabladinmica,lacualpodemosestablecerenunahojadeclculonueva,otambinenunahojadeclculoexistente.Tomemosencuentaqueenelcasodequemarquemoshojadeclculoexistente,debemosmarcarunaceldaqueformarelngulosuperiorizquierdodenuestratabladinmicaporlotantotenerpresentequedesdeestaceldahaciaabajoyhacialaderechaexistalugarvacoydisponibleendichaplanilladeclculo.Veamoselresultadoqueobtenemosaldarfinalizar(enestecasoseleccionamoslaopcindevolcarlatabladinmicaenunahojanueva):

    Todatabladinmicaseformarpor4cuadrantesquesern:

    CamposdeFila CamposdeColumna CamposdeDatos CampodePgina

  • Podremosarrastrarcualquieradenuestroscamposdelabasededatosquetenemosenlalistaqueaparecealaderechahaciaelreadenuestratabladinmicadondequeramosdisponerdichocampo.Essumamenteimportantetenerpresenteenunprincipiocualeselresultadoquesedeseaobtener,paranoperdernosentretantasopcionesquetenemosenloscamposquetenemosenlabasededatos.Enesteprimerejemplovamosapedireltotaldeventasdel2005paracadaunodelosvendedores:

    Aquloquehicimosfuearrastrar(conelbotnizquierdopresionado)elcampodevendedoresalreadeFila(vemosquecadavendedorapareceenunafiladiferente),yllevamoselcampodeVentas2005alreadeDatos(vemosquelasventasde2005aparecencadaunaendicharea).HayquetenerpresentequeExcelesrealmentesensiblerespectoacadaunadeestasreasporlotantotratemossiempredetrasladarcadacampohaciaelreacorrespondienteenlaformamasexactaposible.Encasodequecambiemosdeopininynosparezcamejorobtenereltotaldeventas2005perodecadareginynodecadavendedorpuedotrasladarelcampodevendedoresderegresoalaListadecamposdetabladinmica,ytrasladaracontinuacin,elcampodeReginnuevamentealreadefila:

  • Aquvemosquequitamoselcampodevendedores,yahoravamosacolocarelcampodeRegin,solovolvemosaarrastrardichocampoalreadefilasynosquedacomovemosacontinuacin:

    Endichoejemplovemosqueloquelogramosenesteltimocasoestotalizarlasventasdel2005paracadaunadelasregiones.Perovolviendoalcasoanteriorpodramosquererobtenerambosresultados,osealasventasde2005decadavendedorytambinporregin,comopresentamosenlasiguientepantalla:

  • EnestecasotrasladamoselcampodeVendedoresalreadeFILAyelcampodeRegionesalreadeCOLUMNAS.Elcampodeventas2005queddispuestocomoantesenelreadeDATOS.FILTROSENTABLASDINMICASTambintenemoslaopcindeaplicarfiltrosenlatabladinmica,medianteelcuadrodesplegabledelosttulosdelcampofila(enestecasovendedores)ytambinenelttulodelcampodecolumna(enestecasoRegin).

    Enestecasoaligualquecomohacamosenelautofiltro,elegimosloscriteriosdefiltradoquevamosaaplicarsobredichocampo.EnelcasoanteriorfiltramosparaquesolodesplieguelasventasdelosvendedoresMoralesyVega,quesonlosquedejamostildadosenelcuadrodesplegable.

  • Siquisiramosobtenerademsdelasventasdel2005,tambinlasdel2006,simplementeagregamosesteltimocampoenelreadedatos:

    Vemosqueaquobtenemosdoscamposenelreadedatos,ytenemoslostotalestantoporvendedorcomotambinporregindelosaos2005y2006.Podemosaplicartambinunfiltroquenosmuestreporejemplodeterminadaregin(SURporejemplo):

  • Cadafiltroaplicadosereflejainmediatamenteenelresultadodenuestratabladinmica.ACTUALIZACIONESENTABLASDINMICASApliquemosenprincipioelprimertipodeactualizacinquesepuededar:

    Cambiandodatosenlabasededatooriginal.Tomemosalgndatodelabasededatosoriginalymodifiquemosestedatosustancialmenteparaqueveamosreflejadoestecambioenlatabladinmica.

    Veamosqueenestecasosemodificelprimerregistrodelabasededatos,sinembargocuandoregresamosalatabladinmica,estapermaneceexactamenteigualquecomoestabaantesderealizarelcambio.

  • Paraqueelcambioserealiceyseveareflejadoenlatabladinmicadeberemosdarclicenelbotndeactualizar(botnconelsignode!)enlabarradeherramientasdetabladinmica.EncasodenotenerdichobotndisponiblepodremosrecurriralmenVERBARRADEHERRAMIENTASTABLASDINMICAS,yluegodarclicsobreestebotnpareverelcambiorealizado:

    Alpresionarsobreelbotnvemosquelatabladinmicarecalculalosvaloresynosmuestraeldetallequevemosacontinuacin:

    Hayuntemamuyimportanteadestacar,yeselhechodequelatabladinmicanoessensiblealaincorporacindenuevosregistros(nuevaslneas)enlabasededatosoriginal,ascomoalainsercindecolumnasenlabasededatosoriginal.Acontinuacinharemosreferenciaalconceptoymetodologaamanejarcuandoagregamosnuevosregistrosenlabasededatosoriginal.

  • ACTUALIZACINDETABLASDINMICAS(CONINSERCINDEDATOSENLABASEDEDATOSORIGINAL)Enesteejemplovamosaagregarunalneaadicionalenlabasededatos,haremosreferenciaaunaventaenunareginquehastaahoranohabamoscargado:

    Elltimoregistrofueagregadoenlabasededatos,sinembargocuandoregresamosalatabladinmica,stanoreflejaelcambioquerealizamosenlabasededatos.Peronosencontramosquepresionandoelbotndeactualizarenlabarradeherramientasdetabladinmicatampoconosreflejaelcambio.Paraqueelcambiosereflejeennuestratabladinmicarealizaremoselsiguienteprocedimiento:

    1. Vamosalabarradeherramientastabladinmica,medianteelmenVERBARRADEHERRAMIENTASTABLADINMICA

    2. Unavezquetenemoslabarradeherramientasdisponible,vamosalbotnTablaDinmica,yallelegimosAsistente:

  • Cuandopresionamosenlaopcindeasistente,estenosdespliegalaltimapantalladelasistentedetablasdinmicas,alpresionarelbotndeatrsvemosquenospermiteredimensionarlabasededatosoriginal:

    EnestecasomarcaremoselrangoA1:D20,agregandodeestamaneraelnuevoregistroalabasededatos,luegopresionamosenelbotnsiguiente,pasandoalaltimapantalladelasistenteyporltimofinalizar.

  • Vemosacontinuacinlaimagendenuestratabladinmicaactualizadamedianteelasistentedetablasdinmicas:

    Agreguemosacontinuacinennuestrabasededatosoriginalunanuevacolumnaquenosreflejeelpasadondeserealizcadaunadelastransaccionesconloquelabasededatosquedardelasiguientemanera:

    Alpresionarelbotndeactualizarenlabarradeherramientasdetabladinmica,nosapareceenlalistadecampos,elnuevocampoPASquepodremosutilizarparaagregarenlatabladinmica:

  • AgreguemosdichocampoenelreadePginayveamoselefectoqueresultadeesto:

    Alagregardichocampoenelreadepginapodremosresumirlatabladinmicadeacuerdoadichocampo.Enelsiguientecaso,alseleccionarunpas(porejemploArgentina)veamoselefectoqueproducesobrelosdatosdenuestratabladinmica:

    Latabladinmicapasaahoraamostrarlasventasdecadavendedordelosaos2005y2006,tambinconlaposibilidaddeverladivisinporreginperoUNICAMENTEDELPASARGENTINA(queactacomofiltrodenuestratabladinmica).

  • CAMBIOSSOBRELASOPERACIONESDECAMPOSDEDATOSEnestecasoseguiremostrabajandoconlabasededatosdeejemploperovamosaaplicarotraoperacinsobreelcampodeventas2005,enlugardepedireltotaldeventas2005(sumadeventas2005)solicitaremoselpromediodeventas2005.Parasimplificarsolotrabajaremosconloscamposdevendedoresyventas2005:

    Aquporahorasolovemoslaoperacinsimpledondenosmuestralasumadeventas2005,veamoscomohacemosparacambiarlaoperacinpredeterminadadelcampodedatos:

    1. Nosposicionamossobrecualquieradelosdatos,deimportesdenuestratabladinmicaypresionamoselbotnderechodelMouse,yallseleccionamoslaopcindeCONFIGURACINDECAMPO

  • 2. Enlapantallaquenosaparecepodremosseleccionareltipodeoperacinqueaplicaremos

    sobredichocampo:

    VemosquepodemosaplicarcomooperacinlaSUMA,CUENTA,PROMEDIO,MXIMO,MNIMO,PRODUCTO EnnuestrocasovamosaseleccionarcomoopcinPROMEDIO,paraquenosapliquedichaoperacinsobreelcampodeVentas2005.Tambinpodremosendichocuadro,sobrelalneadeNombre,ajustarelnombreareflejardedichocampo.

    Tenemoslaopcintambindeagregarelmismocampounsinnumerodevecesparaqueestereflejeoperacionesdiferentes.

  • Porejemplo,sinecesitoquelatabladinmicareflejelasumadeventas2005peroadems,nosproveadelpromediodeventas2005paracadavendedor.Arrastramosdosveceselcampodeventas2005haciaelreadedatos,ysimplementeaunodeloscamposlecambiamoslaconfiguracindecampo:

    Tambincuandorealizamoslaconfiguracindecampopodremostenermasopciones,comoporejemplodesplegarel%deponderacindecadaventa,conrespectoaltotaldeventasdelaocomopodemosveracontinuacin:

  • Enlapantalladeconfiguracindecampo:

    Latabladinmicanosmostrarelsiguienteresultado:

    Noolvidemosquepodramospresentarlosimportesdeventas2005,yluegoarrastrarnuevamenteelcampopararealizarestaconfiguracinparaqueademsdelosimportesreflejetambinlosporcentajesdeventas.

  • TABLASDINMICASCONIMPORTACIONDEDATOSDESDEACCESSVeamosenunejemplolospasosquedebemoscumplirsiqueremosarmarunatabladinmicaparaanalizarinformacindeunabasededatosquelaempresatieneenMicrosoftAccess.Comenzamoselasistentedelamismamaneraquelohicimosantes,medianteelmendeDatosInformedeTablasyGrficosdinmicos

  • Enlaprimerapantalladelasistente,elegimoscomoopcinFUENTEDEDATOSEXTERNA:

    Alpresionarelbotnsiguiente,vemosqueelasistentecambiaconrespectoalqueveamosenelcaptuloanterior:

    PresionandoelbotndeObtenerDatos,seleccionamoselOrigendeDatos(eselsoftwaredondeestalojadalabasededatos).Muchasvecesseconfundeestapantallaconlaeleccindirectadelabasededatos.

  • SeleccionamosenestecasoMSAccessDatabase,queeselsoftwaredondetenemoslabasededatos,yaldaraceptar,podremosrecorrerlascarpetashastaencontrarlabasededatos,enestecasorecorremosC:\ArchivosdePrograma\MicrosoftOffice\Office11\Samples

    Cuandoseleccionamoslabasededatos,enestecasoNEPTUNO,nosaparecelasiguientepantalla:

    Aqunosreflejalasdiferentestablasdelasqueestcompuestalabasededatos,ydelaquepodremostomardeterminadastablas,completas,porejemploladeCLIENTES,otambin

  • podremospresionarenelsigno+paradesplegarloscamposdelosqueestcompuestalatabla.EnelsiguienteejemplotomaremosdeterminadoscamposdelastablasdeClientes,Productos,Categoras,yProductos.

    Cadaunodeloscamposquequeramosincorporarenlatabladinmicalopasaremosalreaderechadelapantalla,enelreadecolumnasenlaconsulta.Cuandopresionamoselbotnsiguiente:

    Enestapantallatendremoslaposibilidaddefiltrarlainformacindeloscamposdeacuerdoaunoovarioscriteriosqueseleccionemos.

  • Enlasiguientepantallapodremosseleccionarunordendeterminadoaestablecer,deacuerdoauncampoqueseleccionemos,enformaascendenteodescendente.

    Enlaltimapantallaseleccionamoslaopcinqueapareceenformapredeterminada,ydevolvemoslosdatosdirectamenteaMicrosoftExcel,yledamossiguienteenlapantalladelasistente:

  • Llegamosenestaetapafinal,alamismapantalla,queenelcaptuloanteriordondetendremoselesqueletodelatabladinmica:

    Aqupodremosarmarlatabladinmicasimplementeajustandoloscamposyllevndolosalreadefila,readecolumnas,yalreadedatos.RecordemosquedesdeaqupodemoslograrlomismoqueyarealizamosenelcaptuloanteriorcondatosdeunabasededatosdeExcel:

  • GRAFICOSDINMICOSParagenerarunatabladinmica,yapartirdelamisma,reflejarungrficodinmico,simplementenosposicionamosencualquieradeloscamposdelatabladinmicaymedianteelbotnderechodelMousetendremoslaopcindegenerarelgrfico.Veamosenelsiguienteejemplo:

    MediantelaopcindeGrficodinmico,estenosgenerarenunanuevahojaelgrficodinmicoquesedesprendedelatabladinmicageneradaanteriormente.

  • DentrodelGrficodinmicopodremosajustarycambiardeposicincualquieradeloscampos,perosiempretomandoencuentaquealcambiarelgrficodinmico,tambincambiarenformasimultanealatabladinmicadelacualdepende.ElGrficodinmicotieneasuvez4reasdiferenciadas,yson:

    1. Camposdecategoras(enestecasovendedores)2. Camposdeserie(enestecasonotenemos)3. Camposdepgina(enestecasonoincluimosningunoan)4. Camposdedatos(enestecasoelcampoVentas2005)

    Enelsiguienteejemplovemoselcasodeteneruncampoencadaposicin:

  • MDULO

    GRFICOS

    PERSONALIZADOSY

    FORMULARIOS

  • MdulodeGrficosPersonalizadosyFormulariosDentrodeestemduloseverndiferentesopcionesalmomentodegraficarenExcelascomoopcionesdegrficospocoutilizadas,ycasosprcticosdondeapliquemosusosdegrficosparadiferentesactividades.Comencemosconungrficosencilloenelquesepretendagrficasexportacionesdeunproductoadiversospasesatravsde4aos.Nosbasaremosenlasiguienteplanilla:

    ParacomenzarnosposicionamosencualquieradelosdatosdenuestraplanillayvamosalasistenteparagrficosmedianteelmenInsertarGrfico

    Enlaprimerapantallaquenosdespliegaelasistenteparagrficostendremoslaposibilidaddeseleccionarlacategoradelgrficoquegeneraremosydentrodecadacategoratambinpodremosseleccionarlasubcategoradedichogrfico,comovemosenlapantallaacontinuacin:

  • VeamosquetenemosunbotndePresionarparavermuestra,que,dependiendoenquecategoranosposicionamosnosvaadarunaimagenpreliminardelgrficoquegeneraremosatravsdelalistaobasededatosquetenemosseleccionada.Alpresionarsiguiente,ypasandoalsegundopasodelasistente:

    Aqusedestacandospuntos,enprimerlugar,elhechodequeExceltomenformaautomticacomoRangodedatosdesdeA1:E6,incluyendoaqulosttulosdeamboscampos,perotomandolafila1comosifueraunaserieagraficar,yestonosgeneraunerror,yaqueaparecerunaseriequenocontieneinformacin(veamosenlamuestra).

  • Enestecasocorrigiendoelreaagraficarytomandodesdelafila2,oseamarcandocomoRangodedatosdeorigendesdeA2:E6,nosquedarlamuestracorrespondientealreaqueefectivamentedebemosgraficar.Sivemoslasopcionesdegraficarlasseriesen:FILAS,COLUMNAS,enformapredeterminadaExcelmarcalasseriencomocolumnas,yporlotantocadaaoformarunaseriedenuestrogrfico,encambiosiintercambiamosypasamosalaopcindeSeriesenFILAS,severdelasiguientemanera:

  • Enestecasoloqueestamosrepresentandosonlasventasdecadaunodelosaos(1,2,3,4)ydentrodecadaaolasseriesestnrepresentadasporlasexportacionesacadapas.AsuvezsidamosclicenlasolapadeSERIEenestamismapantallaveremoslosiguiente:

    Enestapantallapodremosdefinir:

    Nombre:Elrango(ocelda)dondeencontramoselnombredecadaserie(enestecasodecadapas)

    Valores:Elrangodeceldasdondeencontramoslosvalorescorrespondientesadichaserie(valoresdeexportacionesatravsdelosaosdedichopas)

    Rtulosdelejedecategoras(X):AquvamosasealarelrangoB1:E1queeselrangodondeencontramoslosttulosdelascategoras(enestecasolosaos)

  • Presionamosensiguienteypasamosal3erpasodelasistente:

    AqucompletamosenlasolapadeTtuloslosttulosdecadasectordelgrfico,enprimerlugarelTtuloGeneraldelgrfico,luegocompletamoselTtulodeEjeX,yporltimoeltitulodeEjeY.PasamosalasolapadeEJE:

    Aqupodemosmarcarodesmarcarlasopcionesquenospermitirnvisualizarlosejesdevaloresycategoras,otambinpodremosdejarlodesmarcadoencasodequequererocultardichosejesenelgrfico.

  • AlpasaralasolapadeLneasdeDivisin:

    Elefectoqueproducelascasillasdeverificacinenestasolapadecategoraseseldeagregarreferenciasparaidentificarlosvaloresenelgrfico,enungrficodelneas,yanivelestadsticoestoesfundamentalparatenerunareferenciamasprecisadelosvaloresquevemosenelgrfico.PasandoalasolapadeLeyenda:

  • Aquseleccionamoslaubicacindelaleyendadereferenciadeseriesdentrodelgrficoascomotambinpodemosdestildarlacasilladeverificacinencasodequererocultarlaleyendadelgrfico.

    EnlasolapadeRtulodeDatos,tendremoslaposibilidaddereflejarenelgrficolosNombresdelaseries(enestecasolospases),Nombresdelascategora(aosenestecaso),yValores(valorescorrespondientesacadadatograficado).Debemostenerpresentequemarcartodaslasopcionesmuchasvecespuederesultarcomplejoparapoderentendercorrectamentetantasintaxisdentrodelgrfico,ymuchasveceshacequeelgraficoquederealmentecomplejoparaunanlisisposterior.

  • Enestaltimasolapa,sinosotrospretendemos,dentrodelapantalladelgrficoagregarlainformacindelosdatosgraficados,yaseaporquelosmismosseencuentranenotraubicacin,oporquequeremostenerlosdisponiblesdentrodelgrfico,marcamoslaopcindeMostrarTabladeDatos,ydeesamaneranosquedanlosdatosincrustadosdentrodelgrfico.Alpresionarsiguiente,pasamosalpaso4delasistentedondeseleccionamosentonces,laubicacinqueledaremosalgrfico:

    Podemosubicarelgrficotantoenunahojanueva,comotambinpodemosubicarlocomounobjetodentrodelahojaactiva,olahojaqueseleccionemos.Finalmente,vemoselgrficodentrodenuestrahoja,elcualpodremosseleccionar,ydesdelosbordes,talcualcomosifueraunaimagencambiarsusdimensiones:

  • AREASDELGRFICOElgrficoestformadobsicamentepordiversasreas:

    readelgrfico(elfondoblancoquevemosdentrodelgrfico) readetrazado(elfondogrisenelqueposicionamoslasseries) Ttulodelgrfico(ennuestrocasoexportaciones) Series(ennuestrocasolascolumnas,queformanlasexportacionesacadapas) Ejedecategoras(ejex) Ejedevalores(ejey) Leyenda(cuadroquetienelarepresentacindelaseries) Ttulodelejedecategoras(Aosennuestrocaso) Ttulodelejedevalores(Importesennuestrocaso)

    Enelcasodequerercambiarcualquieradelasreasdelgraficorecordarquesimplementenosposicionamossobredichareayconelbotnderechonosdesplegarlasopcionespropiasdelreamarcada.Parapoderrecurriralamodificacindecualquieradelospasosquerecorrimosmedianteelasistente,nosposicionamossobreelreadelGrfico(reablanca)yconelbotnderecho:

    Tipodegrfico(paso1delasistentedondeseleccionamoslacategoradelgrfico) Datosdeorigen(paso2delasistentedondeindicamoselrangodedatos) Opcionesdelgrfico(paso3delasistentedondeindicamosttulos,leyendas,ejes) Ubicacin(paso4delasistentedondeseleccionamoslaubicacindeseadaparael

    grfico).

  • ModificacionesdeGrficosParamodificarelreadegrficosimplementedamosdobleclicsobredichareaynosaparecerlasiguientepantalla:

    Aqupodremosindicarnosololosbordesdelrea,permitiendoseleccionarelcolordelborde,elestilodelmismo,ascomotambinelgrosor,sinoquetambinpodremoscambiarlafuente(juntoconsuspropiedades),ascomotambinelfondodelgrfico(rea).Tambinpodemospresionarsobreelbotndeefectoderellenoparamodificarlosefectosqueapliquemossobreelfondodelgrfico,entrelosquepodemos:

  • Aplicardegradado,condiferentesefectosdelmismo,conuncolor,odos,conefectosdetransparencias,yademscondiversosestilosdesombreado.Podemosaplicartambintexturas:

  • AscomotambinindicarleconelbotndeOtraTextura,ybuscarelarchivodondeseencuentrelatexturaquequeramosdarlealreadegrfico.Podremosademsdeseleccionaruncolor,yefectodedegradadoaplicarunatramaenparticular:

  • Porltimosinosparececonveniente,tambinpodremosubicarcomofondodelgrficounaimagen,seleccionandolamismadesdesuubicacineneldisco:

  • Estemismotipodeefectossepuedeaplicarsobrecualquierreadelgrfico,porejemplotambinsobrelasseries,obteniendoentoncesungrficocomoelquesereflejaacontinuacin:Sibiennosonlosmismosdatosqueenelejemplovistoanteriormentelaideaesreflejarnosololoscambiosdelreadegrficosinotambindelreadetrazado,yasuvezdelreadeseries,modificandocadaserieyviendocomoagregarlabanderadelpascomoidentificacindedichaserie.GrficosPersonalizadosGeneraremosenelsiguienteejemplounGrficoquedenominaremospirmidepoblacionalapartirdelasiguienteplanilla:

    Enlamismaencontramosuntotaldelamuestra,enestecasodelbarrioMALVINyseparadoporsexo(hombres,ymujeres)yasuvezeltotaldivididoporgrupoetario.Laideaesgraficarestoyquepodamosrepresentarlascantidadesdepersonasdecadasexoycadabarrarepresenteaungrupoetariodiferente.Elresultadofinalsemuestraacontinuacinyluegoveremoselpasoapasoaseguirparaobtenerdichogrfico:

  • Parallegaraesteresultadofinal,comenzaremosporgenerarconlosdatosungrficodebarrasseleccionandoelrangoagraficar(enestecasodesdeA1:K5).AllvamosaInsertarGrfico:

  • SeleccionamoselgrficodetipoBARRASprimersubtipoqueeseldeBARRAAGRUPADA,luegoledamosclicenelbotnsiguiente:

    NotemosqueaqucorregimosenprimerlugarelRangodedatos(A4:K5)paratomarnicamentelossexosylosgruposdeedades,quecomprendennicamenteloquevamosagraficar,peroademsvamosadarclicsobrelasolapaseries:

  • AquloquehicimosfueagregarenelRtulodelejedecategorasXelrangoquevadesdeB2:K2dondeindicamoslosttulosdegruposdeedadesqueformarnpartedenuestrogrfico.Ennuestrosiguientepaso:

    Aqudefinimoslosnombrestantodelgrficogeneralcomotambindelosejes.

  • Estefueelresultadofinalqueobtuvimos,ahoraveamosloscriteriosquetenemosqueutilizarparaperfeccionarlapirmidepoblacional.Enprimerlugar,paraqueunsexotomevaloresaladerechadelcortedeejeXyelotrosexotomevaloresalaizquierdadelcortedeejeXdebemostomarencuentaquelologramosfcilmentecambiandoelsignoenlaplanillaoriginalcomovemosacontinuacin:

    Veamosqueagregamosunalneadondesimplementelecambiamoselsignoalosvalorescorrespondientesalsexofemenino,eincluimosestaseriedentrodelgrficodelasiguientemanera:

  • Aquincluimosdentrodelacategoramujeres,elrangoB6:K6enlugardelrangoB5:K5quetenaanteriormentevaloresnegativos.Recordarparareasignarlasdireccionesdedichorangoaccedemosclickeandoconelbotnderechosobreelreadegrfico(fondoblancodelgrfico)yseleccionandocomoopcinDatosdeOrigen,yallpresionamossobrelapestaadeSerie.

    Ahoracambiaremoslaposicindecadaunadelasbarrasparaquesedisponganalineadasysinespaciosinseparacinentrelasmismas.Estolologramospresionandoenunadelasbarrasdelgrfico(cualquieradelasseries),yluegoconelbotnderechodelMouse,seleccionamoslaopcindeFormatodeSeriedeDatos,yenlasolapaOpcionesveremosjustamentedosopciones:

  • EndichasopcionescambiaremoseldatodeSuperposicin,elcualpasaremosaunvalorde100,paraquelasbarrasquedenalineadas,yelanchoderangoavalor0,paraquecadabarraocupeeltotaldereadetrazado,ynoexistanespaciosintermediosentreunabarrayotra.Veamoselefectodelmismo:

    Enestesiguientepasovamosaquitarelrtulodelasleyendasencadagrupodeedad:EstolologramospresionandoconelbotnderechodelMousesobreelreadegrficoyluegovamosaOpcionesdeGrficoyluegoenlasolapadeEjedesmarcamoslacasilladeverificacincorrespondientealEjedeCategorasX,comovemosacontinuacin:

    VemosqueelefectoinmediatodeestaaccinesquitarlareferenciaalejeX.

  • EnestesiguientepasovamosacambiarelformatodeEjecategorasconlaposibilidaddequepodamosversiempredgitospositivos,peroaambosladosdelcrucedeleje.EstolologramosseleccionandoenprimerlugarelejedecategorasX,yluegoconelbotnderechodelMousedamosclicenlaopcindeFormatodeEjes,yallenlapestaaNmero,aplicamoscomoTipo(0;0)paraque,tantolosvalorespositivoscomonegativosaparezcansinsigno(ni+ni).

    AplicandolosretoquesdeFormatoderea,degradados,vistosenelcaptuloanterior,llegamosaunaimagensimilardelgrficoquedebamosgenerar:

  • GrficosconDobleEjeDadalasiguienteplanilla,generaremosungrficodelneasquelarepresente:

    Generamosentonceselgrficodelneascorrespondiente,obteniendoelsiguienteresultado:

  • Veamosquemasalldequegraficamosambasseries,VentasyPorcentajes,altenerambasvalorestotalmentedismiles,estonosgeneraunimpactovisualyaquelaseriedeporcentajecontienevaloresentre0y1yporlotantolalneaquedapegadaalejedecategoras.ParaquelaseriedePorcentajetomecomoreferenciaunejesecundario,seleccionamoslaseriedandoclicsobrecualquieradelosvaloresdelalneaquerepresentaadichaserieenelgrficoyconelbotnderechoaccedemosalaopcinFormatoSeriedeDatos.EnestepuntodamosclicsobrelapestaaEjes,yallagregamosomarcamoslaopcindeEjeSecundario.Elimpactodelmismoserelsiguiente:

    Parasepararambasseriesyquelosvaloresquedendistanciados,yasuvezquecadaunadelasserieshagareferenciaaunejediferente,presionamossobreelejesecundarioagregado,yconelbotnderechoseleccionamoslaopcinFormatodeEjesenlapestaadeEscalaCambiaremoslaescalaparaqueelvalormximoestedadoenel0,5(osea50%).Pasamosentoncesaobtenerelsiguientegrfico:

    Deestamanera,alapersonaquetengaquedarunalecturadelgrficoleresultarmasfacilanalizarambasseriessabiendoqueambastomanescalasdiferentesyhacenreferenciasaejesdiferentesdelgrfico(unaalejeprimario,yotraalsecundario).

  • GrficosdeGANTTDadalasiguienteplanilla,generaremosungrficodeGANTTquenosmuestreladuracindelastareas,ynosdelaopcindeadaptarseautomticamenteantecambiosenfechasdeinicio,oduracindelasmismas.Estegrficoesmuyusado,enproyectosparaencontrarpuntoscrticos,ascomotambindeterminaratrasosenlasentregasyevaluardecisionesatomarantedesvosenelcronogramapropuesto.

    Enlasiguienteplanillavemosquetenemosfechainicialdecadatarea,fechadefindecadatarea,ymedianteunaformulacalculamoslosdasquedemoramoseneldesarrollodecadatarea.Apartirdeallgeneramosungrficodebarras,yllegaremosalsiguientegrfico:

  • FormulariosEsteconjuntodeherramientasnosaportarenExcel,unestilogrficoquenospermitirmanejarlaplanilladesdeunentornovisualmsameno.Enelsiguienteejemploveremoscomoutilizarlabarradeherramientas,personalizandovariasopcionesalrespecto.

    Enlaplanillaaplicaremosvariasherramientasdeltemaformularios,paraesto,elprimerpasoserdejarvisibledichabarradeherramientas,yparaesovamosalmenVerBarraHerramientasFormularios,comovemosacontinuacin:

    Estaopcinnosdesplegarlasiguientebarraconlaquetrabajaremosenlossiguientespasos:

  • LaprimeraherramientaqueaplicaremosserladeCuadroCombinadoparalaspropuestasdediferentestiposdehabitacionesconlasquecuentaelhotel.Paraesto,vamosacolocarunaplanillaauxiliarquenosproveadelasiguienteinformacin:

    Vamosatomarentoncesdelabarradeherramientas,elCuadroCombinado,yalseleccionarnospermitirdibujardichocuadrosobrelaplanilla:

  • Paraquedichocuadrodesplieguelasopciones,detiposdehabitaciones,daremosclicderechosobreelcuadrocombinadoquedibujamos,yseleccionamoslaopcindeFormatodeControl.Estonosdesplegarlasiguientepantalla:

    AqucompletaremoselRangodeEntrada:ennuestrocasoformadoporelrangoE1:E3(losdistintostiposdehabitacionesquesedesplegarnalpresionarsobreelcuadrocombinado).Lavinculacinconlaceldalaharemosconunaceldaarbitraria(H1),enellamasadelantevisualizaremoselnmerodendiceoposicinqueelusuarioseleccionedelcuadrocombinado.

  • Porltimoenestecuadrolaslneasdeuninverticalesrepresentanlacantidaddedatosquesevanavisualizarporpantallaquesemuestreenelcuadrocombinado.

    VeamosquealseleccionarenestecasolahabitacinSINGLE,aparecerelnmero1enlaceldaH1quefuelaceldaconlaquevinculamoselcuadrocombinado.Encasoqueelusuarioseleccionelahabitacindoble,sereflejarelnmero2enH1,ynmero3encasodeseleccionarlaSUITE.ParaqueautomticamentepodamosdeterminarelpreciodelahabitacinporDIA,utilizaremosunafuncindeExcelqueserINDICE:=INDICE(F1:F3;H1)ConestoobtendremosdelrangoF1:F3,elnmerodeposicinquesedeterminaenlaceldaH1.Enestesiguientepasovamosautilizarotrodeloscontrolesdelabarradeformularios,queserelControldeNmeros:

    Enestapantallacontrolaremosnuestroformulario.Aplicaremosunvaloractual.Elvalormnimoloestableceremosen1,yelvalormximoen30,yelincrementoen1.Estoquieredecirqueel

  • mnimodedasdeestadaser1,yelmximodedasdeestadaser30.LaceldaconlacualvincularemosserlaceldaH2(celdaarbitraria).EnlaceldaB5,aplicaremoscomofrmulaunareferenciaalaceldaH2yaqueestacontendrelvalorseleccionadoenelformulario.ParaelcasodelaeleccindecocheraoptaremosporuncontroldenominadoCasilladeVerificacin(delamismabarradeformularios).Estonosdaruncheckboxconvaloresdeverdaderoofalso,segnlacasillaestemarcadaono.

    EstableceremoselvalordelacocheraenbasealaceldaH3,porlotantoennuestraceldaB6aplicaremoslasiguienteformula:=SI(H3;5;0)*B5Estaformulanospresentarelvalor5encasodequelacasilladeverificacinestemarcadayceroencasodequenoestemarcada,basndoseenelvalordelaceldaH3queserverdaderoofalso,yestolomultiplicamosporlaceldaB5quetienelacantidaddedasdeestadaenelhotel.Laideaesquemedianteelejemploveamoselusodediferentesformularios,perotambincadaunolopuedeadaptaralasnecesidadesdelaplanillaqueesteimplementando.

  • Enelsiguientecasoparalasformasdepago,dibujaremosuncuadrodelista,yentoncesdaremoscomorangodeentradalasceldasquecontienenlasdiferentesopcionesencuantoaformasdepago.EnelcasodelporcentajedeintersnuevamenteutilizaremoslafuncinINDICEcomoaplicamosanteriormente.Veamoslaplanillafinalizada,eimplementandolosdiferentesformularios:

    Existendiferentesbotonesdelabarradeformulariosque,sibiennofueronutilizadosenesteejemplosontilesendiferentescasoscomoson:

    Etiqueta Cuadrodegrupo Botn Botndeopcin Barradesplazamiento

  • MDULO

    MACROS

    EN

    EXCEL

  • MduloMacrosenExcelConceptoGeneral:

    Macro:UnprogramaescritoograbadoporelusuarioquealmacenaunaseriedecomandosdeMicrosoftExcelquepuedenutilizarseposteriormentecomounnicocomando.Mediantelasmacrospuedenautomatizarselastareascomplejasypuedenreducirseelnmerodepasosnecesariospararealizarlastareasqueseejecutanconmsfrecuencia.LasmacrossegrabanenellenguajedeprogramacindeVisualBasicparaAplicacionesdeMicrosoft.TambinpuedenescribirselasmacrosdirectamenteenelEditordeVisualBasic.LaideadegenerarmacrosenMicrosoftExcelradicaenlaautomatizacindetareasenlaplanillaelectrnica.DeestamaneraquedarimplementadaunasolucinenVisualBasicparaaplicaciones(VBA)queesellenguajedeprogramacinqueseutilizaenlasuitedeOfficeparadesarrollarMacros.Existenbsicamentedosformasdedesarrollarmacros:

    MedianteelusodelaGrabadoradeMacros MedianteelEditordeVisualBasicparaaplicaciones

    Comencemosconelusodelagrabadoraenunejemplodondeapliquemostrestareas,enprimerlugarescribiremosHolaenlaceldaA1,luegopondremosNegritayporltimopintaremosdefondoamarillodichacelda.Paraesto,comenzaremosporencenderlagrabadora,paraquecaptecadaunadelastareasquevamosrealizando:LagrabadoralaencendemosmedianteelmendeHerramientasMacroGrabarnuevamacro,comovemosacontinuacin:

  • Nosaparecerlasiguientepantallaparaconfigurarlagrabacindedichomacro:

    Acadamacroquegrabemoslepodemosasignarunnombre,enformapredeterminadalagrabadoraasignarMacro1,Macro2.LuegopodremostambinasignarunMtodoAbreviado,paraqueelusuarioquedeseeejecutarrpidamenteunmacropuedaacudiraesteatajodeteclado(porejemploctrl.+T).Podremosgrabarelmacroenelmismolibroenelcualestamostrabajando,podremosgrabarloenunlibroindependiente,otambincomoopcinadicionalpodremosgrabarloenelLibroPersonal,queesalgoascomounabibliotecademacrospersonalesquepodemosejecutarencualquierarchivodeExcelquedeseemoseldademaana.Enladescripcinpodemosdarpautasprecisasdedeterminadosdetallesdelastareasqueejecutarnuestromacro.Cuandoconfiguramosdichapantalla,alpresionarAceptar,lagrabadoradeMacrosgeneraruncdigoVBAporcadaunadelastareasquevayamosrealizandodeahoraenmas(nocaptalosmovimientosdelMouse,nidelcursorquerealicemos,perosielingresoacualquieradelasopcionesdeExcel).Realizamosacontinuacinlastrestareaspropuestas,yluegodetenemoslagrabacinmedianteelmendeHerramientasMacroDetenerGrabacin.

    Bueno,ahoraveamoscomorepetimoslastareasejecutandoelmacrograbadoenestaetapaanterior.UnadelasposibilidadesquetenemosesejecutarelmacromedianteelmendeHerramientasMacroMacros

  • Seleccionamoselmacroaejecutaryluegopresionamossobreelbotnejecutartalcualapareceenlapantallaacontinuacin:

    Enestapantallanosolopodemoselegirelmacroaejecutar,yluegorealizarlaejecucinsinoquetambinencasoquequeramosdarunmtodoabreviadobastarconseleccionarelmacroyconelbotndeopcionesnosaparecerelsiguientecuadrodondeasignaremoselmtodoabreviadoquedeseemos:

    EnestecasoelusuarioquepresionelacombinacinCTRL+tejecutarelmacroquedesarrollamosanteriormente.Noolvidemosqueelmacronoeliminaelcontenidodelaceldaparaejecutar,sinoquelohacesobrescribiendoelcontenidoanteriordedichacelda.Podramosbiencrearunmacroquenospermitaborrarparaluegovolveraejecutar.

  • EnelcasoquedeseemoscambiarelmtodoabreviadovolveremosarepetirelprocedimientodeiralmenHerramientasMacroMacros(omedianteelaccesodirectodeALT+F8),seleccionamoselMacroalquelequeramoscambiarelmtodoabreviadoyconelbotnopcionesaccedemosalamismapantalladondereasignaremoselabreviado.Ahora,sinosotrosquisiramosejecutarelmacrodeunaformamssimpleyrpidatambintenemoslaposibilidaddeinsertarunbotndesdelabarradeformularios,yasignarlealmismounmacro.EstoloharemosmedianteelmenVerBarraHerramientasFormularios,comovemosacontinuacin:

    Enlabarradeherramientasdeformulariosseleccionaremoselbotndecomandoylodibujaremosenlaplanillaconlaqueestamostrabajando.

    Elbotndecomandonospermitirdibujarlosobrecualquierlugardelaplanillaconlacualestemostrabando.Esimportanteacotarquedichobotnquedarsobrelaplanillaynoformandopartedelamismaenunaceldaenparticular.Unavezquedibujemosdichobotndecomando,alsoltarelMousenospermitirasignarleunmacroalmismo.EnelcasodequehayamossoltadoelMouseynosquedemossinasignarunmacroalmismo,podemosmedianteelbotnderechosobreelbotndibujadoseleccionarlaopcindeAsignarMacro.

  • Adichobotnpodremoscambiarleelnombre,modificarleeltamaocambiareltextoqueaparecedentrodelbotn.RecordarqueparaseleccionarelbotnsimplementeconelCTRLpresionadodamosclicsobredichobotnyyapasamosalmodoedicindondeaparecenlospuntosdeagarresobredichobotn.Deahoraenmas,simplementeelusuariopresionardichobotnparaejecutarelmacroasignado.NOTA:Siqueremosasignarunmacroaunaimagenoaunmacropodemoshacerelmismoprocedimiento,osea,insertarlaimagenoelgrficoyconelbotnderechoseleccionarlaopcindeasignarmacroparaindicarquemacroasignaremosadichaimagen.PorotroladootramaneraquetenemosdegenerarunaformarpidadeejecucindemacrosesgenerandouniconoenlabarradeherramientasdeExcel.ParaestopresionaremossobrelabarradeherramientasestndarconelBOTNDERECHODELMOUSE,yseleccionamoslaopcinPERSONALIZAR.

  • Nosaparecerlasiguientepantalla:

    EnlasolapaComandos,buscaremoslacategoraMacrosyaladerechaenlalistadecomandosveremosdostiposquesern:PersonalizarelementodemenyPersonalizarbotn,estaltimaopcinserlaqueutilicemosparaarrastrarelicono(medianteelbotnizquierdodelMousepresionado)haciaunlugardelabarradeherramientasestndardeExcel.

    Elbotnnosquedenlabarradeherramientasysimplementecuandopresionemosporprimeravezendichobotnnospermitirasignarleelmacrocorrespondiente.

  • Encasodequenosotrosqueramosmodificarelmacroydeahoraenmsdeseemoscambiarlaestructura,paraqueloapliqueaunconjuntodeceldas,oparaquenosescribadiferentespalabrasporcadacelda,nonosquedarotraqueacudiraleditordeVisualBasicparaAplicacionesparacambiarlasintaxisdelagrabacin.ConlacombinacinALT+F11pasaremosrpidamentealentornoVBA,tambinpodramospasaradichapantallamedianteelmendeHerramientasMacrosEditorVisualBasic

    Nosdesplegarlapantallaquevemosacontinuacin:

    Enestapantallatrabajaremosescribiendonuestrospropiosmacros.Comovemossobrelaparteizquierdadeestapantalla,tenemosunacarpetadeMdulosdondeencontraremoslosdiferentesmacrosquesehayandesarrollado.EnnuestrocasosolocontamosconelMdulo1queesdondeseencuentraelmacrograbadoanteriormente.AldardobleclicsobreelMdulo1veremosaladerechadelapantallaelcdigoqueanteriormentelagrabadorafueescribiendoautomticamentemientrasnosotrosrealizbamoslastareas.

  • CDIGOVBAElcdigoVBAsemanejaenidiomaingls.Engeneralellenguajebsicamentesemanejaorientadoaeventos.Cadaobjetoseseparamedianteel.(Punto)delasdiferentespropiedadesqueposee.

    Conceptosesenciales.

    Clase:Esunaagrupacindeobjetosconlasmismascaractersticasypropiedades.

    Objeto:Sonelementosquesecaracterizanporposeerpropiedadesencomn.Mtodo:Cualquieroperacinpasibledeserejecutadasobreunobjeto.Ejemplo: Clase:MediosdeTransporte(generalizacin) Subclase:Autos(especializacin)

    Variable:Unlugardealmacenamientoconnombrequepuedecontenerciertotipodedatos.Cadavariabletieneunnombrenicoque la identifica.Nombresdevariabledebencomenzarconun carcteralfabtico,debensernicosdentrodelmismombito,nodebencontenermsde255caracteresynopuedencontenerunpunto.CadamacroquevayamosescribiendoeneleditordevisualBasic,debecomenzarconlasentenciaSub,yterminarconlasentenciaEndSub.

  • Veamosennuestroprimerejemplo.DentrodelacarpetaMdulostenemosnuestroModulo1ydentrodelmismodesarrollamosdosmacros.NuestroMacro1fuegrabadomedianteelusodelagrabadoraparamacrosyluegocomenzamosmediantelaordenSubelmacrodenominadoPrimeroquesimplementeescribelapalabraHOLAenlaceldaA1.EnformapredeterminadacuandohacemosreferenciaalaceldaA1,MicrosoftExcellotomarsobrelahojaactiva(hojaenlaqueestamosposicionadosalejecutarelmacro).Formasdereferiralahoja:ActiveSheet.Range(A1).valueAquhacemosreferenciaalaceldaA1delahojaactivaSheets(1).Range(A1).ValueAquhacemosreferenciaalahojaconndice1,celdaA1dellibroactivoSheets(Hoja1).Range(A1).ValueAquhacemosreferenciaalahojadenominadaHoja1,celdaA1RepetimosqueenformapredeterminadaExceltomaActivesheetcuandonosreferimosaunaceldadeterminada.

    Mtodos.Lamayoradeobjetostienencomportamientosorealizanacciones,porejemplo,unaaccinevidentedeunobjetococheeseldemoverseoloqueeslomismo,trasladarsedeunpuntoinicialaunpuntofinal.Cualquierprocesoqueimplicaunaaccinopautadecomportamientoporpartedeunobjetosedefineensuclaseparaqueluegopuedamanifestarseencualquieradesusobjetos.As,enlaclasecochesedefiniranenelmtodomovertodoslosprocesosnecesariosparallevarloacabo(losprocesosparadesplazardeunpuntoinicialaunpuntofinal),luegocadaobjetodelaclasecochesimplementetendraqueinvocarestemtodoparatrasladarsedeunpuntoinicialaunpuntofinal,cualesquieraquefueranesospuntos.RepasemosacontinuacintodosestosconceptosperoahoradesdeelpuntodevistadealgunosdelosobjetosquenosencontraremosenExcelcomoWorkSheet(Objetohojadeclculo)oRange(Objetocasillaorangodecasillas).UnobjetoRangeestdefinidoporunaclasedondesedefinensuspropiedades,recordemosqueunapropiedadesunacaracterstica,modificableono,deunobjeto.Entrelaspropiedadesdeun

  • objetoRangeestnValue,quecontieneelvalordelacasilla,ColumnyRowquecontienenrespectivamentelafilaylacolumnadelacasilla,Fontquecontienelafuentedeloscaracteresquemuestralacasilla,etc.Range,comoobjeto,tambintienemtodos,recordemosquelosmtodossirvenllevaracabounaaccinsobreunobjeto.PorejemploelmtodoActivate,haceactivaunaceldadeterminada,Clear,borraelcontenidodeunaceldaorangodeceldas,Copy,copiaelcontenidodelaceldaorangodeceldasenelportapapeles,...

    Conjuntos.Unaconjuntoesunacoleccindeobjetosdelmismotipo,paralosqueconozcanalgnlenguajedeprogramacinesunarraydeobjetos.Porejemplo,dentrodeunlibrodetrabajopuedeexistirmsdeunahoja(WorkSheet),todaslashojasdeunlibrodetrabajoformanunconjunto,elconjuntoWorkSheets.Cadaelementoindividualdeunconjuntosereferenciaporunndice,deestaforma,laprimera,segundaytercerahojadeunlibrodetrabajo,sereferenciarnporWorkSheets(1),WorkSheets(2)yWorkSheets(3).

    ObjetosdeObjetos.Esmuyhabitualqueunapropiedaddeunobjetoseaotroobjeto.Siguiendoconelcoche,unadelaspropiedadesdelcocheeselmotor,yelmotoresunobjetoconpropiedadescomocubicaje,caballos,nmerodevlvulas,etc.ymtodos,comoaumentar_revoluciones,cargar_combustible,mover_pistones,etc.EnExcel,elobjetoWorkSheetstienelapropiedadRangequeesunobjeto,RangetienelapropiedadFontqueestambinunobjetoyFonttienelapropiedadBold(negrita).TengaestomuypresenteyaqueutilizaremosfrecuentementePropiedadesdeunobjetoqueserntambinObjetos.Dichodeotraforma,haypropiedadesquedevuelvenobjetos,porejemplo,lapropiedadRangedeunobjetoWorkSheetdevuelveunobjetodetipoRange.

    Insertarunnuevomdulo.Unmdulosirveparaagruparprocedimientosyfunciones.Elprocedimientoylafuncinsonentidadesdeprogramacinquesirvenparaagruparinstruccionesdecdigoquerealizanunaaccinconcreta.ParainsertarunmduloactiveopcindelmenInsertar/Mdulo.Seactivarunanuevaventana,siaparecedemasiadopequea,maximcela.

    Insertarunprocedimiento.Yahemosdichoqueunprocedimientoesunbloquedeinstruccionesdecdigoquesirvenparallevaracaboalgunatareaespecfica.Unprocedimientoempiezasiempreconlainstruccin

  • SubNombre_ProcedimientoYterminaconlainstruccinEndSub.Acontinuacincrearemosunprocedimientoparaponereltexto"Hola"enlacasillaA1.Ejemplo1SubPrimeroRange("A1").Value="Hola"EndSubObserveelcdigo.Range("A1").Value="Hola"EnestalneaestamosindicandoquetrabajamosconunobjetoRange.ParaindicarlequenosreferimosalacasillaA1,encerramosentreparntesisestareferencia(msadelanteverotraformadereferirnosalascasillas).Deesteobjeto,indicamosquequeremosestablecerunnuevovalorparalapropiedadValue,observequeparasepararelobjetodesupropiedadutilizamoslanotacinpunto.RecuerdequeelconjuntoRangeesunobjetoquependedelobjetoWorkSheets,asporejemploelsiguientecdigoharalomismoqueelanterior.WorkSheets(1).Range("A1").Value="Hola"Bueno,dehechonohacelomismo,enlaprimeraopcin,eltexto"Hola"seponedentrodelacasillaA1delahojaactiva,mientrasqueenelsegundoesenlacasillaA1deprimerahoja(delconjuntodehojas).Lasegundanotacinesmslarga,perotambinmsrecomendableyaqueseespecificantodoslosobjetos.Enmuchasocasionessepuedenomitiralgunosobjetosprecedentes,noleaconsejamoshacerlo,susprogramasperdernclaridadyconcisin.SideseahacerreferenciaalahojaactivapuedeutilizarActiveSheet,as,elprimerejemplolodejaremosdelamanerasiguiente.SubPrimeroActiveSheet.Range("A1").Value="Hola"EndSubSideseaponer"Hola"(ocualquiervalor)enlacasillaactiva,puedeutilizarlapropiedad(objeto)ActivecelldeWorkSheets.Asparaponer"Hola"enlacasillaactivadelahojaactivaseria,

  • SubPrimeroActiveSheet.ActiveCell.Value="Hola"EndSubParaterminarconesteprimerejemplo.WorkSheetsestndentrodelObjetoWorkBooks(librosdetrabajo)yWorkBooksestndentrodeApplication.Applicationeselobjetosuperior,eselquerepresentalaaplicacinExcel.As,elprimerejemplo,siguiendotodalajerarquadeobjetosquedaradelaformasiguiente.SubPrimeroApplication.WorkBooks(1).WorkSheets(1).Range("A1").Value="Hola"EndSubInsistiendoconlanomenclatura,Applicationcasinuncaesnecesarioespecificarlo,piensequetodoslosobjetospendendeeste,WorkBookssernecesarioimplementarlosienlasmacrossetrabajacondiferenteslibrosdetrabajo(diferentesarchivos),apartirdeWorkSheets,esaconsejableincluirloenelcdigo,sobretodosisequieretrabajarcondiferenteshojas,ver,sinembargo,queenmuchasocasionesnoseaplica.Ejecutarunprocedimientoofuncin.Pruebeejecutarelprimerprocedimientodeejemplo.

    1. Siteelcursordentrodelprocedimiento.2.ActiveopcindelabarrademensEjecutar/EjecutarSubUserform.Tambinpuedehacer

    clicsobreelbotnopulsarlateclaF5.

    Paraejecutarelprocedimientodesdelahojadeclculo.Debeestarenunahoja,noeneleditordeVisualBasic

    1. ActiveopcindelabarrademensHerramientas/Macro/Macros.Sedespliegaunaventanaquemuestraunalistadondeestntodaslasmacrosincluidasenellibrodetrabajo.

    2. SeleccionelamacrodelalistaypulsesobreelbotnEjecutar.Ejemplo2Enestesegundoejemplosimplementeampliaremoslafuncionalidaddelamacrodelejemplo1.Ademsdeescribir"Hola"enlacasillaA1delaceldaA1,lapondremosennegritayledaremoscoloraltexto.

  • ParaelloutilizaremoslaspropiedadesBoldyColordelobjetoFont.SubSegundoActiveSheet.Range("A1").Value="Hola"ActiveSheet.Range("A1").Font.Bold=TrueActiveSheet.Range("A1").Font.Color=RGB(255,0,0)EndSubTrue.True,quetraducidoesverdadero,simplementeindicaquelapropiedadBoldestactivada.Sisedesearadesactivar,bastaraconigualarlaalvalorFalse.LafuncinRGB.ObservequeparaestablecerelcolordelapropiedadseutilizalafuncinRGB(Red,Green,Blue),lostresargumentosparaestafuncinsonvaloresdel0a255quecorrespondenalaintensidaddeloscoloresRojo,VerdeyAzulrespectivamente.

    Referenciarunrangodeceldas.SlotienequecambiaralaformaCasilla_Inicial:Casilla_Final.PorejemploaplicarelltimoejemploalrangodecasillasquevadelaA1alaA8,ponga.SubSegundoActiveSheet.Range("A1:A8").Value="Hola"ActiveSheet.Range("A1:A8").Font.Bold=TrueActiveSheet.Range("A1:A8").Font.Color=RGB(255,0,0)EndSub

    Variables.AcontinuacinvamosarepetirelprogramaEjemplo1,peroenlugardeponer"Hola"enlacasillaA1delahojaactiva,dejaremosqueelusuarioentreuntextodesdetecladoyacontinuacinguardaremosesevalorenesacasilla.ObservequeelvalorqueingreseelusuariodebeguardarseenalgnlugarparapoderponerlodespusenlacasillaA1;puesbien,esevalorseguardarenunavariable.Unavariableessimplementeuntrozodememoriaquelafuncinoprocedimientosereservaparaguardardatos,laformageneraldedeclararunavariableesDIMvariableAStipo.

  • SiendovariableelnombrequeseasignaalamismayTipoeltipodedatosqueseguardarn(nmeros,texto,fecha,booleanos,...).Ennuestroejemplo,declararemoslavariabledetipoString(tipotexto),yloharemosdelaformasiguiente.DimTextoAsStringConestoestamosindicandoquesereserveuntrozodememoria(elquesea),quesellamaTextoyqueeltipodedatosqueseguardarnahserncaracteres.

    LaFuncinInputBox.Estafuncinmuestraunaventanaparaqueelusuariopuedatecleardatos.CuandosepulsasobreAceptar,losdatosentradospasanalavariablealaquesehaigualadolafuncin.Vealalneasiguiente.Texto=InputBox("Introduzcaeltexto","Entradadedatos").SienlaventanaquemuestraInputBoxpulsasobreelbotnAceptar,losdatostecleadosseguardarnenlavariableTexto.

    SintaxisdeInputBox.InputBox(Mensaje,Ttulo,Valorpordefecto,Posicinhorizontal,PosicinVertical,ArchivoAyuda,Nmerodecontextoparalaayuda).Mensaje:Eselmensajequesemuestraenlaventana.SideseaponermsdeunalneapongaChr(13)paracadanuevalnea,veaelejemplosiguiente.Ttulo:EselttuloparalaventanaInputBox.Esunparmetroopcional.Valorpordefecto:Eselvalorquemostrarpordefectoelcuadrodondeelusuarioentraelvalor.Parmetroopcional.PosicinHorizontal:LaposicinXdelapantalladondesemostrarelcuadro,concretamenteeslaposicinparalaparteizquierda.Siseomiteelcuadrosepresentahorizontalmentecentradoalapantalla.PosicinVertical:LaposicinYdelapantalladondesemostrarelcuadro,concretamenteeslaPosicinparalapartesuperior.SiseomiteelcuadrosepresentaverticalmentecentradoalaPantalla.ArchivoAyuda:Eselarchivoquecontienelaayudaparaelcuadro.Parmetroopcional.

  • Nmerodecontextoparalaayuda:Nmeroasignadoquecorrespondealidentificadordelarchivodeayuda,sirveparalocalizareltextoquesedebemostrar.Siseespecificaesteparmetro,debeespecificarseobligatoriamenteelparmetroArchivoAyuda.Ejemplo3SubEntrar_ValorDimTextoAsString'Chr(13)sirveparaqueelmensajesemuestreendosLneasTexto=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")ActiveSheet.Range("A1").Value=TextoEndSubEsteejemplotambinsepuedehacersinvariables.SubEntrar_ValorActiveSheet.Range("A1").Value=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")EndSubEjemplo4Repetiremoselejemplo3,peroenlugardeentrarlosvaloressobrelacasillaA1,haremosqueelusuariopuedaelegirenquecasillaquiereentrarlosdatos,esdecir,selepreguntaralusuariomedianteunsegundoInputboxsobrequecasillaquiereentrarelvalordelprimerInputbox.Sernnecesariasdosvariables,unaparaguardarlacasillaqueescojaelusuarioyotraparaguardarelvalor.OptionExplicitSubEntrar_ValorDimCasillaAsStringDimTextoAsStringCasilla=InputBox("Enquecasillaquiereentrarelvalor","EntrarCasilla")Texto=InputBox("Introduciruntexto"&Chr(13)&"Paralacasilla"&Casilla,"Entradadedatos")ActiveSheet.Range(Casilla).Value=Texto

  • EndSubLasentenciaOptionExplicit.Envisualbasicnoesnecesariodeclararlasvariables,porejemplo,enelprogramaanteriorsehubierapodidoprescindirdelaslneasDimCasillaAsStringDimTextoAsStringA pesar de ello, le recomendamos que siempre declare las variables que va a utilizar, de estaforma sabr cualesutilizaelprocedimientoyqu tipodedatosguarda cadauna,piensequeamedidaquevayaaprendiendo,crearprocedimientoscadavezmscomplicadosyquerequerirnelusodemsvariables, sinodeclara lasvariablesalprincipiodelprocedimientoocurrirndoscosas.Primero, lasvariablesnodeclaradas sonasumidascomo tipoVariant (esteesun tipodedatosquepuedealmacenarcualquiervalor,nmero,fechas,texto,etc.perotengaencuentaqueocupa 20 Bytes y para guardar una referencia a una casilla, la edad de alguien, etc. no sonnecesarios tantos bytes); segundo, reducir considerablemente la legibilidad de susprocedimientosyaque lasvariables las ircolocandoamedidaque lasnecesite,esto,a la largacomplicarlacorreccinomodificacindelprocedimiento.Bueno,puestoda laexplicacinanterioresparaquedeclaretodas lasvariablesquevaautilizar.LasentenciaOptionExplicitalprincipiodelmdulofuerzaaquesedeclarentodaslasvariables.Sialejecutarelprograma,seencuentraalgunavariablesindeclararseproducirunerrorynosepodrejecutarelprogramahastaquesedeclare.SitodavanosehaconvencidosobrelaconvenienciadedeclararlasvariablesyutilizarOptionExplicit,pruebeelprocedimientosiguiente,cpielotalcual(TextoyTestoestnpuestosadredesimulandoquenoshemosequivocadoalteclear).SubEntrar_ValorTexto=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")ActiveSheet.Range("A1").Value=TestoEndSubObservequeelprogramanohaceloquesepretendaquehiciera.Efectivamente,TextoyTestosondosvariablesdiferentes,comonosehadeclaradoningunanisehautilizadoOptionExplicitVisualBasicnodaningntipodeerroryejecutaelprograma.Pruebeelsiguientemduloeintenteejecutarlo.OptionExplicit

  • SubEntrar_ValorDimTextoAsStringTexto=InputBox("Introduciruntexto"&Chr(13)&"ParalacasillaA1","Entradadedatos")ActiveSheet.Range("A1").Value=TestoEndSubObservequeelprogramanoseejecuta,alponerOptionExplicit,forzamosaquesedeclarentodaslasvariables.VisualBasicdetectaquelavariableTestonohasidodeclaradayasloindicamostrandoError,entoncesescuandoesmsfcildarnoscuentadelerrorquehemoscometidoalteclearycambiamosTestoporTexto.Ahoraimaginequeelerrorseproduceenunprogramadecientosdelneasquenecesitaotrastantasvariables.

    TiposdedatosenVisualBasicparaExcel.(TablacopiadadelaayudaenlneadeVisualBasicparaExcel).Tipodedatos TamaoAlmacenamiento IntervaloByte 1byte 0a255Boolean 2bytes TrueoFalseInteger 2bytes 32.768a32.767Long(enterolargo) 4bytes 2.147.483.648a2.147.483.647Single(comaflotante/precisinsimple)

    4bytes 3,402823E38a1,401298E45paravaloresnegativos;1,401298E45a3,402823E38paravalorespositivos

    Double(comaflotante/precisindoble)

    8bytes 1,79769313486232E308a4,94065645841247E324paravaloresnegativos;4,94065645841247E324a1,79769313486232E308paravalorespositivos

    Currency(enteroaescala)

    8bytes 922.337.203.685.477,5808a922.337.203.685.477,5807

    Decimal 14bytes +/79.228.162.514.264.337.593.543.950.335sinpuntodecimal;+/7,9228162514264337593543950335con28posicionesaladerechadelsignodecimal;elnmeromspequeodistintodeceroes+/0,0000000000000000000000000001

    Date 8bytes 1deenerode100a31dediciembrede

  • 9999Object 4bytes CualquierreferenciaatipoObjectString(longitudvariable)

    10bytes+longituddelacadena

    Desde0a2.000millones

    String(longitudfija) Longituddelacadena Desde1a65.400aproximadamenteVariant(connmeros) 16bytes Cualquiervalornumricohastael

    intervalodeuntipoDouble

    Variant(concaracteres)

    22bytes+longituddecadena

    ElmismointervaloqueparauntipoStringdelongitudvariable

    Definidoporelusuario(utilizandoType)

    Nmerorequeridoporloselementos

    Elintervalodecadaelementoeselmismoqueelintervalodesutipodedatos.

    ConversindeTiposdedatos.CopieelsiguienteEjemplo.Simplementesepidendosnmeros,sesumanyseguardanellacasillaA1delahojaactiva.Ejemplo5OptionExplicitSubSumar()DimNumero1AsIntegerDimNumero2AsIntegerNumero1=InputBox("Entrarelprimervalor","Entradadedatos")Numero2=InputBox("Entrarelprimervalor","Entradadedatos")ActiveSheet.Range("A1").Value=Numero1+Numero2EndSubEjecuteelprocedimientoypongarespectivamentelosvalores25y25.ObservequetodohaidocorrectamenteyenlacasillaA1delahojaactivaapareceun50.Ahora,vuelvaaejecutarelprogramaycuandoselepideelprimervalorteclee"Hola".Observequeelprogramasedetieneindicandounerroreneltipodedatos.Efectivamente,observequelafuncinInputBoxdevuelvesiempredatostipoString,enelprimerejemplonohahabidoningnproblema,alentrarcaracteresnumricos1,estospuedenasignarseavariablestipoIntegerporqueVisualBasichaceautomticamentelaconversin,peroalentrartextoeintentarloasignaraunavariableIntegerVisualBasicmuestraunerrorindicandoquelavariablenoesadecuadaparalosdatosquesedeseanguardar.

  • Parasolucionarestosproblemassedebenutilizarfuncionesdeconversindetipo.Estasfunciones,comosunombreindica,conviertendatosdeuntipoaotro,deStringaInteger,deIntegeraString,deDateaString,...Aselprocedimientoanteriorquedara.OptionExplicitSubSumar()DimNumero1AsIntegerDimNumero2AsIntegerNumero1=Val(InputBox("Entrarelprimervalor","Entradadedatos"))Numero2=Val(InputBox("Entrarelprimervalor","Entradadedatos"))ActiveSheet.Range("A1").Value=Numero1+Numero2EndSubLafuncinVal(DatoString),convierteunacadenadecaracteresavalornumrico.Silacadenaaconvertircontienealgncarcternonumricodevuelve0.As,sialpedirunvalorseteclea"Hola",lafuncinVal,devolveruncero.

    Funcionesdeconversindetipos.(TablacopiadadelaayudaenlneadeVisualBasicparaExcel).Val(Cadena).Conviertelacadenaaunvalornumrico.Str(Nmero).Convierteelnmeroaunaexpresincadena.CDate(Fecha).Conviertecualquiercadenaafecha.ObjetoCells(fila,columna).Sirve,comoelobjetorange,parareferenciarunacasillaorangodecasillas,peroenlugardeutilizarlareferenciadelaformaA1,B1,X320,...utilizalafilaylacolumnaqueocupalacasilladentrodelahoja(oobjetoWorkSheet).Porejemplo,paraponerholaenlacasillaA1delahojaactivaseria:ActiveSheet.Cells(1,1).Value="Hola"

    UtilizarCellsparareferenciarunrango.EstoseraelequivalenteaRange("Casilla_Inicial:Casilla_Final").LaformaqueseobtieneutilizandoCellsesunpocomslarga,peroseverqueavecesresultamuchomsfuncionalqueutilizandonicamenterange.ParareferirnosalrangoA1:B8,pondremos:

  • Range(Cells(1,1),Cells(8,2)).Value="Hola"OtraformainteresantedeCellseslasiguiente:Range("A5:B10").Cells(2,1).Value="Hola"PondrenlaceldaA6elvalor"Hola",observequeenesteejemploCellscomienzaacontarfilasycolumnasapartirdelrangoespecificadoenelobjetoRange.

    VariablesdeObjetos.Unavariableobjetosirveparahacerreferenciaaunobjeto,estosignificaquepodremosaccederalaspropiedadesdeunobjetoeinvocarasusmtodosatravsdelavariableenlugardehacerlodirectamenteatravsdelobjeto.Posiblementenoseutilicedemasiadoestaclasedevariables(estclaroqueestodependerdelaspreferenciasdelprogramador),perohaycasosenlosquenohaymsremedioqueutilizarlas,porejemploenestructurasForEach...Nextcomoveremos,ocuandoseanecesarioconstruirfuncionesquedevuelvanrangos,referenciasahojas,etc.ParadeclararunavariableobjetoseutilizatambinlapalabraDimdelaformasiguiente,DimVar_ObjetoAsObjetoPorEjemplo:DimRAsRangeDimHojaAsWorkSheetParaasignarunobjetoaunavariabledebeutilizarlainstruccinSet.SetVariable_Objeto=ObjetoPorEjemploSetR=ActiveSheet.Range("A1:B10")SetHoja=ActiveSheetSetHoja=WorkSheets(1)Veamosacontinuacinunejemplodecmoutilizarestetipodevariables,Ejemplo6.Algomuysimple,llenarelrangodeA1aB10conlapalabra"Hola"ydespusponernegrita,observecomoseasignaunavariableobjetoalobjetoyluegocomosetrabajaconesavariabledelamismaformaquetrabajaradirectamentesobreelobjeto.Subobj()

  • DimRAsRangeSetR=ActiveSheet.Range("A10:B15")R.Value="Hola"R.Font.Bold=TrueEndSub

    Estructurascondicionales.Ahoraqueyahaexperimentadoconunoscuantosobjetosypropiedades,nosdetendremosaestudiarlasestructurascondicionales.Lasestructurascondicionalessoninstruccionesdeprogramacinquepermitencontrolarlaejecucindeunfragmentodecdigoenfuncindesisecumpleonounacondicin.EstudiaremosenprimerlugarlainstruccinifCondicinthen..Endif(SiCondicinEntonces...FinSi)LaestructuracondicionalqueseconstruyeconlainstruccinSiCondicinEntonces...FinSitienelaformasiguiente.SiCondicinEntoncesSentncia1Sentncia2..SentnciaNFinSi..CuandoelprogramallegaalainstruccinSiCondicinEntonces,seevalalacondicin,siestasecumple(escierta),seejecutantodaslassentenciasqueestnencerradasenelbloque,sinosecumplelacondicin,sesaltanestassentencias.EstaestructuraenVisualBasictienelasintaxissiguiente:IfCondicinThenSentncia1Sentncia2..SentnciaNEndIfEjemplo6

  • EntrarunacantidadquerepresentaelpreciodealgoporeltecladoconlainstruccinInputBoxyguardarloenlaceldaA1delahojaactiva.Sielvalorentradodesdeelteclado(yguardadoenA1)essuperiora1000,pedirdescuentoconotroInputBoxyguardarloenlacasillaA2delahojaactiva.CalcularenA3,elpreciodeA1menoseldescuentodeA2.SubCondicional()ActiveSheet.Range("A1").Value=0'Ponerlascasillasdondeseguardanlosvalores0.ActiveSheet.Range("A2").Value=0ActiveSheet.Range("A3").Value=0ActiveSheet.Range("A1").Value=Val(InputBox("Entrarelprecio","Entrar"))'SielvalordelacasillaA1esmayorque1000,entonces,pedirdescuentoIfActiveSheet.Range("A1").Value>1000ThenActiveSheet.Range("A2").Value=Val(InputBox("EntrarDescuento","Entrar"))EndIfActiveSheet.Range("A3").Value=ActiveSheet.Range("A1").Value_ActiveSheet.Range("A2").ValueEndSubEjemplo7.Elmismoqueelanteriorperoutilizandovariables.OptionExplicitSubCondicional()DimPrecioAsIntegerDimDescuentoAsIntegerPrecio=0Descuento=0Precio=Val(InputBox("Entrarelprecio","Entrar"))'Sielvalordelavariableprecioesmayorque1000,entonces,pedirdescuentoIfPrecio>1000ThenDescuento=Val(InputBox("EntrarDescuento","Entrar"))EndIf

  • ActiveSheet.Range("A1").Value=PrecioActiveSheet.Range("A2").Value=DescuentoActiveSheet.Range("A3").Value=PrecioDescuentoEndSubViendolosdosprogramasanteriorespuedequelesurjaladudadesiemplearvariablesodirectamentevaloresalmacenadosenlasceldas.Lasolucinesfcil,loqueleparezcamsconvenienteencadacasoconcretoquedeseesolucionar.Lasvariables,aunquemuchasveces"innecesarias",quizsdejanlosprogramasmslegiblesyclaros.Ylalegibilidaddeunprogramaeslomsvaliosodelmundoparaunprogramador(profesionalmentehablando),sobretodosisedaelcaso(inevitableel99,999...%delasocasiones)quesetengaquemodificarunprogramaparadotarledemsfuncionalidades,facilitarsumanejo,etc.Enlamayoradeejemplosqueencontrarenestemanualverqueseutilizanvariablespreferentemente.Aunquemuchasvecessufuncinseasimplementerecogerdatosdelasceldasparaoperarlasydejarlasenotrasceldasy,consecuentemente,aumenteelnmerodeoperaciones,creemosqueconelloseganaenlegibilidadyflexibilidad.Ejemplo8.MacroquecomparalosvaloresdelascasillasA1yA2delahojaactiva.Sisonigualesponeelcolordelafuentedeambasenazul.SubCondicional2()IfActiveSheet.Range("A1").Value=ActiveSheet.Range("A2").ValueThenActiveSheet.Range("A1").Font.Color=RGB(0,0,255)ActiveSheet.Range("A2").Font.Color=RGB(0,0,255)EndIfEndSub

    EstructuraIf..ElseEstaestructuraseutilizacuandoserequiereunarespuestaalternativaaunacondicin.Suestructuraeslasiguiente.SiCondicinEntoncesSentncia1Sentncia2..SentnciaN

  • SinoSentncia1Sentncia2..SentnciaNFinSiObserveque,sisecumplelacondicin,seejecutaelbloquedesentenciasdelimitadoporSiCondicinEntoncesySinosecumplelacondicinseejecutaelbloquedelimitadoporSinoyFinSi.EnVisualBasiclainstruccinSiCondicinEntonces...Sino...FinSiseexpresaconlasinstruccionessiguientes.IfCondicinThenSentncia1Sentncia2..SentnciaNElseSentncia1Sentncia2..SentnciaNEndIfEjemplo9.EntrarunacantidadquerepresentaelpreciodealgoporeltecladoconlainstruccinInputBoxyguardarloenlaceldaA1delahojaactiva.Sielvalorentradodesdeelteclado(yguardadoenA1)essuperiora1000,seaplicaundescuentodel10%sinoseaplicaundescuentodel5%,eldescuentoseguardaenlacasillaA2delahojaactiva.ColocarenA3,eltotaldescuentoyenA4eltotalmenoseldescuento.SubCondicional_Else()DimPrecioAsSingleDimDescuentoAsSinglePrecio=0

  • Precio=Val(InputBox("Entrarelprecio","Entrar"))'Sielvalordelavariableprecioesmayorque1000,entonces,aplicardescuentodel10%IfPrecio>1000ThenDescuento=Precio*(10/100)ActiveSheet.Range("A2").Value=0,1Else'SinoAplicardescuentodel5%Descuento=Precio*(5/100)ActiveSheet.Range("A2").Value=0,05EndIfActiveSheet.Range("A1").Value=PrecioActiveSheet.Range("A3").Value=DescuentoActiveSheet.Range("A4").Value=PrecioDescuento