Другие языки программирования и технологии

Помощь с Excel.

Привет.Мне нужна помощь.Именно такая: Мне нужно в экселе сделать 1 столбик который будет варироватся от 1 до какого-то числа "p".Например если p=4 , то мне нужно получить столбик который будет много-много раз повторять значение 1 2 3 4 1 2 3 4 1 2 3 4 вниз! Кто может подсказать как сделать это в встроенной штуковине экселя вижуал бейсике??? Нужна такая команда которая задаст чередование полученого рание массива!Именно чередование массива , от 1 до 4 ( например) раз десять. Или мне нужна команда например как "MOD" остача от деления, а мне нада такая команда которая будет вытягивать с дробя числитель.Например дробь 1/4 чтоб команда вытягивала "1" еденичку с дробя... Помогите плс
Здесь много способов, как с васиком, так и без.
1) Например, левый столб - нумерация строк (т. е. от 1 и до потери пульса) , справа - остаток от деления на 4 + 1, тогда будет идти 1,2,3,4 и по новой.
2) Другой вариант - 4 условия на остаток от деления на 4, работать будет медленнее, зато можно вставить любые числа, допустим, 5,2,8,111; и эти 4 числа будут идти с повтором. Ещё красивее - сделать абсолютные отсылки к ячейкам, где будут хранится 4 числа. Тогда изменяя эти числа в одном месте, получим изменение по всему столбцу.
3) число в ячейке равно предыдущему +1, но если предыдущее = 4, то = 1. Тоже будет зацикл 1,2,3,4.

Если делать это программно, то повтор 4 чисел лучше явно включить в тело цикла, так быстрее. Т. е. 4 присваивания. Самих циклов 10 штук.
Артем Емельянов
Артем Емельянов
26 625
Лучший ответ
С2=ЕСЛИ (СЧЁТЕСЛИ (C$1:C1;A$2)=B$2;"";ЕСЛИ (ИЛИ (C1=0;C1=A$2);1;C1+1))

P.S.
а с дробями - не понял что и как должно определяться ?
Вернее, я понял что надо вытянуть числитель, но не понял где брать дроби
Непонятно, что такое много раз. Но вот тебе лупилка в цикле от 1 до сколько хочешь (втророй параметр) , которая будет нумеровать от 1 до сколько захочешь (первый параметр) , а потом сбрасывать в единицу.

Public Sub Repeater(Seed As Integer, MnogoMnogoRaz As Integer)
Dim intI As Integer

For intI = 1 To MnogoMnogoRaz
If intI Mod Seed = 0 Then
ActiveSheet.Cells(intI, 1).Value = Seed
Else
ActiveSheet.Cells(intI, 1).Value = intI Mod Seed
End If
Next intI
End Sub

Пример:

Repeater 7, 700 (пронумеровать 700 строк от 1 до 7)
Repeater 5, 100 (пронумеровать 100 строк от 1 до 5)

Наслаждайся.
Повтор можно реализовать в 2-х циклах:

Sub Rep()
m = InputBox("Размер массива")
n = InputBox("Количество повторов")
For r = 1 To m * n Step m
For s = 1 To m
Cells(r + s-1, 1).Value = s
Next s, r
End Sub

Что касается "...вытягивать с дробя числитель", в Excel нет такого представления чисел. Только в текстовом формате.