• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Data zoeken met boolean

Status
Niet open voor verdere reacties.

tvdh87

Gebruiker
Lid geworden
22 okt 2012
Berichten
12
Hallo!

Ik heb een vraagje wat hopelijk makkelijk op te lossen is:

Ik heb 1 tabel met gegevens van leveranciers, deze gelden voor sommige locaties. Iedere locatie heeft één kolom, dmv een "x" geef ik aan in de desbetreffende cel of de leverancier op die rij bij die locatie hoort. Nu wil ik graag de leveranciers overzichtelijk in één lijst; dus zonder de leveranciers die niet bij die locatie horen. Dit is een klein formuletje wat ik nu heb:

= ALS(leveranciersinfo!O10="x"; leveranciersinfo!A10)

Waar in A10 de leveranciers staat, en rij O de rij van desbetreffende locatie. Ik heb een tabel waar ik een filter op toe pas; "ONWAAR" filter ik eruit, en ik heb mijn lijst.

Alleen als ik nu een leverancier toevoeg halverwege de leveranciers lijst dan schuift alles één cijfertje op; dus ook in de overzichtstabel per locatie. De nieuw toegevoegd leverancier wordt dus niet toegevoegd in de tweede tabel. Je krijgt bijvoorbeeld twee cellen onder elkaar:

= ALS(leveranciersinfo!O10="x"; leveranciersinfo!A10)
= ALS(leveranciersinfo!O12="x"; leveranciersinfo!A12)

Waarbij op rij 11 net een leverancier is toegevoegd, deze neemt ie dus niet mee...

Een beetje een lang verhaal geworden, maar ik hoop dat iemand hier een oplossing voor heeft...Hoe zorg ik voor een "directere" koppeling tussen die twee tabellen?

Ik dacht "VERT ZOEKEN" of MATRIX icm VERGLIJKEN te kunnen gebruiken, maar dat is enkel met een unieke ID. Hier "zoekt" ie op de Boolean waarde "x"
 
Ow, dank Sylvester, was ik niet van op de hoogte. In de bijlage een voorbeeld excel:

Als hier in de "leverancierslijst"-tabel een regel wordt toegevoegd tussen bijvoorbeeld leverancier 3 en 4, wordt deze niet automatisch toegevoegd bij het "overzicht locatie X". Ook niet na het opnieuw toepassen van de filter.

Hopelijk maakt dit het iets duidelijker.

Bekijk bijlage Voorbeeld.xlsx
 
met vba macro gaat dat wel

maar zonder vba macro moet je bij de experts hier zijn.

als het met vba macro's opgelost mag worden dan hoor ik het wel
dat heeft echter het nadeel dat undo niet meer werkt.
 
Maak obv de tabel eens een draaitabel en filter die.
Een draaitabel moet je elke keer verversen nadat je de brongegevens hebt gewijzigd. Met één regel vba is dat probleem te verhelpen (thisworkbook.refreshall).
Meestal is het verstandig om in je brontabel voor één kolom Locatie te kiezen en die te vullen met X en Y. Als er ooit een nieuwe locatie bij komt hoef je je tabelstructuur niet meer te veranderen.
 
Dank voor jullie reactie, een draaitabel werkt inderdaad prima. Het enige probleem is nu dat de extra informatie die ik bij de selectie wil plaatsen niet gekoppeld zit aan de juist rij. In de bijlage het voorbeeld; als er nu een nieuwe leverancier wordt toegevoegd en ik de draaitabel ververs (met bv een macro, of handmatig), dan verspringt uiteraard alles en klopt de extra informatie (in dit geval of er een contract aanwezig is of niet) niet meer.

Een zoektocht over extra lege kolommen toevoegen aan een draaitabel leverde niks op. Is er op een andere manier om de extra kolommen te koppelen aan desbetreffende regels?

Bekijk bijlage Voorbeeld2.xlsm
 
Waarom voeg je de kolom met de contractinformatie niet toe aan de brontabel waarop je je draaitabel baseert (het tabblad leveranciersinfo). Dan kun je de variabele contract ook gewoon opnemen in je draaitabel
 
Ik neem aan dat we niet het complete plaatje hebben want zoals je het nu beschrijft heb je geen draaitabel nodig. Voeg een kolom Contract toe aan je brontabel. Als je - zoals eerder voorgesteld - de locaties in één kolom zet kun je in de tabel eenvoudig filteren.
(Edit: twee zielen één gedachte)
 
