Може да изгради сложни криви превъзхождат диаграми и графики - превъзхождат - Статии Directory - перфектен ексел

Може Excel се създават сложни криви?

Мен трудно, отколкото изненада в Excel, но когато за първи път видях този сайт, това не е паднало до клавиатурата имам малко очите. Силно ви препоръчваме да следвате връзката и да погледнем. По мое лично класиране на тази команда (където двама мъже и една жена) е №1 в света на Excel.

Днес ще ви покажа нещо от арсенала си (с моите някои адаптации). Нека да разгледаме как с помощта на точкова диаграма Плавните линии за изграждане на такива сложни неща, които, когато се вгледате в него за първи път, просто не вярват, че изобщо може да се направи в Excel. Ами, например, тъй като вие сте:

Може да изгради сложни криви превъзхождат диаграми и графики - превъзхождат - Статии Directory - перфектен ексел

Фактът, че всички ние сме свикнали, че тези графики са създадени с помощта на точки, които се изчисляват в клетките на таблицата. Веднага се използва наистина много готин трик, който ви позволява да се парцел сложни функции, без използването на гама с XY точки, нито каквито и да било макроси. Всичко, което трябва - това е Точкова Плавните линии, няколко константи и повече наречени формули.

Тези граждани, които все още са изяснени напълно, защо всичко това е необходимо, сега, просто отворите файл, и включват макроси, за да щракнете върху бутона Старт, защото това е просто красива. На него можете да гледате на 15 минути и все още да е интересно. По-дълъг Препоръчвам да не изглежда толкова уморени очи и мозък.

Виж красотата ТУК

А тези, които се интересуват, как работи, да продължи разговора.

По принцип абсолютно каква е програмата няма разлика да се строи. Взех циклоидални криви, тъй като те са много красиви, разнообразна и сложна.

Епициклоида и хипоциклоидното (подгрупа колони и крилчати криви) са конструирани в съответствие със следните уравнения:

Може да изгради сложни криви превъзхождат диаграми и графики - превъзхождат - Статии Directory - перфектен ексел

Епициклоида са конструирани както следва:

Знаци R1 и R2 във връзка с всеки друг определя вида на крива (окръжност на която повърхността R1 - вътрешни или външни - е подвижен кръг R2). Имайте предвид, че т - тя се приземи в радиани. Спомням си, че ъглите при 5 'и 365' - различни ъгли.

Ако се вгледаме в класацията на серия данни, можем да видим това:

Може да изгради сложни криви превъзхождат диаграми и графики - превъзхождат - Статии Directory - перфектен ексел

Сърце от решението е тук:

Може да изгради сложни криви превъзхождат диаграми и графики - превъзхождат - Статии Directory - перфектен ексел

Както можете да видите, повечето от посочените граници все още се отнася до конкретен клетка и нищо сложно само по себе си не представлява. В допълнение към трите диапазони: ARR. x_e. y_e. Може да забележите, че x_e и y_e - това е нещо, което се отнася до серия от данни в таблицата, както и че тази формула, описваща линиите, които цитирах по-горе. Но е необходимо да се разбере Пр ID:

= Ред (OFFSET ($ A $ Lepota 1;! ;; X))

X имаме е 5400 OFFSET функция () ще генерира набор А1: A5400. Формула бар () се изчислява за всеки ред на обхвата, така че резултатът ще бъде масив от числа от 1 до 5400. Този масив се предава в x_e. y_e също генерира съответните масиви. Имайте предвид, че Пр преминава през функцията RADIANS (). Така че ние Degrees (1..5400) превод в радиани. За да бъда честен, аз не знаех, че да можете да :)

Това е всъщност всичко. И макроса, който имам в книгата, той просто случайно, но постепенно се променя параметрите R1. R2. D между От До количества, докато стъпка.

Послепис Вентилатори с WinAPI Sleep препоръчват тя да се обърне внимание да се изработи Application.Wait сега + 1/24/60/60/2 :)

И сега се придържа по-нататъшно проучване циклоид :)

Здравейте, Денис.
"Pozalipal" на Циклоида. Красива, но в хода на каквито и да било коментари.

1. Обикновено, X = R * COS (т); Y = R * грях (т). В твоя пример, X-ос и Y са смесени, ако вземем като база за образа на статията, циклоид на диаграмата се основава на вертикалната ос на часовниковата стрелка. Опитайте да напишете на лист различни стойности на ъгъла е по-малко от 360 (45, 90, 180, 270) - ще видите какво имам предвид. Красотата на никакъв ефект, разбира се.

2. Опитайте се да поставите в стойности на клетка 1 и 5400 и спаси книгата, размерът на файла ще се промени няколко пъти. Интервалите не се съхраняват на листа, но фигурата държи целия диапазон от стойности във файла. За да се намали размера на кода VBA, можете да зададете х 5400 и 1 след откриването преди затваряне.

За правилна съпоставка на скорости от кода си изхвърли линии:

ActiveSheet.Calculate "Не ме интересува дали има DoEvents

Application.Wait сега + 1/24/60/60/2 "просто не е необходимо: - # 41;

Здравейте
1. Може би сте прав
2. Интересен факт, но статията не е от особено значение за тази цел.
3. Използвайте пръста си към небето Защо такива дълбоки последствия за отделните факти? Бях играем. Но ти си прав, че WinAPI аз не знам, но не и религиозни забрани на това основание пред него не се повдигат нагоре. Често просто спи - единственото нещо, което виждате от VBA-Schnick, но в Excel конкретна нужда не е там. Това означава, че ако трябва да направите пауза, а след това nefig шум с WinAPI. файла си погледна - страхотно. Начало гледам повече. Но за това, а не грях да се използват WinAPI

Използване на Sleep вместо Application.Wait е крачка напред, съзнателно или не - на втория въпрос.

Когато извършвате програмна забавяне състояние на заявлението може да се разделят на:

- за CPU: кораб / кораб не е направил;
- от реакцията на събитията: не реагира / реагира;

Така че, Application.Wait е най-лошото от четирите възможни комбинации на тези условия.

Нека да е необходимо да се извърши софтуер забавяне dDelay секунди. Тогава опции:

"Вариант 0: не реагират на събития, натоварване на процесора (в съвременния свят - един от най-ядра) - 100%
Application.Wait сега + dDelay / (24 * 60 * 60)

"Вариант 1: не реагират на събития, натоварване на процесора - 0%
Sleep 1000 * dDelay

"Вариант 2: реагира на събитията, натоварване на процесора - 100%
dWhaitFor = таймер + dDelay
правя
DoEvents
Loop До Таймер> dWhaitFor

"Вариант 3: съчетава предимствата и недостатъците на предишните две, (не е моментален) реагира на събитията, натоварване на процесора - е по-голяма от 0%
dWhaitFor = таймер + dDelay
правя
Sleep 50
DoEvents
Loop До Таймер> dWhaitFor