Як я можу використовувати сусідні комірки на іншому аркуші для випадаючої перевірки даних і показувати лише непорожні значення?


1

У мене на одному аркуші є декілька суміжних комірок, які я хочу використовувати як джерело для перевірки даних у комірці на іншому аркуші. Однак, схоже, перевірка даних цього не дозволяє.

Отже, я спробував зробити обхід, який передбачав введення формул у деякі сусідні комірки на іншому аркуші, які б посилалися на значення, які я хотів із першого аркуша. Потім я назвав другий діапазон і посилався на це ім’я у полі Джерело перевірки даних.

Тепер у мене є проблема, коли, якщо одна з комірок першого аркуша порожня, клітинка на другому аркуші, яка посилається на перший на першому аркуші, відображатиметься 0замість порожньої. Я намагався обійти це, роблячи щось подібне =IF(Sheet1!A1="","",Sheet1!A1). Однак, це не реально зробити формулу результат такий же , як вільну позицію.

Це все здебільшого стає проблематичним, коли я хочу, щоб моя перевірка даних включала спадне меню в комірці. Мої вибір тут, здається, має бути 0чи порожнім рядком у спадному меню, де є пробіли у вихідних даних. Якби заготовки були справжніми заготовками, цього не сталося.

Отже, чи є спосіб обійти це?


Приклад:

Лист1

A1 = Value1
A5 = Value2
A9 = Value3
A13 = Value4
A17 = (Клітка порожня)
A21 = (Клітка порожня)

Лист2

A1 =Sheet1!A1(повертається Value1)
A2 =Sheet1!A5(повертається Value2)
A3 =Sheet1!A9(повертається Value3)
A4 =Sheet1!A13(повертається Value4)
A5 =Sheet1!A17(повертається 0)
A6 =IF(Sheet1!A21="","",Sheet1!A21)(видається порожнім)

Sheet2!A1:A6названо Validation. В Sheet3!A1, перевірка даних застосовуються з джерелом =Validationі в осередку випадає. Спадне меню "В клітинку" показує:

Значення1
Value2
Value3
Value4
0

(Порожня клітинка включена)

За цих умов я шукаю конфігурацію, яка призведе до випадання, Sheet3!A1що відображається лише Sheet2!A1:A4при збереженні в Sheet2!A5:A6наявності, якщо вони коли-небудь будуть заповнені. Крім того, спадне меню Sheet3!A1повинно відображатися лише в Sheet1!A1,Sheet1!A5,Sheet1!A9,Sheet1!A13той час, як залишається Sheet1!A17,Sheet1!A21доступним, якщо вони коли-небудь заселяться.

Здається, мені потрібен спосіб:

  • Безпосередньо зверніться до сусідніх комірок Sheet1у моєму джерелі перевірки даних
    АБО
  • Отримайте клітинки в Validationдіапазоні, Sheet2щоб насправді повернути порожні клітинки, коли їхні цілі Sheet1порожні.

Для цього знадобиться як мінімум два методи, до того, наскільки абстрактно ви хочете обробити інформацію. Коли я завтра буду працювати на роботі, я дам вам кілька початкових методів, щоб змусити вас йти правильною дорогою. Тим часом прочитайте цю публікацію в StackOverflow: Таблиця фільтрів
DataValidation

@GoldBishop Чекаємо цього. Тим часом я вирішив проблему для цього конкретного випадку. Тим НЕ менше потрібна допомога з приводу тут , хоча.
Іссі

Відповіді:


0

Використовуючи метод, описаний у вашій початковій публікації Як зробити спадне поле Валідація даних, виключити пробіли .

Поєднайте це за допомогою цих методів:

Public Sub ClearDataValidation(destrng As Range)
   destrng.Validation.Delete
End Sub

Public Sub LoadDataValidation(srcrng As Range, destrng As Range)
   'Verify a 1x1 sized Range was passed
   If destrng.Rows.Count <> 1 Or destrng.Columns.Count <> 1 Then
      InvalidValue destrng.Worksheet, "LoadDataValidation", _
            "Range: " & destrng.name & " was passed to method. This method expects a " & vbCrLf & vbCrLf & _
            " 1 Row x 1 Column Range to be passed.  Anything outside of the 1x1 " & vbCrLf & vbCrLf & _
            "size will result in invalid conditions"
      Exit Sub
   End If

   With Range(destrng.Address).Validation
      .Delete
      .Add xlValidateList, xlValidAlertStop, xlBetween, DistinctValues(srcrng)
   End With
End Sub

Використання:

LoadDataValidation Range("Table1[column1]"), Range("destinationCell")
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.