2

Я хотел бы автоматически заполнить (если возможно - с удовольствием сделаю по-другому) строку, имеющую шаблон, показанный здесь: I1A, I1B, I2A, I2B, I3A, I3B,… В более информативных терминах, первый символ - это буква I второй символ содержит числа, начинающиеся с 1, но каждый повторяется дважды, а третий символ чередуется между буквой А и буквой В. Я понятия не имею, как это сделать, поэтому я ищу помощи. Спасибо!

3 ответа3

3

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

Первый столбец [= "l"] или любой постоянный символ
- Просто вставьте пару "l" символов в последовательных рядах.
- Выберите два или более и перетащите вниз на маркер заполнения (квадратная точка в правом нижнем углу поля выбора)
Второй столбец [= 1,1,2,2,3,3, ...]
- Удалить числовой 1 в каждой из первых двух строк данных
- третья строка, установите формулу равной ПЕРВОЙ строке плюс один
- четвертый ряд, установить формулу, равную ВТОРОЙ строке
- Выберите ТОЛЬКО третью и четвертую строку и перетащите маркер заполнения вниз.
Третий столбец [= A, B, A, B ...]
- Введите A и B в первую и вторую строки данных, а затем снова в третью и четвертую строки данных
- Выберите все четыре и перетащите ручку заполнения вниз.
Четвертый столбец [I1A, I1B, I2A, I2B, I3A, I3B ...]
- объединить остальные три столбца
- перетащите заполнить вниз.

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

Преимущества:
- Как только вы отсортируете несколько строк, вы можете просто перетащить заполнить это до конца света. Фактически, вы можете поиграть с перетаскиванием всех четырех столбцов одновременно, но вам нужно будет найти правильную "высоту" выделения, чтобы начать перетаскивание (вероятно, с четырех), и правую стартовую строку.
- Эти простые формулы позволяют легко понять, что происходит, и изменять по мере необходимости для новых задач.
- Этот метод живет в вашей голове, а не в определенном списке где-то.
Недостатки:
- Занимает несколько столбцов, которые могут потребовать промежуточную версию вашего листа, если вещь там упакована.

1

Во-первых, поставьте только 1, оставьте пустую ячейку под ней, 2, оставьте пустую клетку под ней, вот так

image1

Теперь выберите эти 4 ячейки и копируйте их так долго, как хотите, чтобы ваши числа были сгенерированы.

Это даст вам 1, 2, 3, 4 ... с пробелом в 1 пустую ячейку между

Во-вторых, в столбце рядом с 1 введите = "I" & A1 & "A", где A1 - это ячейка, имеющая 1.

в строке ниже, где вы ввели формулу выше, введите = "I" & A1 & "B",

по сути, это будет в ячейке рядом с пустой ячейкой ниже 1

Ячейка B1 теперь будет иметь I1A (первая формула выше). Ячейка B2 теперь будет иметь I1B (вторая формула выше), вот так

image2

Выберите B1:B2, скопируйте вниз до места, где вы заполнили 1,2,3, ... в первом шаге

Ваш столбец B будет иметь ваш список.

image3

Файл Excel, в котором это сделано

1

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

Альтернатива 1

Этот подход рассматривает предыдущие ячейки, чтобы выяснить, что нужно. Поскольку шаблон основан на двух ячейках, необходимо ввести первые две (I1A и I1B). Введите эту формулу в следующую ячейку.

Если перейти: если первые две ячейки - это A1 и B1, то это будет в C1:

="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)

Я покажу простые версии во всей формуле ниже; просто замените скорректированную версию, если вы начинаете в другом столбце (или строке).

Буква в конце чередуется, поэтому вы можете основывать ее на нечетных и четных числах столбцов (или строк).

Если перейти: если вы начинаете с нечетного столбца, этот кусок будет:

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")

Введите подходящую версию для первой ячейки, затем скопируйте ее поперек или вниз для столько ячеек, сколько вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .