Czy w programie Excel istnieje funkcja, która jest w stanie wygenerować listę liczb w następujący sposób:
1|2|3|4|5
jak pokazano na obrazku poniżej:
Chciałbym móc zapewnić początek i koniec czegoś podobnego =NUMBERSRANGE(1,50)
. Nie ma potrzeby pobierania danych z dwóch innych komórek.
Zrobiłem trochę badań i oto moja pierwsza funkcja Excela:
Function RANGENUMBERS(D7, E7)
For i = D7 To E7
RANGENUMBERS = i & "|"
Next
End Function
Jak mogę przejść i połączyć numer z pętli For, aby uzyskać pożądany wynik?
microsoft-excel
worksheet-function
RhymeGuy
źródło
źródło
="1|2|3|4|5"
. Twoje pytanie nie ma wystarczającej ilości szczegółów. Czy zawsze będzie 1-5? Czy chcesz zapewnić początek i koniec? Czy początek i koniec będą pochodzić z dwóch innych komórek? Czy zajmie szereg komórek i złączy je z ogranicznikami rur?Odpowiedzi:
Wymaga to
TEXTJOIN()
funkcjonować:Wpisz tablicę ( Ctrl + Przesunięcie + Wchodzić ) następujący wzór (nie zapomnij usunąć
{
i}
):Chociaż to działa tak, to lepiej jest zastąpić
C:C
z kolumną, w której wprowadzono formułę. W ten sposób formuła nie złamie kolumnyC
jest usunięty.Zauważ to
TEXTJOIN()
jest dostępny tylko w programie Excel 2016. We wcześniejszych wersjach programu Excel wymagany jest wielopoziomowy format UDF. (Widzieć ten post na podstawowy.)Zauważ również, że jest to lepsze rozwiązanie niż wszechobecna alternatywa, która używa
INDIRECT()
funkcjonować,tak jak
INDIRECT()
jest niestabilny i powoduje, że arkusz kalkuluje wolniej.Łatwiej jest również zmodyfikować
INDEX
wersja więc punkty końcowe są odniesieniami, a nie zakodowanymi wartościami.źródło
{
i}
z formuły. Są tylko po to, aby przypominać o wprowadzeniu do formuły, zamiast normalnie wprowadzać ją. Jeśli tego nie zrobisz (jak nie zrobiłeś), otrzymasz formułę jako tekst.Podobnie jak w przypadku numeru telefonu i maskowania zip + 4, jeśli numer zawsze będzie wynosił 5 cyfr, to jak użyć niestandardowego formatu liczbowego, takiego jak: # | # | # | # | #
źródło