
Я столкнулся со следующей проблемой:
У меня есть одиннадцать столбцов, которые представляют происхождение продукта, иногда продукт берется из одного источника, а иногда из двух. В столбцах есть значения, которые соответствуют доле того, сколько используется этого источника. Пример (используем только 4 источника для простоты примера):
NTH LGL MSV NIE
{1 0 0 0;
0.5 0 0.5 0;
0 1 0 0;}
Тогда мне нужны результаты для первой строки NTH, для второй строки NTH-MSV и для третьей строки LGL.
Я попробовал использовать следующую формулу, но мне не удалось заставить Excel объединить пустые ячейки или ошибки.
=CONCATENATE(IFERROR(OFFSET(AP1;0;IF(AQ4:BA4>0;COLUMN(AQ4:BA4)-COLUMN(AP4);""));""))
В столбцах AQ1–BA1 указаны страны происхождения продукции, а в столбцах ниже — значения (от 0 до 1).
решение1
После разъяснений попробуйте эту пользовательскую функцию:
Function HEADERFOROVERZERO(rng As Range)
Dim rngCell, returnString: returnString = ""
For Each rngCell In rng
If (IsNumeric(rngCell.Value)) Then
If (rngCell.Value > 0) Then
returnString = returnString & Cells(1, rngCell.Column).Value & "-"
End If
End If
Next
If (Len(returnString) > 1) Then
returnString = Left(returnString, Len(returnString) - 1)
End If
HEADERFOROVERZERO = returnString
End Function