Generowanie listy numerów rozdzielonych

0

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:

enter image description here

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?

RhymeGuy
źródło
1
Masz na myśli to ="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?
EBGreen
@EBGreen Oh przepraszam. Tak, chciałbym móc zapewnić początek i koniec, coś takiego jak = NUMBERSRANGE (1,50), nie ma potrzeby pobierania danych z dwóch innych komórek.
RhymeGuy

Odpowiedzi:

2

Wymaga to TEXTJOIN() funkcjonować:

Worksheet Screenshot

Wpisz tablicę ( Ctrl + Przesunięcie + Wchodzić ) następujący wzór (nie zapomnij usunąć { i } ):

{=TEXTJOIN("|",TRUE,ROW(INDEX(C:C,1):INDEX(C:C,5)))}

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 kolumny C 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ć,

{=TEXTJOIN("|",TRUE,ROW(INDIRECT("1:5")))}

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.

robinCTS
źródło
Nie można tego uruchomić. Używam Excela na Macu, wersja 15. Wszystko, co dostaję, to tekst jako formuła, nie ma zakresu liczb.
RhymeGuy
@RymeMuy Ups! Zapomniałem wspomnieć, że musisz usunąć { 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.
robinCTS
@robinCTS, jak pracować z wcześniejszymi wersjami, ponieważ TEXTJOIN działa tylko w 2016 roku!
Rajesh S
0

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: # | # | # | # | #

gns100
źródło
Proszę przeczytaj komentarz PO na pytanie. Wyraźnie nie zawsze będzie to pięć cyfr, więc ta odpowiedź nie ma zastosowania.
robinCTS
Dobra sztuczka inaczej.
robinCTS