Mam listę ilości z kolumną z opisem. Liczą drzwi w oparciu o rozmiar. Chciałbym wypisać listę (najlepiej oddzieloną przecinkami) numerów opisowych z odpowiednimi numerami. Oto przykład tego, co mam:
A | B | C | D | E | F |
Apt| 2'0 | 2'6 | 3'0 | 4'0 | 5'0 |
44 | 0 | 1 | 0 | 1 | 1 |
47 | 0 | 1 | 0 | 0 | 2 |
48 | 0 | 1 | 1 | 1 | 1 |
50 | 1 | 0 | 0 | 1 | 1 |
Próbuję go wygenerować listę numerów mieszkań pogrupowanych według rozmiaru, tak by brzmiała następująco:
2'0 | 50 (1)
2'6 | 44 (1), 47 (1), 48 (1)
3'0 | 48 (1)
4'0 | 44 (1), 48 (1), 50 (1)
5'0 | 44 (1), 47 (2), 48 (1), 50 (1)
Próbowałem wykonać funkcję IF w następujący sposób:
=IF(B2:B5>0,A3:A5,)
ale zwraca tylko pierwszą znalezioną wartość. Jakieś sugestie?
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:Dla
Door
pole, właśnie skopiowałem twoje rozmiary drzwi i wkleiłem transponowaneW 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: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:
Wygląda naprawdę długo, ponieważ duża porcja jest powtarzana. Ten kawałek to:
Wszystko, co robi, to pobranie wartości ze stołu
A1:F5
dla tego konkretnego rozmiaru drzwi i aptZastępowanie tego kawałka właśnie
INDEX(...)
otrzymujemy:Więc wyszukuje wartości i zwraca puste, jeśli jest zero lub coś w tym stylu
50 (1),
jeśli nie jestThe
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ę.
źródło