Подтвердить что ты не робот

Как зацикливать в excel без VBA или макросов?

Можно ли перебирать (цикл) группу строк в Excel без установки VBA или макросов? Google не принес ничего полезного.

=IF('testsheet'!$C$1 <= 99,'testsheet'!$A$1,"") &
IF('testsheet'!$C$2 <= 99, 'testsheet'!$A$2,"") &
IF('testsheet'!$C$3 <= 99, 'testsheet'!$A$3,"") &
... and so on through !$C$40, !$A$40 ...

Как бы то ни было, мне придется повторить вышеуказанный код 40 раз в каждой ячейке, и у меня есть более 200 ячеек, которым нужен код. сопение

Я хорошо разбираюсь в PHP/SQL, но просто изучаю Excel.

4b9b3361

Ответ 1

Способ получения результатов вашей формулы должен начинаться с нового листа.

В ячейке A1 поместите формулу

=IF('testsheet'!C1 <= 99,'testsheet'!A1,"") 

Скопируйте эту ячейку до строки 40 В ячейке B1 поместите формулу

=A1

В ячейке B2 поместите формулу

=B1 & A2

Скопируйте эту ячейку до строки 40.

Значение, которое вы хотите, теперь находится в этом столбце в строке 40.

Не тот ответ, который вы хотите, но это самый быстрый способ добиться успеха, не создавая настраиваемую формулу, которая принимает диапазон и делает расчет (что было бы более интересно сделать).

Ответ 2

Я просто искал что-то похожее:

Я хочу суммировать каждый нечетный столбец строки.

SUMIF имеет ДВА возможных диапазона, диапазон для суммирования и диапазон для рассмотрения критериев.

SUMIF(B1:B1000,1,A1:A1000)

Эта функция будет учитывать, если ячейка в диапазоне B равна "= 1", она будет суммировать соответствующую ячейку A, только если она есть.

Чтобы получить "= 1" для возврата в диапазон B, я поместил это в B:

=MOD(ROWNUM(B1),2)

Затем автоматически заполняется, чтобы получить модуль для заполнения, вы можете поместить и вычислить критерии здесь, чтобы получить условия SUMIF или SUMIFS, которые вам нужно пройти по каждой ячейке.

Проще, чем ARRAY, и скрывает заднюю часть петель!

Ответ 3

Собираюсь ответить на это сам (исправьте меня, если я ошибаюсь):

Невозможно выполнить итерацию по группе строк (например, массив) в Excel без установки VBA/макросов.

Ответ 4

Вы можете создать таблицу где-нибудь в электронной таблице расчета, которая выполняет эту операцию для каждой пары ячеек, и использовать автозаполнение, чтобы заполнить ее.

Совокупность результатов из этой таблицы в ячейку результатов.

200 таких ячеек, которые ссылаются на результаты, могут затем ссылаться на ячейку, которая содержит результаты агрегирования. В новейших версиях excel вы можете назвать ячейку результатов и ссылаться на нее таким образом, чтобы упростить чтение.

Ответ 5

Добавьте больше столбцов, если у вас есть переменные циклы, которые повторяются с разной скоростью. Я не уверен точно, что вы пытаетесь сделать, но я думаю, что сделал что-то, что можно было применить.

Создание одного цикла в Excel довольно просто. Это на самом деле делает работу для вас. Попробуйте это в новой книге

  • Введите "1" в A1
  • Введите "= A1 + 1" в A2

A3 автоматически будет "= A2 + 1" при перетаскивании. Первые шаги не обязательно должны быть явными. Excel автоматически распознает шаблон и подсчет, если вы просто поместите "2" в A2, но если мы хотим, чтобы B1-B5 был "100", а B5-B10 равным "200" (подсчет таким же образом), вы можете понять, почему зная, как это делать прямо. В этом случае вы просто вводите:

  1. "100" в B1, перетащите на B5 и
  2. "= B1 + 100" в B6

B7 автоматически будет "= B2 + 100" и т.д. при перетаскивании, поэтому в основном он увеличивается каждые 5 строк бесконечно. Чтобы сделать цикл чисел 1-5 в столбце A:

  1. Введите "= A1" в ячейке A6. При перетаскивании автоматически будет "= A2" в ячейке A7 и т.д. Из-за того, как Excel делает вещи.

Итак, теперь у нас есть столбец A, повторяющий числа 1-5, в то время как столбец B увеличивается на 100 каждые 5 ячеек. Вы можете сделать повторение столбца B, например, номера 100-900, используя тот же метод, что и с столбец А, как способ создания, например, каждой возможной комбинации с несколькими переменными. Перетащите столбцы, и они сделают это бесконечно. Я явно не рассматриваю данный сценарий, но если вы выполните шаги и поймете их, концепция должна дать вам ответ на проблему, которая включает в себя добавление большего количества столбцов и взаимодействие или использование их в качестве ваших переменных.

Ответ 6

