Formulės iššūkis - pažymėti ne eilės kodus Dėlionė

Turinys

Problema

Mes turime raidinių ir skaitmeninių kodų sąrašą. Kiekvieną kodą sudaro viena raidė (A, B, C ir kt.), Po kurios nurodomas 3 skaitmenų skaičius. Šie kodai turėtų būti pateikiami abėcėlės tvarka, tačiau kartais jie nesutampa. Mes norime pažymėti ne eilės kodus.

1 iššūkis

Kokia formulė stulpelyje „Patikrinti“ šalia kodo, kuris neatitinka eilės, įdės „x“? Šiame iššūkyje mes tik tikriname, ar kodo * skaitinė * dalis neatitinka eilės, o ne tai, ar pati raidė yra ne eilės.

2 iššūkis

Kaip galima išplėsti aukščiau pateiktą formulę, norint patikrinti, ar „alfa“ kodo dalis (A, B, C ir kt.) Neatitinka sekos? Pavyzdžiui, turėtume pažymėti kodą, kuris prasideda „A“, jei jis rodomas po „C“ arba „B“ prasidedančio kodo.

Atsisiųskite toliau pateiktą darbalapį ir priimkite iššūkį!

Pastaba: darbaknygėje yra 2 lapai, vienas skirtas iššūkiui Nr. 1, kitas - iššūkiui Nr. 2.

Užuomina - šiame vaizdo įraše pateikiami keli patarimai, kaip išspręsti tokią problemą.

Prielaidos

  1. Visuose koduose visada yra keturi simboliai: 1 didžioji raidė + 3 skaičiai.
  2. Vienos raidės kodų skaičius yra atsitiktinis, tačiau skaitmeninėse reikšmėse neturėtų būti spragų.
  3. Pirmąjį kodą reikia pažymėti tik raidės iš eilės, o ne visus paskesnius kodus.
Atsakymas (spustelėkite, jei norite išplėsti)

Štai keletas veikiančių sprendimų. Svarbu suprasti, kad yra daug, daug būdų, kaip išspręsti įprastas „Excel“ problemas. Žemiau pateikti atsakymai yra tik mano asmeniniai pageidavimai. Visose toliau pateiktose formulėse funkcijų pavadinimus galima spustelėti, jei norite gauti daugiau informacijos.

1 iššūkis

Iš pradžių ėjau pagal šią formulę:

=IF((LEFT(B5)=LEFT(B6))*(MID(B5,2,3)+1MID(B6,2,3)+0),"x","")

Pastaba MID pateikia tekstą. Pridėję 1 ir pridėdami nulį, „Excel“ priverčia tekstą paversti skaičiumi. Padauginus loginį testą IF viduje, naudojama loginė logika, kad būtų išvengta kito įdėto IF. Nesu tikras, kodėl nenaudojau „RIGHT“, kuris gerai veiktų ir čia.

Taip pat atkreipkite dėmesį, kad LEFT nereikalaujamas simbolių skaičius ir jis pateiks pirmąjį simbolį, jei jis nenurodytas.

Remdamiesi kai kuriais sumaniais atsakymais žemiau, galime šiek tiek optimizuoti:

=IF((LEFT(B5)=LEFT(B6))*(MID(B6,2,3)-MID(B5,2,3)1),"x","")

Čia matematinė operacija, atėmus MID iš MID, automatiškai priverčia teksto reikšmes skaičiais.

2 iššūkis

Šiam sprendimui aš naudojau keletą įdėtų IF (skaitomumui pridėti pridėtos eilutės pertraukos):

=IF(LEFT(B5)=LEFT(B6), IF((MID(B5,2,3)+1MID(B6,2,3)+0),"x",""), IF(CODE(B5)+1CODE(B6),"x",""))

Aš tai padariau, nes pirmasis testas LEFT (B5) = LEFT (B6) nustato, ar mes tikriname skaičius, ar raides. Jei pirmasis simbolis yra tas pats, mes tikriname skaičius, kaip nurodyta aukščiau. Jei ne, tikriname tik pirmąją raidę.

Atminkite, kad funkcija CODE grąžins pirmojo simbolio ascii numerį, jei teksto eilutėje yra daugiau nei 1 simbolis. Tai jaučiasi kaip nulaužimas, ir tai daro kodą galbūt mažiau suprantamą, bet jis veikia :)

Jei tai pažeidžia jūsų jautrumą, naudokite kairę, kaip nurodyta aukščiau, CODE viduje, kad pateiktumėte tik pirmąjį simbolį.

Įdomios straipsniai...