Dank voor jullie reactie, het probleem is echter dat voor sommige leveranciers geen contract is en voor sommige wel, tevens is er nog een kolom opmerkingen en werkzaamheden die ook voor iedere locatie verschilt. Dus deze informatie kan niet in de "hoofd-tabel" (hier staan ook de adres gegevens, enz. van de leveranciers) worden weggezet. Zeker omdat er meer dan 30 locaties zijn, de hoofd-tabel is dan niet nauwelijks meer te bewerken (i.e. de werkzaamheden/opmerkingen veranderen van een locatie).

Ik hoop dat ik het een beetje begrijpbaar heb opgeschreven. De draaitabel heeft al veel opgelost, enkel de locatie specifieke opmerkingen/werkzaamheden kan ik niet in de "hoofd-tabel" verwerken.

Edit: Pixcel, jou opmerking over de locaties in één kolom zetten is lastig omdat leveranciers voor meerdere locaties leveren, van 1 tot >30 locaties. Ik zie niet in hoe ik dit overzichtelijk in één kolom kan zetten en dan nog per locatie kan filteren?
 
Laatst bewerkt:
Als je dit als database benadert krijg je al snel te maken met 5 tabellen:
Je hebt 3 stamtabellen: Leveranciers, Onderdelen en Locaties, met ieder hun eigen kenmerken.
Bij sommige Leverancier-Onderdeel combinaties wil je gegevens vastleggen mbt contract en werkzaamheden (tabel 4)
Bij sommige Leverancier-Onderdeel combinaties wil je vastleggen voor welke Locaties ze werken (tabel 5, drie kolommen lev-ond-loc).
Mss helpt dit.
 
Dank Frans voor je input opnieuw,

Helaas zijn de opmerkingen/contracten/werkzaamheden veranderlijk ieder jaar en moeten dus eenvoudig per locatie aangepast worden, ook zijn ze alle (zowel contract, als werkzaamheden en opmerkingen) locatie gebonden. De draaitabel werkt prima, het is enkel als er nieuwe leverancier toegevoegd wordt voor bepaalde locaties, dat de sheets van die locaties verspringen omdat de extra locatie informatie (opmerkingen/contract/werkzaamheden) niet gekoppeld zit aan de draaitabel.

Mja, hier kan ik mee leven, het is gewoon goed opletten en de boel doorschuiven. Het zou alleen mooi zijn als het wel gekoppeld zou kunnen worden:

Als je dit als database benadert krijg je al snel te maken met 5 tabellen:
Je hebt 3 stamtabellen: Leveranciers, Onderdelen en Locaties, met ieder hun eigen kenmerken.


Onderdelen zijn leveranciers-afhankelijk en kunnen dus samen genomen worden, de locatie is het selectie criterium.

Bij sommige Leverancier-Onderdeel combinaties wil je gegevens vastleggen mbt contract en werkzaamheden (tabel 4)


Dit is locatie afhankelijk, niet leveranciers-onderdeel afhankelijk

Bij sommige Leverancier-Onderdeel combinaties wil je vastleggen voor welke Locaties ze werken (tabel 5, drie kolommen lev-ond-loc).
Mss helpt dit.


Dit klopt, en werkt dmv de draaitabel en selectie gebaseerd op "x"

Bedankt voor je input in ieder geval, de draaitabel heeft het al een stuk makkelijker gemaakt.
 
Laatst bewerkt:
Data zoeken met filtering.

TvdH.

Als ik de hele discussie begrijp is dus eigenlijk de leverancier en het onderdeel en de locatie samen de sleutel tot
je tabel.

Ik heb hiervoor je bestand wat herschreven en hierover een filter aangebracht. Door het filter te wijzigen
kun je lijsten maken van welke locatie dan ook.

Veel Succes.

Bekijk bijlage HelpMijDataZoekenBoolean.xls
 
Dank voor jullie reactie.

Jean-Paul, je voorbeeld (serieus lange formule trouwens! :-) ) levert hetzelfde probleem op bij het toevoegen van dan wel nieuwe locatie's dan wel het plaatsen van een extra kruisje (de locatie specifieke info verschuift nog steeds niet mee). Het gedraagt zich mijns inziens precies zoals de draaitabel doet?