@Nat дал хороший ответ. Но поскольку нет способа сократить код, почему бы не использовать контактен для "генерации" необходимого вам кода. Это работает для меня, когда я ленивый (при наборе всего кода в ячейке).

Поэтому нам нужно просто определить шаблон> использовать Excel для построения шаблона 'структура'> добавить "=" и вставить его в нужную ячейку.

Например, вы хотите достичь (я имею в виду, введите в ячейку):

=IF('testsheet'!$C$1 <= 99,'testsheet'!$A$1,"") &IF('testsheet'!$C$2 <= 99,'testsheet'!$A$2,"") &IF('testsheet'!$C$3 <= 99,'testsheet'!$A$3,"") &IF('testsheet'!$C$4 <= 99,'testsheet'!$A$4,"") &IF('testsheet'!$C$5 <= 99,'testsheet'!$A$5,"") &IF('testsheet'!$C$6 <= 99,'testsheet'!$A$6,"") &IF('testsheet'!$C$7 <= 99,'testsheet'!$A$7,"") &IF('testsheet'!$C$8 <= 99,'testsheet'!$A$8,"") &IF('testsheet'!$C$9 <= 99,'testsheet'!$A$9,"") &IF('testsheet'!$C$10 <= 99,'testsheet'!$A$10,"") &IF('testsheet'!$C$11 <= 99,'testsheet'!$A$11,"") &IF('testsheet'!$C$12 <= 99,'testsheet'!$A$12,"") &IF('testsheet'!$C$13 <= 99,'testsheet'!$A$13,"") &IF('testsheet'!$C$14 <= 99,'testsheet'!$A$14,"") &IF('testsheet'!$C$15 <= 99,'testsheet'!$A$15,"") &IF('testsheet'!$C$16 <= 99,'testsheet'!$A$16,"") &IF('testsheet'!$C$17 <= 99,'testsheet'!$A$17,"") &IF('testsheet'!$C$18 <= 99,'testsheet'!$A$18,"") &IF('testsheet'!$C$19 <= 99,'testsheet'!$A$19,"") &IF('testsheet'!$C$20 <= 99,'testsheet'!$A$20,"") &IF('testsheet'!$C$21 <= 99,'testsheet'!$A$21,"") &IF('testsheet'!$C$22 <= 99,'testsheet'!$A$22,"") &IF('testsheet'!$C$23 <= 99,'testsheet'!$A$23,"") &IF('testsheet'!$C$24 <= 99,'testsheet'!$A$24,"") &IF('testsheet'!$C$25 <= 99,'testsheet'!$A$25,"") &IF('testsheet'!$C$26 <= 99,'testsheet'!$A$26,"") &IF('testsheet'!$C$27 <= 99,'testsheet'!$A$27,"") &IF('testsheet'!$C$28 <= 99,'testsheet'!$A$28,"") &IF('testsheet'!$C$29 <= 99,'testsheet'!$A$29,"") &IF('testsheet'!$C$30 <= 99,'testsheet'!$A$30,"") &IF('testsheet'!$C$31 <= 99,'testsheet'!$A$31,"") &IF('testsheet'!$C$32 <= 99,'testsheet'!$A$32,"") &IF('testsheet'!$C$33 <= 99,'testsheet'!$A$33,"") &IF('testsheet'!$C$34 <= 99,'testsheet'!$A$34,"") &IF('testsheet'!$C$35 <= 99,'testsheet'!$A$35,"") &IF('testsheet'!$C$36 <= 99,'testsheet'!$A$36,"") &IF('testsheet'!$C$37 <= 99,'testsheet'!$A$37,"") &IF('testsheet'!$C$38 <= 99,'testsheet'!$A$38,"") &IF('testsheet'!$C$39 <= 99,'testsheet'!$A$39,"") &IF('testsheet'!$C$40 <= 99,'testsheet'!$A$40,"") 

Я не набрал его, я просто использовал символ "&" для объединения упорядоченной ячейки в Excel (другой файл, а не файл, над которым мы работаем).

Заметить, что:

part1> IF('testsheet'!$C$

часть2> 1 to 40

part3> <= 99,'testsheet'!$A$

part4> 1 to 40

part5> ,"") &

  • Введите часть 1 до А1, часть 3 до С1, часть до E1.
  • Введите "= A1" в A2, "= C1" в C2, "= E1" в E2.
  • Введите "= B1 + 1" в B2, "= D1 + 1" в D2.
  • Введите "= A2 & B2 & C2 & D2 & E2" в G2
  • Введите "= I1 & G2" в I2

Теперь выберите A2: I2 и перетащите его вниз. Обратите внимание, что число добавило инкремент на строку, и сгенерированный текст объединяется, ячейка за ячейкой и строка за строкой.

  • Скопируйте содержание I41,
  • вставьте его куда-нибудь, добавьте "=" впереди, удалите лишнюю & и заднюю часть.

Результат = код, как вы и предполагали.

Я использую Excel/OpenOfficeCalc, чтобы помочь мне генерировать код для моих проектов. Работает для меня, надеюсь, это помогает другим. (: