
Bendroji formulė
(=INDEX(range,MATCH(FALSE,ISBLANK(range),0)))
Santrauka
Norėdami gauti pirmąją ne tuščią vertę (tekstą ar skaičių) vieno stulpelio diapazone, galite naudoti masyvo formulę, pagrįstą funkcijomis INDEX, MATCH ir ISBLANK. Parodytame pavyzdyje formulė D10 yra:
(=INDEX(B3:B11,MATCH(FALSE,ISBLANK(B3:B11),0)))
Pastaba: tai yra masyvo formulė, kurią reikia įvesti paspaudus „Control-Shift-Enter“.
Paaiškinimas
Taigi, problemos esmė yra tokia: mes norime gauti pirmąją ne tuščią langelį, bet neturime tiesioginio būdo tai padaryti „Excel“. Galėtume naudoti VLOOKUP su pakaitos simboliu * (žr. Nuorodą žemiau), bet tai veiks tik tekstui, o ne skaičiams.
Taigi, mums reikia sukurti reikalingą funkcionalumą, susidedant iš formulių. Norėdami tai padaryti, turite naudoti masyvo funkciją, kuri "išbando" langelius ir pateikia TRUE / FALSE reikšmių masyvą, kurį galime pateikti į funkciją MATCH.
Dirbant iš vidaus, ISBLANK funkcija įvertina langelius diapazone B3: B11 ir pateikia masyvą, kuris atrodo taip:
(TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE)
Kiekvienas FALSE reiškia langelį diapazone, kuris nėra tuščias.
Tada MATCH masyvo viduje ieško FALSE ir grąžina pirmojo surasto atitikimo, šiuo atveju 2, padėtį. Šiuo metu pavyzdžio formulė dabar atrodo taip:
(=INDEX(B3:B11,2,0)))
Galiausiai, INDEX funkcija perima ir gauna masyvo 2 pozicijos vertę, kuri yra 10.
Pirmoji ilgio vertė, lygi nuliui
Norėdami gauti pirmąją ilgio reikšmę, kuri nėra lygi nuliui, galite įtraukti LEN funkciją taip:
(=INDEX(range,MATCH(TRUE,LEN(range)>0,0)))
Pirmoji skaitinė vertė
Norėdami gauti pirmąją skaitinę reikšmę sąraše, galite pritaikyti formulę naudoti funkciją ISNUMBER, tada pakeisti logiką, kad ji atitiktų TRUE, o ne FALSE:
(=INDEX(range,MATCH(TRUE,ISNUMBER(range),0)))
Tai taip pat yra masyvo formulė, kurią reikia įvesti paspaudus „Control + Shift“ + „Enter“.