Формула Excel, чтобы найти число в диапазоне чисел - PullRequest
0 голосов
/ 23 мая 2019

РЕДАКТИРОВАТЬ, короче:

У меня есть таблица Excel, которая выглядит следующим образом:

Tabel

Каждая ячейка содержит диапазон чисел. Я ищу функцию, которая может искать число во всей таблице и указывать мне столбец и строку, где находится диапазон, к которому он принадлежит.

Итак, если я ищу номер 2346, он должен работать следующим образом:

функция (2346)> результат (C1, R2)


У меня есть огромный архив фотографий (около 300 000 предметов) в библиотеке. Фотографии хранятся в коробках, коробки на полках. Каждая коробка имеет ряд инвентарных номеров фотографий.

Я хочу создать карту месторождения, которая выглядит следующим образом:

Полка 1 - содержит ящики 1, 2, 3 и т. Д. Вставка 1 - содержит фотографии с инвентарными номерами между 1257-1321 Коробка 2 - "- между 2345-2522 Коробка 3 - "- между 123523-123643

В переводе в таблицу Excel это будет выглядеть так:

Столбец 1 будет полкой 1, содержащей поля с изображениями: ячейка в столбце 1 / строке 1 (это поле 1) содержит диапазон чисел: 1257-1321 ячейка в столбце 1 / строка 2 (поле 2), диапазон: 2345-2522 ячейка в столбце 1 / строке 3 (поле 3), диапазон: 123523-123643

Они не в порядке, потому что они вошли в коллекцию более чем за 100 лет, и они расположены так, как они поступили и по предмету. Не говоря уже о том, что депозит был перенесен несколько раз. Поэтому мне трудно найти одно изображение, когда я его ищу.

Но если у меня есть эта таблица Excel, эта карта депозита, предположительно, я хочу ввести номер инвентаря, который я ищу, скажем, "2346", и формула, которая ищет по всей таблице, укажет мне что предмет (номер, который я ищу, находится в диапазоне, который находится в столбце 1, строке 2, что означает полку 1, поле 2 в хранилище).

На самом деле концепция очень проста, Excel может выполнять НАМНОГО более сложных задач, и я поражен, что не могу найти способ сделать это. Я фотограф и библиотекарь, поэтому мой опыт программирования близок к нулю.

Большое спасибо, если вы можете помочь!

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Это немного длинновато, но не трудно понять, я сделал несколько примеров данных, например:

enter image description here

="C"&SUMPRODUCT(((VALUE(LEFT($A$1:$B$3,SEARCH("-",$A$1:$B$3)-1))<=D3)*(VALUE(RIGHT($A$1:$B$3,LEN($A$1:$B$3)-SEARCH("-",$A$1:$B$3)))>=D3))*COLUMN($A$1:$B$3))&", "&"R"&SUMPRODUCT(((VALUE(LEFT($A$1:$B$3,SEARCH("-",$A$1:$B$3)-1))<=D3)*(VALUE(RIGHT($A$1:$B$3,LEN($A$1:$B$3)-SEARCH("-",$A$1:$B$3)))>=D3))*ROW($A$1:$B$3))

Вы просто должны изменить диапазоны

0 голосов
/ 23 мая 2019

Если вы настроили свой рабочий лист, как показано на рисунке ниже (имя листа «Библиотека»):

enter image description here

Вы можете попробовать код:

Option Explicit

Sub Painting()

    Dim LastRow As Long, i As Long, SearchValue As Long
    Dim arrData As Variant

    'Let s say that all data appears in sheet called Library
    With ThisWorkbook.Worksheets("Library")

        'Let s say that we are looking for the value in cell H1
        SearchValue = .Range("H1").Value

        'Find the Last row of column A sheet Library
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        'Create as array from Column A row 2 up to Column D row LastRow
        arrData = .Range(.Cells(2, 1), .Cells(LastRow, 4)).Value

        'Loop Array to find a match
        For i = LBound(arrData) To UBound(arrData)

            If arrData(i, 3) <= SearchValue And arrData(i, 4) >= SearchValue Then
                'Pop up with Shelf & Box name
                MsgBox "Search Value " & SearchValue & " included in:" & vbNewLine & "Shelf: " & arrData(i, 1) & vbNewLine & "Box: " & arrData(i, 2)
                'Select the line where the Search Value found
                .Range("A" & i + 1 & ":D" & i + 1).Select
                'Exit the loop
                Exit For
            End If

        Next i

    End With

End Sub

Результат:

* +1012 *enter image description here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...