Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Заполнение таблицы данными.

Автор Яна Варзова, 13.09.2015, 14:50

« назад - далее »

Яна Варзова

Здравия всем желаю.

Дано:
1.Числа в ячейках O4:O8 (эти числа всегда меняются, как только ко мне приходят новые данные).
2.Буквы Q4:Q8 (буквы не меняются, и всегда, только одной букве принадлежит только одно число)
3.Таблица
В общем-то и все. (составила еще одну маленькую таблицу, вдруг пригодиться O11:Q15)

Задача:
1.Нужно, числа, что, в ячейках O4:O8 вписать в первый столбец таблицы. И, чтобы числа эти, располагались по возрастанию, как в S4. 
2.Далее, напротив числа, в соответствующем столбце вписать букву, принадлежащую этому числу.

У меня, правда, есть предположение как заполнить первый столбец, это каждую ячейку делить на 60 строк (так как промежуток между 00:00:00 и 1:00:00, 60 минут), и в каждой строке прописывать формулу. Но, думаю, есть более легкое решение, потому что мои знания в Excel скудны.
Подскажите, пожалуйста, как заполнить таблицу. Можно VBA, но не хотелось бы. К моему сожалению, у меня Excel 2007.

cheshiki1

если значений всего пять то можно так
=ТЕКСТ(НАИМЕНЬШИЙ(O4:O8;1);"чч:мм:сс")&СИМВОЛ(10)&ТЕКСТ(НАИМЕНЬШИЙ(O4:O8;2);"чч:мм:сс")&СИМВОЛ(10)&ТЕКСТ(НАИМЕНЬШИЙ(O4:O8;3);"чч:мм:сс")&СИМВОЛ(10)&ТЕКСТ(НАИМЕНЬШИЙ(O4:O8;4);"чч:мм:сс")&СИМВОЛ(10)&ТЕКСТ(НАИМЕНЬШИЙ(O4:O8;5);"чч:мм:сс")
пересмотрел пример, формула не подойдет но пусть повисит для общего развития.

Яна Варзова

Искренне Благодарю вас!


iron priest


Яна Варзова

Благодарствую! Попробую сейчас.

cheshiki1

такую UDF соорудил для выбора времени. (как умею :))
Function Vybor(диапазон As Range, нижняя_граница, верхняя_граница) As String
Dim s, n, m(), i#, v, u&, d&, f%
If нижняя_граница > верхняя_граница Then n = верхняя_граница: верхняя_граница = нижняя_граница: нижняя_граница = n
For Each s In диапазон
  If s < верхняя_граница And s >= нижняя_граница Then
  i = i + 1
  ReDim Preserve m(1 To i)
  m(i) = Format(s, "Long Time")
  End If
Next
'сортируем массив
If i >= 1 Then
f = LBound(m): d = f
    For u = f + 1 To UBound(m)
        If m(u) < m(d) Then
            v = m(d): m(d) = m(u): m(u) = v
            u = d - 1: d = u - 1: If u < f Then d = u: u = f
        End If
        d = d + 1
    Next
'конец сортировки
Vybor = Join(m, Chr(10))
Else
Vybor = ""
End If
End Function

Яна Варзова

Интересно!!! Попробую вашу "самодеятельность"!

Низкий вам поклон, за помощь.