Elsendoorn, jou optie zou perfect zijn, waren het niet dat één enkele leverancier voor meer dan 30 locaties kan "leveren." Dit zou dus betekenen dat deze leverancier 30 keer gekopieerd zou moeten worden? Dit heb ik liever niet, vooral ivm aanpassen namen/verwijderen van leveranciers (dit zou ik dan 30 keer moeten doen bijvoorbeeld).

Het liefst heb ik één leveranciers lijst inclusief adresgegevens, etc + de locatie's waar deze actief is. Dan een apart tablad per locatie wat de locatie specifieke leveranciers (+ onderdeel) weergeeft en locatie specifieke opmerkingen, contract (ja/nee) en werkzaamheden weergeeft. Dit werkt, enkel is deze extra info niet gekoppeld aan de draaitabel, wat verschuivingen in deze tabel (extra leverancier voor die locatie) alle extra opmerkingen "in de war schopt"

Ik hoopte dat dit wel te overzien was, maar aangezien het leveren van leveranciers aan bepaalde locaties vaak veranderd is dit nog steeds niet echt praktisch...
 
JP, hartelijk dank! Het heeft even geduurd voordat ik erachter was, en hoe Sub SaveInfo() en Sub RestoreInfo() nu precies werken is me nog steeds niet helemaal duidelijk. Maar het werkt wel al erg goed, ik kom alleen drie dingen tegen:

- Deze regel:
Code:
Aantal = WorksheetFunction.Max(Range("d:d")) + 3
geeft een foutmelding op sommige momenten (reproduceerbaar door een leverancier toe te voegen): "Eigenschappen Max kan niet worden opgehaald." Het heeft iets met de range te maken, maar ik begrijp niet wat "d:d" voor range aangeeft?

Edit:
Code:
xXx = WorksheetFunction.Substitute(Range("H1"), " ", "_")
    Aantal = WorksheetFunction.CountIf(Range(xXx), "x") + 3

Dit van de andere sub geeft geen error. Blijf wel benieuwd wat die Range("d:d") doet?


- Het veranderen van de extra info (contract, werkzaamheden, opmerkingen) wordt niet opgeslagen als er direct op de "leveranciersinfo" sheet wordt geklikt. Via een andere sheet terug gaan naar de "leveranciersinfo" werkt wel. Blijkbaar werkt de Sub SaveInfo() dan niet goed?

- Het invoeren van een nieuwe leverancier bij de "leveranciersinfo" sheet en deze bijvoorbeeld weergeven bij "Locatie Y" (dmv een "x") zorgt er helaas nog altijd niet voor dat de extra informatie "doorschuift." Het aan en uitzetten van "x"jes werkt prima, alleen het toevoegen van leveranciers niet.

Ik ga kijken of het me lukt om zelf een en ander te veranderen, maar mijn kennis over VBA icm Excel is erg beperkt...Wel nogmaals dank! Dit had ik zelf nooit kunnen bedenken.

Edit: Hmm, je schrijft het weg in de rijen AA:AD weg en haalt het dan terug naar gelang er een "match" is. Het vervelend is alleen als er een filter wordt toegepast op de leverancierslijst, dan gaat t ook mis. Maar het is wel fijn om te zien hoe dit soort constructies werken :-)

Edit2: Het wegschrijven van de extra data met de leveranciersnaam als unieke ID (op de locatie sheet) en dan via een LookUp terug plaatsen achter de nieuwe plek van de leverancier in de draaitabel (mocht die verschoven zijn). Dat zou moeten kunnen toch? Ik ga eens kijken hoever ik kom met mijn beperkte kennis
 
Laatst bewerkt:
Bij het verlaten van het tabblad zal de macro SaveInfo geactiveerd worden,de informatie van de kolommen rij, contact, werkzaamheden en opmerkingen worden in de kolommen AA:AD opgeslagen.
Bij het activeren van het tabblad zal de macro RestoreInfo de data terug ophalen in de kolommen AA:AD.
***Aantal = WorksheetFunction.Max(Range("d:d"))*** berekend het grootste getal in de kolom + 3 lege rijen,nodig om alle informatie op te slaan.
"Eigenschappen Max kan niet worden opgehaald."vervangen door grootste zal misschien wel lukken, het zou misschien te maken hebben door dat ik nog met excel2003 werk.
 
JP, hartelijk dank! Die actie op activate en deactivate is wel tricky, maar met het implementeren van een save button is het gelukt. Nogmaals dank voor je hulp
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan