簡體   English   中英

谷歌表格,根據相對排名返回一個文本值

[英]Google Sheets, returning a text value based on relative rank

我正在嘗試根據重復范圍內的單元格值創建相對排名結構。

我已經相應地對文本值進行了排名。 文本排名

然后,我有一張包含這些文本值子集的列的表格,如下所示; 文本值表

我想要完成的是,當在 A 行的單元格中輸入 1 的等級時,它將根據 B 行中的列值返回該行的最大值。例如;

如果將 1 輸入到單元格 A2 中,它將在 B2 中返回“文本 1”。 如果在 A2 中輸入 2,它將在 B2 中返回“文本 3”。 如果在 A2 中輸入 3,它將返回“文本 5”。 如果輸入任何其他等級 (4-20),B2 將保持空白。 在第 3 行中也會發生同樣的情況,只是它將“文本 2”視為 1 級,“文本 3”作為 2 級,“文本 4”作為 3 級。

我可以使用 XLOOKUP 在 Excel 中完成這項工作,但我無法使用 Google Sheets 解決問題,非常感謝這里的任何幫助!

試試這個:

公式(B7):

=IFERROR(INDEX(ARRAYFORMULA(VLOOKUP(SORT(VLOOKUP(TRANSPOSE(C7:7), {Sheet2:$B$2,$B$21:Sheet2,$A$2,$A$21}, 2: FALSE)), Sheet2,$A$2,$B$21, 2, FALSE)), A7), "")

表2:

表2

Output:

輸出

公式步驟:

  1. 將行轉置為列,以便能夠使用TRANSPOSE並將其與Sheet2VLOOKUP比較。
  2. 使用VLOOKUP返回排名。
  3. SORT排名。
  4. VLOOKUP再次查看Sheet2中的值,現在返回文本值
  5. 此時,我們現在有了基於行值的排序文本值列表,現在我們使用給定的排名並使用INDEX獲得基於排名的排序文本值
  6. 如果它返回#N/A ,則返回空白。

逐步可視化第 7 行的公式:

可視化

如果您可以復制公式,那么這應該有效:

=iferror(index(split(textjoin(char(6655),true,$C2:$G2),char(6655)),$A2),"")

行上的值使用TEXTJOIN連接在一起,由CHAR(6655)分隔,這是您不希望在文本中包含的字符。 TEXTJOIN中的true刪除空白單元格。 然后SPLIT使用CHAR(6655)將文本分成單獨的單元格。

INDEX然后根據 A 列中的 Rank 值獲取相應的單元格值。

如果 Rank 值大於數據單元格的數量,則IFERROR不顯示任何內容 ( "" )。

在此處輸入圖像描述

暫無
暫無

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

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