Как увеличить ссылку на ячейку в функции по числовым значениям на основе известного количества строк

470
mehmetic

Это относится к формуле, которая мне нужна для ячейки F2 на изображении ниже.
F2 показывает результат, который я ХОЧУ :

spreadsheet with sample data

Мне НУЖНО: Формула Concat для объединения данных в столбце B для каждого варианта того, что находится в столбце A. Поэтому, если мы знаем, что существует X версий элемента (основанных на функции в C2), тогда сцепление должно увеличить X -1 раз нарисовать текстовую строку из столбца А.

Не могу найти лучший способ сделать это! Я также в порядке с созданием новых функций, если на них нужно сослаться (например, на агрегатные CONCAT в F, потому что тогда я могу просто написать оператор IF для поиска «BASE» ...)

  • Я знаю число в C2: это количество раз, когда текст в столбце A появляется
  • Я знаю число в E2: это номер строки
  • Я знаю результат D: если это первый раз, когда появляется текст в А, это «База», в противном случае это «Вариант»
  • Я знаю, что текст в столбце А всегда сортируется
0
There's no need to have a column just to hold the row number; you can always get that with `ROW()`. Scott 5 лет назад 0
Спасибо Скотт; Я посмотрел на ответ Фримена в том вопросе, который вы связали, он не сработает ... но мне придется попробовать ваш ответ, когда я нахожусь в электронной таблице. Я знаю о ROW, я просто поместил его там как ссылку на случай, если кто-то подумает, что использование дифференциала ROW #s поможет ... mehmetic 5 лет назад 0
У вас есть Office 365 или 2016 или 2019? Если да, вы можете использовать встроенную функцию TEXTJOIN. pat2015 5 лет назад 1

2 ответа на вопрос

1
p._phidot_

Используйте дополнительный столбец .. затем скройте его. (:

F2 ----> =IF(A2="","",IF(A1=A2,"",G3&", "&B2)) G2 ----> =IF(A2="","",IF(A2=A3,A2&", "&G3,B2)) 

и перетащите вниз ... пожалуйста, поделитесь, если это работает (или не работает) (:

Привет @ p._phidot_, да, это работает с ОДНИМ небольшим изменением ..
= IF (A2 = "", "", IF (A2 = A3, ** B2 ** & "," & G3, B2)) mehmetic 5 лет назад 1
Вся хвала богу .. рад что решает. (: p._phidot_ 5 лет назад 0
1
Scott

Адаптируя мой ответ к условному соединению содержимого ячеек по строкам, введите следующие формулы:

  • F2=IF(AND(A1<>A2,A2<>""), G2, "")
  • G2=IF(A2<>A3, B2, B2 & ", " & G3)

(при условии, что ваши данные начинаются со строки 2, как показано в вопросе). Если вы не хотите использовать столбец  G, вы можете использовать любой доступный столбец (например, Zили AG) и соответствующим образом изменить ссылки. Перетащите / заполните, чтобы покрыть все ваши данные. 

Формула во втором столбце (я предполагаю, что это столбец  G) формирует разделенный запятыми список размеров для текущей вещи в столбце  A снизу вверх. Точнее, ячейка  содержит список строк  n и ниже. (Это может помочь вам взглянуть на иллюстрации сейчас.) Он говорит,Gn

  • Если следующая строка имеет значение в столбце, отличное  Aот текущей строки ( A2<>A3), то это последняя строка для этого значения, и поэтому список для этой строки и ниже является просто значением для этой строки.
  • В противном случае это не последняя строка для этого значения, и строка ниже этой имеет список для этой строки и ниже. Поэтому я хочу взять значение из этой строки и «добавить» его в список из строки ниже.

Затем формула в столбце  Fотображает полный список для вещи в первой строке для этой вещи и пустым в другом месте. Также отображается пустым, если Aзначение столбца  в этой строке пустое.

illustration of spreadsheet

Возможно, вы захотите скрыть столбец, как  Gтолько вы получите эту работу.

Вот это да. Это хорошее решение. Спасибо Скотт. Это работает как шарм ... Вы также добавили IF (<>) в мой арсенал - спасибо! mehmetic 5 лет назад 0

Похожие вопросы