Страницы: 1
RSS
Диапазон чисел в одной ячейке
 
Добрый день
нужна помощь в организации хранения документов на складе, пытаюсь для упрощения поиска перенести все данные в таблицы, но слишком много чисел
Для примера, есть ящик номер 1, в нем лежат документы номера с 1 по 87, ящик номер 2 документы с 88 по 112 и ТД, возможно ли как то в формате таблице в одной ячейке указать диапазон числе от 1 до 87 что бы при поиске числа из этого диапазона выдавалась именно эта ячейка с нужным диапазоном ?
 
Можно, например, разделить запятой. Если диапазон будет отсортирован по возрастанию, то искать можно с помощью ВПР.
1,087
88,112
Код
=ВПР(87;A:A;1;1)
 
Цитата
написал:
разделить запятой
Ещё важно, чтобы у всех пользователей файла запятая выступала в качестве разделителя целой и дробной части.
Кстати, Матрос, в какой ящик нужно обращаться за 88-ым документом?
 
Цитата
origamiokami написал: возможно ли как то в формате таблице в одной ячейке указать диапазон числе
Возможно, но этим Вы себе сразу усложните дальнейшую обработку данных. Что мешает разнести номера От и До по разным ячейкам? Столбцов в Excel для этого вполне достаточно
Согласие есть продукт при полном непротивлении сторон
 
Цитата
origamiokami написал:
Для примера, есть ящик номер 1, в нем лежат документы номера с 1 по 87, ящик номер 2 документы с 88 по 112 и ТД, возможно ли как то в формате таблице в одной ячейке указать диапазон числе от 1 до 87 что бы при поиске числа из этого диапазона выдавалась именно эта ячейка с нужным диапазоном ?
Конечно можно, достаточно указывать не диапазон, а только конечный номер документа, и тогда  ПОИСКПОЗ вполне справится, а если ящики имеют разные наименования, то можно ИНДЕКС
Изменено: Msi2102 - 13.12.2024 13:39:41 (замена файла)
 
Цитата
Msi2102 написал: и тогда  ПОИСКПОЗ вполне справится
В таком случае и ПРОСМОТР() справится
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
в какой ящик нужно обращаться за 88-ым документом?
Вроде так
Код
=ВПР(88+1;A:A;1;1)
 
Цитата
Sanja написал:
В таком случае и ПРОСМОТР() справится
как вариант, только у тебя 88 это начало следующего, а у меня конец предыдущего :)
А ещё есть ПРОСМОТРX() и тд, но у меня их нет :(
Изменено: Msi2102 - 13.12.2024 14:07:31
 
видимо все немного сложнее, чем я описала выше
речь идет о десятках тысяч документов за день, обработкой занимаются параллельно два или три человека, в ящики укладываются документы пачками, но не всегда в один ящик попадают пачки документов с последовательными номерами, например сейчас предо мной пачка 56335-56342, я положу ее в ящик с документами 43823-43912, 44008-44382, 44389-44391
ящик подписываем годом, месяцем и пишем диапазоны номеров, при необходимости пол дня ищем глазами в каком ящике нужный нам документ
сложные формулы exel я воспринимаю как магию, они мне не доступны, есть ли какой-нибудь магический способ составит таблицу примерно так :
номер ящика       43823-43912   44008-44382   44389-44391  56335-56342
что бы при необходимости найти документ с номером например 44212 пенсионерка вбила цифру в строку поиска или в ячейку таблицы и увидела в каком ящике лежит искомый документ  
 
может тогда на отдельном листе в столбец (раз документов так много, что столбцов не напасешься) добавлять документы с номерами, а в соседнем - номера ящиков для них?
номера документов - автозаполнением

а если грамотные товарищи напишут скрипт, куда вводится номер начального документа, конечного и номер ящика, то скрипт сам будет заполнять этот лист
Изменено: AlexDen - 13.12.2024 17:58:44
 
Ну если уж скрипт - то пусть и пишут в Экселе
номер ящика       43823-43912   44008-44382   44389-44391  56335-56342
тут 5 столбцов, можно вправо продолжать писать номера...
А уж скрипт найдёт в каком (или в каких) ящиках например записали документ 43856
И порядок записи может быть не важен, если документов не миллионы, или есть время подождать обработки всех таких ячеек.
P.S. Можно например так (если ввод и поиск происходят отдельно) - при открытии файла макрос на другом листе простым кодом генерит два столбца
Дело | Ящик
И тогда найти нужный ящик по номеру дела - дело ВПР()
Но после каждого изменения данных нужно закрыть и открыть файл. Или нажать кнопку и перегенерить базу.
Изменено: Hugo - 13.12.2024 20:03:07
 
Для Excel 365:
=LET(z;D1;a;A1:A4;b;B1:B4;x;--ТЕКСТРАЗД(ОБЪЕДИНИТЬ(", ";;b);"-";", ");l;ИНДЕКС(x;;1);r;ИНДЕКС(x;;2);ФИЛЬТР(ПРОСМОТРX("*"&l&"-*";b;a;;2);(l<=z)*(r>=z);"документ не найден"))
Изменено: Бахтиёр - 16.12.2024 13:19:29
 
Вариант через пользовательскую функцию. Вставьте код в стандартный модуль. Как это сделать, можно почитать тут Создание макросов и пользовательских функций на VBA
Код
Function ЯЩИК(найти As Long, номера As Range) As String
    ЯЩИК = "не найден"
    Dim nrr As Variant
    nrr = номера.Value
    
    Dim arr As Variant
    Dim brr As Variant
    Dim vv As Variant
    Dim ww As Variant
    Dim yn As Long
    Dim iMin As Long
    Dim iMax As Long
    For Each vv In nrr
        If vv <> "" Then
            vv = Trim(vv)
            vv = Replace(vv, ";", ",")
            vv = Replace(vv, ":", "-")
            If InStr(vv, ",") > 0 Then
                arr = Split(vv, ",")
            Else
                ReDim arr(0 To 0)
                arr(0) = vv
            End If
            For Each ww In arr
                ww = Trim(ww)
                If InStr(ww, "-") > 0 Then
                    brr = Split(ww, "-")
                Else
                    ReDim brr(0 To 0)
                    brr(0) = ww
                End If
                iMin = 0
                iMax = 0
                On Error Resume Next
                iMin = CLng(brr(LBound(brr)))
                iMax = CLng(brr(UBound(brr)))
                On Error GoTo 0
                If найти >= iMin Then
                    If найти <= iMax Then
                        ЯЩИК = vv
                        Exit Function
                    End If
                End If
            Next
        End If
    Next
End Function
Допустим номера перечислены в столбце A. Одна ячейка - один ящик, например 56335-56342, 43823-43912, 44008-44382, 44389-44391.
Допустим искомый номер находится в ячейке B1, например 43823.
Вставьте в любую ячейку формулу
Код
=ЯЩИК(B1;A1:A100)
Страницы: 1
Наверх