Майже правда доступна і просто про роботу в офісних пакетах

Досить часто виникає потреба у наборах тестових даних.

Наприклад, для налагодження макросу може знадобитися список прізвищ, імен та по-батькові. Або під час створення прайс-листа потрібен набір чисел, що нагадують ціни.

Зазвичай щастить, завдання на вирішення ставлять відразу з готовими зразками даних. Але, на жаль, не завжди.

Тому потрібно вміти досить швидко створити пачку даних, схожих на реальні.

Набирати їх з клавіатури – втомлює. Особливо якщо потрібно довгий список. Просто багаторазово копіювати той самий набір? Теж не зручно — коли потрібен набір унікальних даних, записи, що дублюються, заважають.

Електронні таблиці можна використовувати для створення таких тестових наборів.

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 ці функції називаютьсяСМЕЩ(),РАХУНОК() іІНДЕКС()

Об'єднавши разом усі перелічені прийоми, можна швидко і просто генерувати сотні рядків тестових даних, дуже схожих на реальні. І зараз я покажу, як швидко сформувати список випадкових прізвищ, імен та по-батькові.