Майже правда доступна і просто про роботу в офісних пакетах
Досить часто виникає потреба у наборах тестових даних.
Наприклад, для налагодження макросу може знадобитися список прізвищ, імен та по-батькові. Або під час створення прайс-листа потрібен набір чисел, що нагадують ціни.
Зазвичай щастить, завдання на вирішення ставлять відразу з готовими зразками даних. Але, на жаль, не завжди.
Тому потрібно вміти досить швидко створити пачку даних, схожих на реальні.
Набирати їх з клавіатури – втомлює. Особливо якщо потрібно довгий список. Просто багаторазово копіювати той самий набір? Теж не зручно — коли потрібен набір унікальних даних, записи, що дублюються, заважають.
Електронні таблиці можна використовувати для створення таких тестових наборів.
1. Випадкові числа
В Excel є дві функції, які генерують випадкові числа -СЛЧИС() іСЛУЧМІЖ(). У Calc'е ці функції називаютьсяRAND() іRANDBETWEEN().
Слід мати на увазі, що в Calc'і ці функції доступні завжди, а ось Excel "згадує" про наявність функціїВИПАДКОМІЖ() тільки після встановлення Пакету аналізу!
СЛЧИС() абоRAND() повертає випадкове число в діапазоні від 0 до 1. Але для наших цілей бажано мати якісь цілі числа із заданого діапазону. Щоб отримати з допомогою цих функцій випадкове число з діапазону відmin_val доmax_val, довелося додатково обробити результат за допомогою такої формули:
= INT(RAND() * (max_val -min_val+1) + min_val)
Тобто для чисел від 25 до 100 формула була б такою:
= INT(RAND() * 76 + 25)
На щастя, немає необхідності писати такі формули - функції РАЗМІЖ() і RANDBETWEEN() усі необхідні перерахунки зроблять самостійно. У цихфункцій по два параметри - найменше значення, що генерується, і найбільше. Тобто для нашого прикладу достатньо написати
А якщо нам знадобляться цифри схожі на ціни (з копійками), можна написати, наприклад:
і отримаємо значення від однієї копійки до 10 рублів (гривень, доларів.)
2. Випадкові дати
Знаючи цю особливість, можемо легко згенерувати будь-яку випадкову дату.
Наприклад, така формула:
надасть довільну дату за останні два місяці. Точніше за останні шістдесят днів.
Можна використовувати більш складну формулу. Наприклад,
Залишається лише відформатувати отримане число у вигляді дати.
В Excel функціяTODAY() називаєтьсяСЬОГОДНІ(), а функціяDATE() -ДАТА()
3. Абракадабра (випадковий набір символів)
Такі рядки можуть знадобитися для генерації паролів або кодів.
Щоб отримати з цілого числа символ, можна використовувати функціюCHAR() (в Excel -СИМВОЛ() ). Достатньо пам'ятати, що в функцію потрібно передати як параметр число для отримання:
- цифри – від 48 до 57,
- латинських букв - від 65 до 90 для великих, від 97 до 122 для малих,
- кирилиць - від 192 до 223 для великих, від 224 до 255 для малих.
Залишається лише з'єднати достатню кількість таких символів за допомогою функціїCONCATENATE() (в Excel -ЗЧЕПИТИ() ) або за допомогою знака конкатенації, "склейки рядків" - амперсанда.
Наприклад, така ось функція:
генеруватиме капчі, в яких перша і четверта літери будуть великими латинськими, друга - малою латинською, а третій символ буде випадковою цифрою. Якось так:
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 ці функції називаютьсяЛЕВСИМВ(), ПРАВСИМВ() та ПСТР())
Але в цьому немає потреби! Адже і індекс, і номер – це просто велика кількість. Так, на початку цього числа можуть йти нулі, наприклад, 02099 або 067-233-41-95. Але це не важко зробити спеціальною функцією форматування
=TEXT(RANDBETWEEN(1;99999);"00000") (в Excel - =ТЕКСТ(ВИПАДМІЖ(1;99999);"00000") )
дасть нам п'ятизначне число схоже на поштовий індекс, а
5. Випадкове слово із набору
Наприклад, нам потрібен перемішаний перелік із кількох населених пунктів (країн, валют, квітів.)
Якщо набір невеликий, можна використовувати функціюCHOOSE() (ВИБІР()). Її перший параметр - індекс - задати через вже звичну для насRANDBETWEEN() (СЛУЧМІЖ()), а далі перерахувати потрібні значення.
Наприклад, сигнали світлофора можна отримати так:
Якщо ж потрібне випадкове слово з великого набору, товикористовуємо інший прийом.
Десь осторонь записуємо табличку "зразків". Наприклад, так:
І в осередках, де хочемо отримати випадкове значення з цієї таблиці, записуємо формулу:
Для Excel ці функції називаютьсяСМЕЩ(),РАХУНОК() іІНДЕКС()
Об'єднавши разом усі перелічені прийоми, можна швидко і просто генерувати сотні рядків тестових даних, дуже схожих на реальні. І зараз я покажу, як швидко сформувати список випадкових прізвищ, імен та по-батькові.