vbstreets конференция - тема гледка - на ексел

Като лист Excel, за да намерите най-бързия линия, в която няколко клетки от стойностите отговарят на условията?

Ако тази клетка е една, мисля, че най-бързият: MoyList.Range ( "A: A"). Намерим (какво:. = "Value1")

А ако търсите по няколко колони? Нека първите две.
Можете, разбира се, на цикъла - но бавно на големи масиви.
За I = 1 до PoslednyayaStroka
ако клетки (I, 1) .value = стойност1 и клетки (I, 2) .value = стойност2 тогава
"Това е намерена
крайна сметка, ако
следващата аз

Но по какъв начин е най-бързо да направите това?
Аз не означава в масив от всички хвърлянето и там да се оправи - това не е основна промяна. Базата данни е най-бързо - искане за полеви условия, можете да намерите запис за него и прочетете стойностите на всички необходими полета. Как да се отличи да направите бързо търсене в няколко реда клетки и намерете реда? Точно това, което имам нужда, не е низ, както и други ценности от този ред.

типа на данните в клетките на цифровата, текст или смесени? Независимо дали данните могат да се повтарят в различни линии?
И в зависимост от това да избира между дървото, хеш, или просто двоично търсене.

О, Sancta simplicitas!

Тип на стойност текст. Има двойни стойности във всяка колонка, но се комбинират, за да се даде уникален идентификатор (или в резултат намерено съвпадение).
Да, може би си прав намек - направи спомагателни колона YacheykaStolbtsa1 YacheykaStolbtsa2, търсете върху него и след това да почисти след обработка на стойностите в тази графа.
И колко още можете да потърсите на две текстови колони?
За двоично търсене, за да се сортират? Аз не искам да се докоснат до тези данни.

Още един мисъл дойде на ум. Всъщност тази таблица може да се копира в нов работен лист, има вид на полето за единна, или дори как да го направя и търсене. След този лист се отстранява. Какъв начин да противодейства най-бързо търсене на текст? Смята се, че в тази област се комбинира уникални данни, но все пак хората правят - в краен случай е възможно да се провери уникалността на началото. Търсене много - тази таблица тип указател, така че времето за търсене е важно.

И колко колони? Търсенето трябва да се извършва само в първите две колони, или по какъвто и две? Ако второто съобщение с спомагателната колона изчезва (и не е ефективна, тъй като тя има същото сложността като израз ако клетки # 40 I, 1 # 41; .value = стойност1 и клетки # 40 I, # 2 41; .value = стойност2 след това).
Например, съществува допълнителна маса (под буквите се отнася до клетъчни стойности):
Код: Избери всички 1 2 3 4 5

1 А Б В Г Д
2 F G H I J
3 К Л М Н О
След това е необходимо да се свържат всички двойки в съответствие с тази линия номер:
Код: Избери всички 1 AB = BC = CD = 1 1 DE = 1
1 AC = BD = 1 CE = 1
AD = 1 BE = 1
AE = 1

FG = GH = 2 2 2 HI = IJ = 2
FH = 2 GI = 2 HJ = 2
FI = 2 GJ = 2
FJ = 2
и така нататък.

Остава да се намери начин да се запазят тези двойки. Той идва на ум B-дърво, тъй като тя е най-често използваният тип индекс и различните му разновидности се използват в почти всички големи бази данни.

О, Sancta simplicitas!