Вот несколько способов. Вопрос не ясен относительно того, реплицируете ли вы формулу по столбцам одной строки или по строкам вниз одного столбца. Я покажу это для обоих.
Альтернатива 1
Этот подход рассматривает предыдущие ячейки, чтобы выяснить, что нужно. Поскольку шаблон основан на двух ячейках, вам необходимо ввести первые две ( I1A
и I1B
). Введите эту формулу в следующую ячейку.
Если перейти: если первые две ячейки - А1 и В1, то это будет в С1:
="I" & IF(MID(A1,2,1)=MID(B1,2,1),1,0) + MID(B1,2,1) & RIGHT(A1,1)
Если идти вниз: если первые две ячейки - А1 и А2, то это будет A3:
="I" & IF(MID(A1,2,1)=MID(A2,2,1),1,0) + MID(A2,2,1) & RIGHT(A1,1)
При этом используются строковые функции для извлечения символов, которые изменяют, корректируют их и соединяют части обратно (амперсанды объединяют части). Первый символ является постоянным.
Для второго символа он смотрит, было ли число (средний символ) одинаковым для двух предыдущих ячеек. Если так, пришло время добавить 1
. В противном случае это остается прежним.
Поскольку последний символ повторяет все остальные ячейки, он просто использует значение из двух ячеек ранее.
Если у вас есть формула в третьей ячейке, вы можете скопировать ее по мере необходимости. Способ 1 не волнует, где на листе вы положили его.
Альтернатива 2
Этот подход использует некоторые арифметические приемы, чтобы выяснить, что происходит в каждой ячейке.
Число в середине увеличивается 1
за каждые два столбца (или строки). Функция COLUMN дает вам номер столбца (A = 1, B = 2 и т. Д.). Функция Row делает то же самое для номера строки. Если вы начинаете со столбца A (или строки 1), у вас уже есть правильный начальный номер. Если этот шаблон начинается в более позднем столбце (или строке), вам нужно будет вычесть на 1 меньше номера столбца (или строки), чтобы получить начальное значение 1. Деление на 2 и округление повторяют значение для двух столбцов ( или строки), затем увеличивается.
Если перейти: если вы начинаете в столбце A, эта часть формулы будет иметь вид:
ROUND(COLUMN()/2,0)
Если вы начнете, скажем, в столбце C (3-й столбец), формула будет выглядеть так:
ROUND((COLUMN()-2)/2,0)
Если идти вниз: если вы начнете со строки 1, эта часть формулы будет иметь вид:
ROUND(ROW()/2,0)
Если вы начнете, скажем, в строке 3, формула будет:
ROUND((ROW()-2)/2,0)
Я покажу простые версии во всей формуле ниже; просто замените скорректированную версию, если вы начинаете в другом столбце (или строке).
Письмо на конечном чередуется, так что вы можете основывать , что на нечетной VS. даже столбец (или строку) числа.
Если перейти: если вы начинаете в нечетном столбце, этот кусок будет:
IF(MOD(COLUMN(),2)=0,"B","A")
Если начальный номер столбца четный, это будет:
IF(MOD(COLUMN(),2)=0,"A","B")
Если идти вниз: если вы начинаете в нечетном ряду, этот кусок будет:
IF(MOD(ROW(),2)=0,"B","A")
Если начальный номер строки четный, это будет:
IF(MOD(ROW(),2)=0,"A","B")
Функция MOD дает вам остаток после деления номера столбца (или строки) на 2
. Номер столбца (или строки), который является четным, будет иметь остаток от 0
нечетного 1
. Таким образом, вы выбираете последовательность «A» и «B» на основе этого. Для сводного примера ниже я покажу нечетную версию.
Соединение это дает вам:
Если перейти через:
="I" & ROUND(COLUMN()/2,0) & IF(MOD(COLUMN(),2)=0,"B","A")
Если идти вниз:
="I" & ROUND(ROW()/2,0) & IF(MOD(ROW(),2)=0,"B","A")
Введите подходящую версию для первой ячейки, затем скопируйте ее поперек или вниз для столько ячеек, сколько вам нужно.