Почти истината е достъпна и проста за работата в офис пакети
Доста често има нужда от набори от тестови данни.
Например, за да отстраните грешки в макрос, може да ви е необходим списък с фамилни имена, собствени имена и бащини имена. Или когато създавате ценова листа, имате нужда от набор от числа, които приличат на цени.
Обикновено късмет, задачата за решаване се поставя веднага с готови извадки от данни. Но, уви, не винаги.
Следователно трябва да можете достатъчно бързо да създадете пакет от данни, подобни на реалните.
Въвеждането им от клавиатурата е досадно. Особено ако искате дълъг списък. Просто да копирате един и същ набор многократно? Освен това не е удобно - когато се изисква набор от уникални данни, дублиращите се записи пречат.
Електронни таблици могат да се използват за създаване на такива тестови случаи.
1. Случайни числа
Excel има две функции, които генерират произволни числа -RAND() иRANDBETWEEN(). В Calc същите тези функции се наричат RAND() иRANDBETWEEN().
Трябва да имате предвид, че тези функции винаги са налични в Calc, но Excel "запомня" наличието на функциятаRANDBETWEEN() само след инсталиране на Analysis ToolPak!
RAND() илиRAND() връща произволно число между 0 и 1. Но за нашите цели би било желателно да имаме няколко цели числа от дадения диапазон. За да получите произволно число отmin_val доmax_val с помощта на тези функции, ще трябва допълнително да обработите резултата, като използвате следната формула:
= INT(RAND() * (max_val -min_val+1) + min_val)
Тоест за числа от 25 до 100 формулата ще бъде:
= INT(RAND() * 76 + 25)
За щастие, няма нужда да пишете такива формули - функциите RANDBETWEEN() и RANDBETWEEN() ще направят всички необходими преизчисления сами. Тезифункции с два параметъра - най-малката генерирана стойност и най-голямата. Тоест, за нашия пример е достатъчно да напишете
И ако имаме нужда от числа, подобни на цените (с копейки), можем да напишем например:
и вземете стойност от една стотинка до 10 рубли (гривни, долари.)
2. Случайни дати
Познавайки тази функция, можем лесно да генерираме произволна дата.
Например тази формула:
ще даде произволна дата за последните два месеца. По-точно за последните шестдесет дни.
Можете да използвате по-сложна формула. Например,
Остава само да форматирате полученото число като дата.
В Excel функциятаTODAY() се наричаTODAY(), а функциятаDATE() еDATE()
3. Абракадабра (произволен набор от символи)
Такива редове може да са необходими за генериране на пароли или някои кодове.
За да получите знак от цяло число, можете да използвате функциятаCHAR() (в Excel -CHAR() ). Достатъчно е да запомните, че трябва да предадете число като параметър на функцията, за да получите:
- числа - от 48 до 57,
- латински букви - от 65 до 90 за главни букви, от 97 до 122 за малки букви,
- Букви на кирилица - от 192 до 223 за главни букви, от 224 до 255 за малки букви.
Остава само да свържете достатъчен брой такива знаци с помощта на функциятаCONCATENATE() (в Excel -CONCATENATE() ) или с помощта на знака за конкатенация, "залепване на низове" - амперсанд.
Например, това е функцията:
ще генерира captcha, в които първата и четвъртата буква ще бъдат главни букви на латиница, втората ще бъде малка латиница, а третият знак ще бъде произволно число. Нещо като това:
Rf8D, Gr5O, Qf5A, Oh5R, Ap9X, Qx6M, Ja2K, Ws2V, Sv5B, Kq5T,Vu1E, Jw9G, Fm0C, Bh9B, Oa3W, Pt6D, Oj1O, Ts4H, Mo1V.
Но формулата, въпреки своята простота, изглежда доста плашеща. Няма проблем! Може да се опрости леко:
Тук вместо да извикваме функциятаCONCATENATE(), ние използваме & за да слепим знаци в един низ и да генерираме число, ние не използваме конструкциятаCHAR(RANDBETWEEN(48;57), а просто произволно число от 0 до 9 -RANDBETWEEN(0;9). Самата програма ще разбере, че имаме нужда от низ и ще преобразува полученото число в цифров символ.
Разбира се, формулата може да се направи много дълга, за да се получат низове от 10, 15, 20 знака. Но всички те ще бъдат с еднаква дължина. И как мога да ги направя различни по дължина една от друга? Да, много лесно! Използвайки функциятаLEFT (или RIGHT, или MID), изрежете произволен брой знаци от получения низ. (В Excel тези функции се наричат LEFT(), RIGHT() и MID())
Но няма нужда от това! В крайна сметка и индексът, и числото са просто голямо число. Да, в началото на този номер може да има нули, например 02099 или 067-233-41-95. Но не е трудно да го направите със специална функция за форматиране.
=TEXT(RANDBWEEN(1;99999),"00000") (в Excel - =TEXT(RANDBWEEN(1;99999),"00000") )
ще ни даде петцифрен номер, подобен на пощенски код, и
5. Случайна дума от комплекта
Например, имаме нужда от разбъркан списък от няколко населени места (държави, валути, цветове.)
Ако наборът е малък, тогава може да се използва функциятаCHOOSE(). Първият му параметър - индекс - трябва да бъде зададен чрезRANDBETWEEN() (Randombetween()), който вече ни е познат, и след това да изброим необходимите стойности.
Например светофари могат да бъдат получени по следния начин:
Ако се изисква произволна дума от голям набор, тогаваизползваме различен подход.
Някъде отстрани записваме знак "проби". Например така:
И в клетките, където искаме да получим произволна стойност от тази таблица, записваме формулата:
За Excel тези функции се наричат OFFSET(),COUNTA() иINDEX()
Като комбинирате всички тези техники заедно, можете бързо и лесно да генерирате стотици редове от тестови данни, които са много подобни на реалните. И сега ще ви покажа как бързо да генерирате списък с произволни фамилни имена, собствени имена и бащини имена.