Excel: Знайдіть кількість записів, що відповідають декільком критеріям І використовуючи час від часу створення першого запису


0

Я шукаю допомоги з формулою. На моєму аркуші "дані" є дані у форматі нижче:

   A         B            C            D            E          F        G           H           I          J
1 UID   RecordType      HCode     AdmittedDate   Forename   Surname    ReviewDate     Sex        STDate      RDate
2 87962 STAsses         STIV1     01/07/2012     Mark       Jones                     Male   09/12/2012 
3 89658 Transfer        GLSI2     01/01/2012     Alison     Aitken                    Female                 08/07/2013 
4 87962 Discharge       STIV1                    Mark       Jones      20/07/2012     Male               08/07/2013
5 89654 STAsses         STGE1     01/01/2012     Andrew     Macbeth                   Male   08/07/2012  
6 89867 Transfer        KIND1     01/01/2012     George     Deas                      Male               08/07/2013 
7 87962 Transfer        STIV1                    Mark       Jones      14/07/2012     Male               04/03/2013 
8 89654 Transfer        STGE1     01/01/2012     Andrew     Macbeth                   Male               12/08/2012

На моєму аркуші "звіт" створено таку таблицю:

      B             C             D            E            F
4 HospCode     RecordType     0-2 Weeks    2-4 Weeks    4-6 Weeks
5 STIV1        Transfers
6              Discharges
7              
8

На моєму аркуші "звіт" я розраховую підрахувати кількість "переказів" і "розрядів" (як зазначено в стовпці b "аркуша даних"), що відбувається протягом часових рамок у колонках D, E, F і т.д.

Підсумовуючи, я шукаю в комірці D5, щоб підрахувати кількість "переказів" (як зазначено в стовпці b 'даних' аркуша) для хосткоду 'STIV1', що відбувається протягом 0-2 тижнів відповідної "STAsses" 'запис (який також вказаний у колонці b). D6 буде таким же, тільки кількість записів "виписки", що відбуваються протягом заданого часу.

Я не знаю, з чого почати, або якщо це можливо. Кожна людина матиме принаймні запис STAsses, але не завжди запису "Передача" або "Виписка". "UID" є однаковою для кожної людини, тому її можна використовувати для відповідності записів "STAsses" з записами "Transfer" і "Discharge".

Будь-які вказівники були б дуже вдячні.


Якщо це реальні особисті дані, наприклад, записи про лікарню, ви впевнені, що бажаєте вільно публікувати їх на громадських форумах? Я б видалив поля даних, такі як ідентифікаційні номери та імена людей.
ThunderToes

Nathan, це фіктивні дані, щоб дати якомога більше інформації, щоб допомогти вирішити мій запит.
MasterJedi

ах, я не бачу ніяких проблем просто думав, що я переконався, ніколи не може бути занадто безпечним з інформацією, як, що :) \ t
ThunderToes

COUNTIF це функція excel, яку ви шукаєте.
Tyson

Завдяки Тайсону. Я знаю про COUNTIF і можу використовувати це для підрахунку кількох умов, але не збігатися з попереднім записом STAsses.
MasterJedi

Відповіді:


0

Є багато способів зробити це, але жоден з них не буде простим. Одним із способів було б створити комбінований стовпець дати так, щоб сума (stdate, rdate). Здається, одна з цих дат заповнюється одночасно, тому сума буде дійсно просто поєднана правильно в одну колонку.

enter image description here

Потім ви можете перекинути у верхній частині зведену таблицю, вставивши UID в рядки, RecordType у стовпцях і нове стовпець комбінованої дати у значеннях (у вигляді SUM). Оскільки комбінована дата відрізняється від комбінації UID / RecordType, то фактичні дати не будуть підсумовуватися тут, так що ви просто закінчите з гарною таблицею Distinct UID і відповідними датами STAsses, Transfer і Discharge на одній лінії.

enter image description here

З цією інформацією ви тепер можете відняти вашу дату STAsses з дати перенесення і видалення і поділити на 7, щоб отримати тижня, що минуло між двома рази. Ви також можете виконати команду vlookup, щоб ввести HCode.

Наприкінці цього нового набору даних можна створити нові стовпці для захоплення 0-2 розряду, 0-2 передачі, 2-4 розряду, 2-4 передачі, і т.д. If(dischargeweeks<2, 1, 0), If(transferweeks<2, 1, 0)і т.д. (зауважте, що дані у стовпцях типу 0-2, 2-4 складаються, оскільки ваші дані вибірки викидали числа в діапазоні сотень тижнів).

enter image description here

Тепер поворот цієї нової інформації (я знаю ... повороти повертається повороти) ... На цей раз палицею hcode в рядках, і ваш 0-2 розряду, 0-2 передачі, і т.д. у значення. Тепер він дасть вам підрахунок кожного з них для кожного окремого HCode ... який дійсно близький до бажаного.

enter image description here

Нарешті, я просто скопіював і вставив (і ви могли б сортувати потім), щоб отримати його в правильному форматі ... Я маю на увазі, на даний момент, що трохи скопіювати і вставити, чи не так?

enter image description here

Все, що було сказано, ви могли б працювати до хорошого біта VBA, щоб просто запустити список, обчислити все і виплюнути на новий аркуш. Думаю, це залежить тільки від того, чи це один раз на великій частині даних, або якщо ви будете робити це кожен день ...

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


Дякуємо вам за зусилля, які ви доклали до цього. Я буду грати з цим завтра і зворотний зв'язок про те, як я потрапляю, але відразу, це виглядає чудово і може бути реальним дієвим рішенням. :)
MasterJedi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.