Как выполнить цикл в excel без VBA или макросов?
можно ли перебирать (цикл) группу строк в Excel без установленного VBA или макросов? Google не дал ничего полезного.
=IF('testsheet'!$C <= 99,'testsheet'!$A,"") &
IF('testsheet'!$C <= 99, 'testsheet'!$A,"") &
IF('testsheet'!$C <= 99, 'testsheet'!$A,"") &
... and so on through !$C, !$A ...
как есть, мне придется повторить приведенный выше код 40 раз в каждой ячейке, и у меня есть более 200 ячеек, которым нужен код. соплю
Я неплохо разбираюсь в PHP / SQL, но просто изучаю Excel.
6 ответов
путь получить результаты Вашей формулы был бы начать в новом листе.
в ячейку A1 поместите формулу
=IF('testsheet'!C1 <= 99,'testsheet'!A1,"")
скопируйте эту ячейку в строку 40 В ячейку B1 поместите формулу
=A1
в ячейку B2 поместите формулу
=B1 & A2
скопируйте эту ячейку в строку 40.
значение, которое вы хотите сейчас в этом столбце в строке 40.
не совсем ответ, который вы хотите, но это самый быстрый способ сделать все excel мудрый, не создавая пользовательскую формулу, которая принимает в диапазоне и делает расчет (что было бы более интересно сделать).
Я просто искал что-то похожее:
Я хочу суммировать каждый нечетный столбец строки.
SUMIF имеет два возможных диапазона, диапазон до сумма и в рассмотреть критерии in.
SUMIF (B1:B1000,1,A1:A1000)
эта функция рассмотрит, является ли ячейка в диапазоне B "=1", она будет суммировать соответствующую ячейку, только если она есть.
чтобы получить" =1", чтобы вернуться в диапазон B, Я поместил это в B:
=MOD(ROWNUM (B1),2)
затем автоматическое заполнение, чтобы получить модуль для заполнения, вы можете поместить и вычисляемые критерии здесь, чтобы получить условия SUMIF или SUMIFS, которые вам нужно зациклить через каждую ячейку.
проще, чем материал массива и скрывает заднюю часть циклов!
собираюсь отвечать на это сам (поправьте меня, если я ошибаюсь):
невозможно перебирать группы строк (например, массив) в Excel без VBA установлен / макросы включены.
вы можете создать таблицу где-нибудь в таблице расчета, которая выполняет эту операцию для каждой пары ячеек, и использовать автозаполнение для ее заполнения.
Агрегируйте результаты из этой таблицы в ячейку результатов.
200 ячеек so, которые ссылаются на результаты, могут ссылаться на ячейку, содержащую результаты агрегации. В новейших версиях excel вы можете назвать ячейку результата и ссылаться на нее таким образом, для удобства чтения.
добавьте больше столбцов, когда у вас есть переменные циклы, которые повторяются с разной скоростью. Я не уверен в том, что вы пытаетесь сделать, но я думаю, что сделал что-то, что может применяться.
создание одного цикла в Excel довольно просто. Это на самом деле делает работу за вас. Попробуйте это в новой книге
- введите " 1 " в A1
- введите "=A1+1 " в A2
A3 автоматически будет "=A2+1 " при перетаскивании вниз. Первые шаги не это должно быть ясно. Excel автоматически распознает шаблон и подсчет, если вы просто поместите "2" в A2, но если мы хотим, чтобы B1-B5 был "100", а B5-B10 - "200" (подсчет таким же образом), вы можете понять, почему знание того, как это сделать, явно имеет значение. В этом сценарии вы просто вводите:
- " 100 " в B1, перетащите до B5 и
- "=B1+100 " в B6
B7 автоматически будет "=B2+100 " etc. как вы перетащите вниз, так что в основном он увеличивается каждые 5 ряды бесконечны. Чтобы сделать цикл чисел 1-5 в столбце A:
- введите "=A1 " в ячейку A6. При перетаскивании вниз он автоматически будет "=A2"в ячейке A7 и т. д. потому что Excel делает вещи.
Итак, теперь у нас есть столбец a, повторяющий числа 1-5, а столбец B увеличивается на 100 каждые 5 ячеек.Вы можете заставить столбец B повторить, например, числа 100-900, используя тот же метод, что и для столбца A, например, каждый возможна комбинация с несколькими переменными. Перетащите вниз колонны, и они будут делать это бесконечно. Я явно не рассматриваю данный сценарий, но если вы выполните шаги и поймете их, концепция должна дать вам ответ на проблему, которая включает добавление дополнительных столбцов и конкакцинацию или использование их в качестве переменных.
@Nat дал хороший ответ. Но поскольку нет способа сократить код, почему бы не использовать contatenate для "генерации" кода, который вам нужен. Он работает для меня, когда я ленив (при вводе всего кода в ячейке).
Итак, нам нужно просто определить шаблон > использовать excel для создания шаблона "структура" > добавить " = " и вставить его в предполагаемую ячейку.
например, вы хотите достичь (я имею в виду, введите в ячейку) :
=IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"") &IF('testsheet'!$C <= 99,'testsheet'!$A,"")
Я не печатал его, я просто использую символ " & " для объединения упорядоченной ячейки в excel (другой файл нет файла, над которым мы работаем).
обратите внимание, что :
часть 1>IF('testsheet'!$C$
часть 2>1 to 40
часть 3><= 99,'testsheet'!$A$
part4 > 1 to 40
part5 > ,"") &
- введите часть1 А1, часть3 С1, участие в Е1.
- введите "= A1 "в A2," = C1 "в C2," = E1 " в E2.
- введите "= B1+1 "в B2," = D1+1 " в Д2.
- введите "=A2&B2&C2&D2&E2 " в G2
- введите "=I1&G2 " в I2
Теперь выберите A2:I2 и перетащите его вниз. Обратите внимание, что число increament каждой строки добавил, и сгенерированный текст совмещен, клетку за клеткой и построчно.
- копировать содержимое I41,
- вставьте его где-нибудь, добавьте " = " спереди, удалите дополнительные & и заднюю часть.
Result = код, как вы намеревались.
Я использую excel / OpenOfficeCalc, чтобы помочь мне создать код для моих проектов. Работает на меня, надеюсь, это поможет другим. (: