Forlate en celleverdi Uendret Hvis en betingelsen er usann

October 24  by Eliza

Mens du bruker HVIS-funksjonen, ønsker Vineet å beholde den gamle verdien i cellen hvis betingelsen er usann. Med andre ord, bør verdien i en celle hvor IF funksjonen brukes endre bare hvis betingelsen som blir testet av IF-funksjonen er sann. Som standard, men gjør HVIS-funksjonen verdien 0 hvis betingelsen er usann.

HVIS-funksjonen kan ta opp til tre parametere. Den første parameteren er sammenligningen som skal gjøres, er det andre parameter hva bør returneres hvis sammenligningen er sann, og den tredje er hva som skal returneres hvis sammenligningen er falsk. Det er mulig å forlate av den siste parameteren, men hvis du gjør deretter Excel vil returnere verdien 0 hvis sammenligningen er falsk. (Dette er hva Vineet er å se returnert av hans IF funksjonsbruken.)

Den åpenbare løsningen, da, er å sørge for at du gir HVIS-funksjonen med noe som skal returneres når sammenligningen er falsk. For eksempel, la oss si at din formel er i celle B1 og du sammenligner noe i celle A1. Formelen du bruker, kan se slik ut:

= HVIS (A1 <10, "under ti", B1)

Legg merke til at ordene "under ti" blir returnert hvis verdien i A1 er mindre enn 10. Hvis dette vilkåret ikke er oppfylt, så verdien i B1 er returnert. Etter denne formelen er i celle B1 betyr dette at den tidligere verdi i cellen returneres dersom betingelsen er usann.

Det betyr også at formelen inneholder en sirkulær referanse. For sirkelreferanser å fungere OK du trenger å la Excel vite at det er OK for dem å skje i regnearket. Velg Verktøy | Alternativer | Beregning fanen og sørg for at gjentakelse er merket. Excel vil nå tillate den sirkelreferanse uten å klage.

Hvis du ikke ønsker å tillate en sirkelreferanse i regnearket, så eneste utvei er å skape en makro som oppdaterer verdien i celle B1 basert på eventuelle endringer i celle A1:

Private Sub Workbook_SheetChange (ByVal Sh Som Object, _
ByVal Target As Range)

'Se om endringen er knyttet til vår celle
Hvis ikke (Application.Intersect (Target, Range ("A1")) _
Er Nothing) Deretter
Hvis Range ("A1") <10 Da
Range ("B1") = "under ti"
End If
End If
End Sub

Denne enkle makro, da lagt til Thisworkbook modul, utføres hver gang det er en endring i arbeidsboken. Hvis verdien er celle A1 endres (og bare denne celle), blir verdien kontrolleres for å se om den er mindre enn 10. Hvis det er, blir verdien i cellen B1 endres. Hvis det ikke er det, så verdien i celle B1 igjen alene.

Det er ett "gottcha" som du trenger å huske på med noen av de tilnærminger diskutert så langt, formel eller makro. Hvis verdien i celle A1 er (la oss si) 15, deretter celle B1 vil inneholde det som var der før, uansett hva det var. Hvis du endrer verdien i celle A1 til (la oss si) 7, deretter B1 vil endres til "under ti." Det er greit, men fra det punktet på celle B1 vil aldri ser ut til å endre seg. Hvorfor? Fordi hvis du deretter endrer celle A1 til en verdi som er større enn 10, vil celle B1 inneholder (som nettopp forklart) hva som var der før. Og, som du nå forstår, er den verdien som var der før resultatet av den forrige sant resultat, som var "under ti." Dermed sant eller usant, formelen eller makro fra dette punktet viser teksten "under ti."

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (8260) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Leaving en celleverdi Uendret Dersom betingelsen er usann .