Excel: класифікація даних на основі системи бін


0

Я працюю з програмою excel 2010 на Windows, я початківець користувач Excel, але я можу програмувати, тому ви можете кинути VBA на мене. У мене є ряд комірок, у яких користувач може ввести число, а інша комірка повинна відобразити класифікацію на основі інтервалу, в якому лежить число.

наприклад:

0%:     -> nothing
01-20%: -> not a lot
21-50%  -> below average

etc...

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

Відповіді:


0

Інший варіант - мати таблицю огляду з даними про сміття десь у вашій робочій книжці. Потім ви можете використовувати VLOOKUPфункцію для класифікації вхідних даних, порівнявши їх з таблицею.

введіть тут опис зображення

Для цих зразкових даних із таблицею огляду, розміщеною на E3:F8та входом користувача, розташованою на B1, ви використовуєте таку формулу:

=VLOOKUP(B1,$E$3:$F$8,2,TRUE)

0

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

Отже, ось спосіб використовувати вкладене IFз ANDоператором виконання, що ви описали. У цьому випадку вводиться значення A1і відображається класифікація в B1.

Помістіть цю формулу B1.

=IF(AND(A1>0.7,A1<=1),"above average",IF(AND(A1>0.5,A1<=0.7),"average",IF(AND(A1>0.2,A1<=0.5),"below average",IF(AND(A1>0.01,A1<=0.2),"not a lot", ""))))

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


0

Якщо ви віддаєте перевагу використовувати VBA, а потім налаштовуйте і надмірно ускладнюйте, як вам подобається:

Function MyFunction(inputvalue As Double)

  Select Case inputvalue

    Case Is = 0:
    MyFunction = "nothing"
    Case Is <= 0.2:
    MyFunction = "not a lot"
    Case Is <= 0.5:
    MyFunction = "below average":
    Case Is > 0.5:
    MyFunction = "above average"

  End Select

End Function
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.