En millään pääse eteenpäin seuraavassa. Toivottavasti joku viisaampi osaisi auttaa...
Minulla on esimerkissäni ensimmäisessä taulussa otsikkosarakkeet ALUE ja KUNNAT. Alueita on 3: x,y,z. Kuhunkin tuotteeseen kuuluu kuntia eri määrä, ja kaikki kunnat ovat omissa sarakkeissaan, ks. alla
ALUE KUNNAT
x a b c
y d e f g h i
z j k l m
Seuraava taulukko on (eri välilehdellä)oleva tieto, ja nyt haluaisin funktiohärpäkkeen, joka tuottaa arvon 1, jos ao. taulussa oleva vastaajan kotikunta sisältyy ensimmäisessä sarakkeessa määriteltyyn alueeseen ja muuten 0.
ALUE KOTIKUNTA (TULOS, johon pyritään)
y e 1
y l 0
x a 1
Olen yrittänyt yhdistää Jos ja Phaku-funktioita, mutta huonolla menestyksellä, kun en tiedä miten Phaun saisi sarakkeen sijaan etsimään matriiseista - tai jotain sinne päin...?
(en näköjään osaa tehdä esimerkeistä kovin fiksuja, mutta toivottavasti selventävät.)
Jos-lauseen ja hakujen yhdistäminen?
2
442
Vastaukset
moduuliin...
ja muuttele taulukoiden nimet sopiviksi
Option Explicit
Sub Siirrä()
Dim Alue As Range
Dim Kotikunta As Range
Dim Solu As Range
Dim haku As Variant
Dim vika As Integer
On Error Resume Next
Application.ScreenUpdating = False
Worksheets("Sheet2").Activate
vika = Range("A65536").End(xlUp).Row
For Each Solu In Range("A2:A" & vika)
Set Alue = EtsiJaSiirrä(Solu, Range("Sheet1!A:A")).EntireRow
Set Kotikunta = EtsiJaSiirrä(Solu.Offset(0, 1), Alue)
If Not Kotikunta Is Nothing Then
Solu.Offset(0, 2) = 1
Else
Solu.Offset(0, 2) = 0
End If
Next
Application.ScreenUpdating = True
End Sub
Function EtsiJaSiirrä(Hakuehto As Variant, HakuAlue As Range) As Range
Dim Solu As Range
Dim EkaOsoite As String
With HakuAlue
Set Solu = .Find( _
What:=Hakuehto, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not Solu Is Nothing Then
Set EtsiJaSiirrä = Solu
EkaOsoite = Solu.Address
Do
Set EtsiJaSiirrä = Union(EtsiJaSiirrä, Solu)
Set Solu = .FindNext(Solu)
Loop While Not Solu Is Nothing And Solu.Address EkaOsoite
End If
End With
Worksheets("Sheet2").Activate
End Function- tämä ?
=SUMPRODUCT((A1=Sheet1!$A$2:$A$4)*(Sheet2!B1=Sheet1!$B$2:$G$4))
TULOJEN.SUMMA
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Se oli siinä sitten
Yhdysvaltain presidentti Donald Trump on määrännyt kaiken maan Ukrainalle toimittaman sotilaallisen tuen tauolle, kertoo7272266Paljonko aikaa on kulunut siitä kun viimeksi tapasit hänet?
Päiviä? Viikkoja? Kuukausia? Vuosia?502259- 1252173
- 1272113
- 541756
Trump tekee rauhan Amerikan ja Venäjän ehdoilla
Ukraina luovuttaa Venäjän haluamat alueet Venäjälle. Ukraina luovuttaa Amerikan haluamat arvokkaat mineraalit Amerikall2411633- 311361
Syvälliset keskustelut
Olisivat tärkeintä ensisijaisesti hänen kanssaan Tulisi sellainen hetki, mutta kaikki meni pieleen201309Olisipa sitä henkisesti eheämpi ja rohkeampi
mikään maallinen mammona ei itseäni kiinnosta, eikä sen menetys kiinnostus. Mutta kun kohtaa jonkun sykäyttävän ihmisen,161195Kyllähän tämä vähän kirpaisee
Mutta oman sisäisen rauhan vuoksi jätän sinut nyt historiaan. Todennäköisesti olet jo sinäkin mennyt eteenpäin. Olipah381137