簡體   English   中英

使用 Google 表格 ARRAYFORMULA 連接基於每行從最低值到最高值的項目系列

[英]Using Google Sheets ARRAYFORMULA to Concatenate Series of Item Based from Lowest to Highest Values per Row

我有一個包含三列的表格:A 列:項目名稱,B 列:系列的最低值,C 列:系列的最高值。 在此處輸入圖像描述

我想要實現的是:

  1. 生成每行從最低編號到最高編號的一系列項目序列

所以 Apple 7 9 將產生:“Apple_7”、“Apple_8”、“Apple_9”

  1. 將每行的此類序列連接/加入 D 列 So

    物品 直到 結果
    蘋果 7 9 “Apple_7、Apple_8、Apple_9”
    漿果 3個 8個 “Berry_3、Berry_4、Berry_5、Berry_6、Berry_7、Berry_8”
  2. 使用一個 Arrayformula 完成所有操作,以便可以自動計算添加的新行。

這是示例表: https://docs.google.com/spreadsheets/d/1R5raKmmt5-aOIorAZGHjv_-fdySKWjCMB_FRQwm1vag/edit#gid=0

我在 D 列中嘗試過:

arrayformula(textjoin(", ",true,arrayformula(A3:A&"_"&sequence(1,C3:C-B3:B+1,B3:B,1))))

顯然,序列 function 僅從 B 列獲取值並將其加入第一行。

任何幫助將不勝感激。

試試下面BYROW()公式(見你的文件,harun24hr 表)。

=BYROW(A3:INDEX(A3:A,COUNTA(A3:A)),LAMBDA(x,TEXTJOIN(";",1,INDEX(x&"_"& SEQUENCE(INDEX(C:C,ROW(x))-INDEX(B:B,ROW(x))+1,1,INDEX(B:B,ROW(x)))))))
  • 這里A3:INDEX(A3:A,COUNTA(A3:A))將返回一個值數組以及從A3到 A 列中最后一個非空單元格的單元格引用(假設數據中沒有任何空白行)。 如果你有空行,那么你必須使用不同的方法。 請參閱@TheMaster 的這篇文章

  • 然后LAMBDA()將對B 的每個單元格以及 C 列應用TEXTJOIN()SEQUENCE() function。

  • SEQUENCE()將從開始到結束編號並通過連接 A 列來制作系列,並將生成您想要的字符串。

  • 最后TEXTJOIN()會將所有帶有分隔符的字符串連接到一個單元格中。

在此處輸入圖像描述

嘗試減少:

=INDEX(QUERY(REDUCE(, A3:INDEX(A:A, MAX(ROW(A:A)*(A:A<>""))), 
 LAMBDA(x, a, {x; JOIN(, LAMBDA(i, f, u, i&"_"&SEQUENCE(1, u-f+1, f)&";")
 (a, OFFSET(a,,1), OFFSET(a,,2)))})), "offset 1", ))

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM