Dzięki temu możemy uzyskać triki. Wkleiłem twoje dane do zakresu A1:F5
. Poniżej stworzyłem tabelę, której wynik końcowy wygląda jak ten plik CSV:
Door,Apts,44,47,48,50
2'0,50 (1),,,,50 (1),
2'6,44 (1), 47 (1), 48 (1),44 (1), ,47 (1), ,48 (1), ,
3'0,48 (1),,,48 (1), ,
4'0,44 (1), 48 (1), 50 (1),44 (1), ,,48 (1), ,50 (1),
5'0,44 (1), 47 (2), 48 (1), 50 (1),44 (1), ,47 (2), ,48 (1), ,50 (1),
Dla Door
pole, właśnie skopiowałem twoje rozmiary drzwi i wkleiłem transponowane
W nazwach pól (44 447, 50, 50) zrobiłem to samo z twoimi numerami apt
Dla Apts
pole, formuła dla pierwszego wiersza jest następująca:
=LEFT(CONCATENATE(C11,D11,E11,F11),LEN(CONCATENATE(C11,D11,E11,F11))-2)
Wystarczy tylko skompilować dane z pól po prawej stronie
W przypadku tych pól wzór dla pierwszej komórki jest następujący:
=IF(INDEX(OFFSET($A$2:$A$5,0,MATCH($A11,$1:$1,0)-1),MATCH(C$10,$A$2:$A$5,0))>0,C$10 & " (" &INDEX(OFFSET($A$2:$A$5,0,MATCH($A11,$1:$1,0)-1),MATCH(C$10,$A$2:$A$5,0)) & "), ","")
Wygląda naprawdę długo, ponieważ duża porcja jest powtarzana. Ten kawałek to:
INDEX(OFFSET($A$2:$A$5,0,MATCH($A11,$1:$1,0)-1),MATCH(C$10,$A$2:$A$5,0))
Wszystko, co robi, to pobranie wartości ze stołu A1:F5
dla tego konkretnego rozmiaru drzwi i apt
Zastępowanie tego kawałka właśnie INDEX(...)
otrzymujemy:
=IF(INDEX(...)>0,C$10 & " (" &INDEX(...) & "), ","")
Więc wyszukuje wartości i zwraca puste, jeśli jest zero lub coś w tym stylu 50 (1),
jeśli nie jest
The Apts
field następnie grupuje je wszystkie razem i usuwa końcowy przecinek + spację
Oczywiście może to lub nie zadziałać, w zależności od wielkości zbioru danych. Jednak przypuszczam, że liczba mieszkań i drzwi nie zmienia się w najbliższym czasie, więc warto ją mieć na jedną zmianę.