Återvänder Zero När en referenscell är Blank

October 14

Om du har en formel i ett kalkylblad, och cellen som refereras av formeln är tomt, då formeln fortfarande returnerar ett nollvärde. Till exempel, om du har formeln = A3, då formeln returnerar innehållet i cell A3, såvida cell A3 är tom. I så fall formeln returnerar värdet noll.

Detta verkar vara relaterade till tanken att det är omöjligt för en formel för att returnera ett tomt värde, när "blank" används synonymt med "tom". Du kan dock utöka din formel lite så att den returnerar en tom sträng. Istället för att använda = A3 som din formel, skulle du använda följande:

= OM (ISBLANK (A3), "", A3)

Denna formel använder ÄRTOM, som returnerar antingen sant eller falskt, beroende på om den refererade cellen (A3) är tom eller inte. IF returnerar sedan en tom sträng (""), om A3 är tom, eller så använder värdet i A3 om A3 inte är tom.

Oavsett vad formel avkastning, kan du fortfarande använda dess resultat i andra formler, och det kommer att fungera bra. Även om det återvänder en tom sträng, är det fortfarande behandlas med andra formler som om den innehöll noll. I områden där behandlar cellen som om den innehöll noll kan vara problematiskt (t.ex. när du kartlägga resultaten av formeln), då kan du ändra formeln lite, så som visas här:

= OM (ISBLANK (A3), NA (), A3)

Denna formel returnerar # N / A fel om A3 är tom. Detta fel fortplantar genom andra formler som refererar formeln, men # N / A fel ignoreras helt när kartläggning.

Medan ovanstående lösningar är tillfredsställande för de flesta människor, skulle en del människor verkligen vilja se en målcellen bli riktigt tomt om källcellen är tom. Till exempel kanske du vill cell B7 vara tomt om cell A3 är tom. Om du lägger en formel i cell B7 (som redan diskuterats), därefter cell B7 är inte riktigt tom-den innehåller en formel.

Om detta är ditt mål-sant "blankness" -Då du bara kan uppnå det genom att använda ett makro. Makrot kommer att behöva kontrollera om källcellen ändrades. Om det var, då det som finns i källan behöver kopieras till målcellen.

Private Sub Worksheet_Change (ByVal Target As Excel.Range)
Dim rMonitor Såsom Range
Dim rTarget Såsom Range

Ställ rMonitor = Range ("A3")
Ställ rTarget = Range ("B7")

Om inte korsa (Target, rMonitor) är ingenting Sedan
rMonitor.Copy rTarget
End If

Ställ rMonitor = Ingenting
Ställ rTarget = Ingenting
End Sub

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (10105) gäller Microsoft Excel 2007 och 2010. Du kan hitta en version av detta tips för den äldre menygränssnittet i Excel här: Återvänder Zero när en referenscell är Blank.