Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Ексел: филтриране по брой цифри зад десетичната запетая


Препоръчан отговор


Здравейте,

Имам масив от данни за време в милисекунди с близо 140 000 стойности. Семпъл рейта на това време в момента е 10ms, a на мен ми трябват данните през интервал 100ms (първата картинка). Някаква идея как да го постигна? Опитах със sampling задавайки period, но се оказа, че данните не са разпределени равномерно (втората картинка, колона Е), сиреч между две стойности с интервал 100ms няма равен брой междинни стойности, както първоначално очаквах. 

image.thumb.png.de890b06bb6e530c958774c15df7e11b.png  image.thumb.png.81aa947a32b5bab67db0823e8835c13b.png

Линк към този отговор
Сподели в други сайтове

Без значение какво означават числата - може да ползваш Закръгляване на число до желания брой цифри след десетичния знак“!

Линк към този отговор
Сподели в други сайтове

Направих следното:

image.png.7124f754e92efd6b7e11b80fc00703b4.png 

 

където за D  ползвам функцията =ROUND(A1,2), а за Е =ROUND(A1,1)=A1

Този подход обаче не работи в следната ситуация:

image.png.cfe763dc090bf12ba3f8aaa802dd2c13.png

Сиреч там където данните не са на кръгла десета резултата е липсваща стойност. Как за всяка десета да се взима само най-близката стойност, а останалите да се елиминират? Например измежду 1518.279/1518.299/1518.319 да се закръгля и взима предивид само най-близката до 1518.3, като това да е валидно за всички останали данни. 

Линк към този отговор
Сподели в други сайтове
преди 31 минути, juslen написа:

Направих следното:

където за D  ползвам функцията =ROUND(A1,2), а за Е =ROUND(A1,1)=A1

Този подход обаче не работи в следната ситуация:

Сиреч там където данните не са на кръгла десета резултата е липсваща стойност. Как за всяка десета да се взима само най-близката стойност, а останалите да се елиминират? Например измежду 1518.279/1518.299/1518.319 да се закръгля и взима предивид само най-близката до 1518.3, като това да е валидно за всички останали данни. 

Пич - имаш много странен начин на обясняване на проблема. А чакаш решение!
Има един принцип - „За да получите нужните отговори, трябва да умеете да задавате правилните въпроси!“

Питаш за „електронна таблица“ (Excel и подобни), а показваш скрийншотове! Откъде да знаем - какви формули има в клетките?

Да - мога да „сейфна“ картинката, да я OCR-вам, да я вкарам в някаква таблица и да проиграя нещата. Все пак - последните 30 години, обработката на електронни таблици заема около 30% от времето ми. Ама ... ме мързи бе!

Линк към този отговор
Сподели в други сайтове
преди 47 минути, juslen написа:

където за D  ползвам функцията =ROUND(A1,2), а за Е =ROUND(A1,1)=A1

Точно така. Сравняваш ги, ако приближенията са равни, значи зад еди коя си позиция след десетичната запетая няма нищо.


Линк към този отговор
Сподели в други сайтове
преди 10 минути, juslen написа:

Мой пропуск. Ето я таблицата:

https://drive.google.com/file/d/1zyDZ76W25A2JqY3dxP6YM-2UJhHe2Ztm/view?usp=sharing

Thanks! Това е друго!

Така - да уточним „очевидните неща“ - колоните са A, B, C, D и F, редовете са 137 496.
В клетки A, B и C има стойности, които не е ясно защо са такива - откъде „идват“!
В D,  ползваш функцията „=ROUND(A1,2)“ - закръгляш до втория знак, а в Е „=ROUND(A1,1)=A1“ - сравняваш оригинала от А с закръглена стойност, до ПЪРВИЯ знак! Затова - когато в А имаш стойност с 3 цифри след десетичната запетая - получаваш „FALSE“.

Разбирам, че искаш да получиш стойности в D - при стъпка в А = 0,01.

Линк към този отговор
Сподели в други сайтове

Предисторията на файла е, че това са живи данни от промяната на температурата на дизелов двигател измерена в колектора, непосредствено преди турбото. Данните са предоставени от клиент, съответно нямам поглед над записващата апаратура, какви особености има и от какво се определя стъпката на запис. Автомобила е закачен на стенд и според определена програма натоварването на двигателя се мени. Колона А е времето в секунди (семпъл рейта на записа, който в случая е с размерност 0.01сек), колона B e измерената температура в градуси Целзий, а колона C e скоростта на автомобила в км/ч. Резултата, който се опитвам да постигна е така да преформатирам данните в колона А, че да имам данните през 0.1сек, а не през 0.01сек както е в момента. С други думи, искам да изолирам само данните на кръгла десета от секундата. 

Вметвам, че ексела ми не е на високо ниво и съм по-скоро любител ползвател. Горните идеи за закръгления в търсене на желания резултат ги взаимствах от аналогични казуси открити в нета. 

Идеята на промените, които направих в колона D бе първо да закръгля всички стойности до втория знак, тъй като в колона А имаше и такива с размерност до третия знак. В колона Е опитах да изолирам данните закръглени до първия знак с идеята да филтрирам само тези данни впоследствие и да получа резултата, който ми трябва. Уви, обаче не на всякъде в суровите данни от колона А има стойности закръглени до точна десета. От друга страна опитах да ползвам и функцията sampling с идеята да задам равен период между N на брой стойности и да изолирам например всяка N-та. В случая обаче данните не са разпределени равномерно - понякога между две десети има 7 междинни стойности, друг път 8, трети път 9. 

Не знам дали заданието стана ясно.

Въпрос:

image.png.4c5a06fa85a10ed093ef1dfeaaf3af68.png

 Как да филтирам данните така че в колона F да получавам резултат True за стойностите обозначени в жълто на картинката (сиреч най-близко закръглените до един знак след дестичната запетая)? 

Линк към този отговор
Сподели в други сайтове

Привет отново, мисля че казуса е разрешен:

В колона Е поставих =ROUNDDOWN(A1,1), а в колона F =IF(E2<>E1,"TRUE","FALSE")

 

Capture.JPG

Capture1.JPG

Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване