Excel-sivuilla näyttää käyvän pätevää sakkia, joten rohkenen kysyä, miten ratkaisen seuraavan ongelman: Taulukossa yksi on solualue, johon kirjoitetaan tiettyjä arvoja. Vaihtoehtoisia arvoja on kymmeniä. Taulukossa kaksi on solu, johon tulisi saada tieto, että yhteen tai useampaan em. solualueen soluista on kirjoitettu jokin haluttu arvo. Tämä tieto tulisi olla esitettynä arvoilla 1 (tosi) tai 0 (epätosi).
Hakuapua
aukkoja sivistyksessä
5405
0Äänestä
Muut lukivat myös
Ketjusta on poistettu 1 sääntöjenvastainen viesti.
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
=JOS(LASKE.JOS(A:A;C6)>0;1;0)
Ihan mukava kaava tuokin, mutta en näe siinä ratkaisua tähän ongelmaani. Taulukossa kaksi on vain yksi solu, jonka tulos olisi 1, mikäli yksi tai useampi ehdon täyttävä numero löytyy taulukon yksi solualueelta (esim. B6:C9). Muuten arvo olisi 0. Hakuehdot täyttäviä numeroita on kymmeniä.
Toisaalta kaavaksi voisi käydä myös sellainen, että mikäli taulukon yksi solualueella B6:C9 on yksikin kelpoisuusehdon täyttävä tieto, taulukossa kaksi olevan tulossolun arvona olisi 1, muuten arvona olisi 0.
=IF(SUM(Sheet1!B6:C9)>0;1;0)
Kumpikin kaavoista on hyödynnetty. Nokkela täytyy olla, että ymmärtää käyttää laskukaavaa, vaikka varsinaista laskutulosta ei haekaan ;)
Arrayhin haettavat luvut. Nyt "Tulos" taulukon soluun A1 vertailun tulos.
taulukon moduuliin...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Laskuri As Long
Dim Haettavat As Variant
Dim Loydettysolu As Range
Haettavat = Array(11, 22, 33, 44, 55)
With ActiveSheet
For Laskuri = LBound(Haettavat) To UBound(Haettavat)
Set Loydettysolu = .Range("B6:C9").Find(What:=Haettavat(Laskuri), MatchCase:=True)
If Loydettysolu Is Nothing Then
Sheets("Tulos").Range("A1") = 0
Else
Sheets("Tulos").Range("A1") = 1
Exit For
End If
Next Laskuri
End With
End Sub