Вот несколько способов. Вопрос не ясен относительно того, реплицируете ли вы формулу по столбцам одной строки или по строкам вниз одного столбца. Я покажу это для обоих.
Альтернатива 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")
Введите подходящую версию для первой ячейки, затем скопируйте ее поперек или вниз для столько ячеек, сколько вам нужно.