2013-07-08 4 views
0

Мне нужно повторить два символа (Y, N) 2^бесконечно вдоль столбца в excel. Таким образом, в первом столбце каждый символ будет повторяться 2^0 = 1 и выглядеть следующим образом:Повторяющийся символ или номер VBA в массиве

Y 
N 
Y 
N 

Вторая колонка повторяется бесконечно 2^1 = 2 раза

Y 
Y 
N 
N 
Y 
Y 
N 
N 

и так on- мне нужно сделать это для 24 столбцов! Есть ли простой способ сделать это? Я думаю, что это, возможно, придется использовать формулу массива ...

ответ

3

В A1

=IF(MOD(TRUNC((ROW()-1)/COLUMN()),2)=0,"Y","N") 

заполните и при необходимости.

1

Вы можете выполнить это, используя функции Substitute и Repeat, вложенные вместе.

Например, предположим, что вы имели исходную строку в ячейке A1 (A1 = «YN»), тогда в А2 движется вниз у вас есть несколько раз, чтобы заменить (А2 = 2^0, А3 = 2^1 , A4 = 2^2, ...), ваша формула может выглядеть следующим образом:

=SUBSTITUTE(SUBSTITUTE($A$1,"N",REPT("N",$A2)),"Y",REPT("Y",$A2)) 

И тогда вы можете просто перетащить эту формулу вниз

Надежда, что имеет смысл

+0

Я должен был быть более конкретным, извините! Каждая ячейка имеет только один символ, и мне нужно перетащить ее вниз по столбцу. Таким образом, первый столбец выглядит следующим образом: Y N Y N и второй столбец выглядит следующим образом Y Y N N и так далее, бесконечно вниз колонны. Этот процесс продолжается для 24 столбцов ... –

+0

Решение FASTEST. Замените A1 на «YN» (введите промежуток между ними), изменив формулу на: '= SUBSTITUTE (SUBSTITUTE ($ A $ 1," N ", REPT (" N ", $ A2))," Y ", REPT (" Y ", $ A2))' После того, как вы перетащите его, скопируйте и вставьте специальные значения>, тогда в 'Data'>' Text To Columns' используйте разделитель пробела и выберите «Обработать последовательные разделители как один» ... Это должно получить вас там ... Хотя это можно было бы так же легко сделать в цикле VBA, но у меня уже была классная формула: p –

+0

Подождите ... I Я снова читаю ваш комментарий ... Я думаю, что все еще не хватает того, что вы пытаетесь сделать. –