Другой способ, который не использует vba, вместо этого он использует имена и формулу, чтобы проверить, есть ли запись в PD1. Это может быть использовано в любом месте строки. чтобы проверить клиента A, перейдите в любую пустую ячейку справа от данных во 2-й строке и введите
= if($ b2 = "", "", $ b $ 1 & ",")
это будет либо пустое значение, либо PD1, в зависимости от содержимого b2 скопируйте формулу, а затем используйте менеджер имен (лента формул), создайте новое имя PD_1 и вставьте формулу в нижнюю строку, а менеджер имен слегка преобразует ее такие как
= IF(Лист1!$ B2 = "", "", Лист1!$ B $ 1 & ",")
Следуйте той же схеме для остальных продуктов, используя правильный пример буквы столбца $ c2 = "", $ c $ 1 для PD2 и т.д.
Вы могли бы перейти прямо к использованию PD_ #, но я бы сделал еще одно имя
PD_Sum = обрезать (pd_1 & Pd_2 & PD_3 & PD_4 & PD_5 & PD_6)
Затем в столбце суммы просто поместите = PD_Sum
если вы хотите это без, в конце, то это
= IFERROR (слева (PD_sum, длина (PD_sum)-1), "")
Iferror включается в том случае, если в любой из ячеек ничего не выбрано, оно остается пустым и не генерирует ужасное сообщение об ошибке.