---
title: CUBERANKEDMEMBER – ดึงสมาชิกโดยเรียงลำดับอันดับ
url: https://www.thepexcel.com/functions/excel/cube/cuberankedmember/
type: function-explainer
program: Excel
syntax: "=CUBERANKEDMEMBER(connection, set_expression, rank, [caption])"
date: 2025-12-11
updated: 2025-12-25
scores:
  popularity: 2
  difficulty: 7
  usefulness: 5
---

# CUBERANKEDMEMBER – ดึงสมาชิกโดยเรียงลำดับอันดับ

> CUBERANKEDMEMBER ส่งกลับสมาชิกที่อยู่ในตำแหน่งอันดับที่ระบุจากชุด ใช้หาข้อมูลอันดับ 1, 2, 3 หรืออื่น

## คำอธิบาย

CUBERANKEDMEMBER ส่งกลับสมาชิกที่อยู่ในตำแหน่งอันดับที่ระบุจากชุด ใช้หาข้อมูลอันดับ 1, 2, 3 หรืออื่น ๆ จากคิวบ์

## Syntax

```excel
=CUBERANKEDMEMBER(connection, set_expression, rank, [caption])
```

**Variant**

```excel
=CUBERANKEDMEMBER("Sales", $D$4, 1, "Top Month")
```

ส่งกลับสมาชิกที่มีค่าสูงสุด (rank=1) จากชุด

**Variant**

```excel
=CUBERANKEDMEMBER("Sales", CUBESET("Sales","[2004].[June]"), 3)
```

ส่งกลับสมาชิกลำดับที่ 3 จากชุด CUBESET

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| connection | Yes | text |  | ข้อความที่ระบุชื่อของการเชื่อมต่อกับคิูบ (เช่น 'Sales', 'HR', 'Finance') ต้องตรงกับชื่อการเชื่อมต่อใน cube ของ Analysis Services |
| set_expression | Yes | text or function |  | ชุดของสมาชิกที่ต้องการค้นหา อาจเป็น CUBESET function หรืออ้างอิงเซลล์ที่มี CUBESET เช่น CUBESET("Sales","{[Item].children}") หรือ $D$4 |
| rank | Yes | number |  | ตัวเลขที่ระบุตำแหน่งอันดับที่ต้องการ (1 = ที่หนึ่ง, 2 = ที่สอง, เป็นต้น) ต้องเป็นจำนวนเต็มบวกและไม่เกินจำนวนสมาชิกในชุด |
| caption | No | text |  | ข้อความทดแทนที่แสดงในเซลล์แทนชื่อของสมาชิก เช่น 'Top Month' หรือ 'Best Seller' (ถ้าไม่ใส่จะแสดงชื่อสมาชิกจริง) |

## เคสการใช้งาน

### หาเดือนที่มียอดขายสูงสุด

ใช้ CUBERANKEDMEMBER เพื่อค้นหาเดือนที่มียอดขายสูงสุด (rank=1) หรือต่ำสุด (rank=12 หากมี 12 เดือน)

_เหมาะกับ:_ best-performer

### หาร้านค้าที่มีประสิทธิภาพดีที่สุด

ใช้ CUBERANKEDMEMBER เพื่อค้นหาร้านค้า 3 อันดับแรกที่มีกำไรสูงสุด

_เหมาะกับ:_ ranking

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: หาเดือนที่มียอดขายสูงสุด

```excel
=CUBERANKEDMEMBER("Sales", $D$4, 1, "Top Month")
```

**ผลลัพธ์:** `June (หรือเดือนที่มียอดขายสูงสุด)`

ดึงเดือนที่อยู่อันดับ 1 (สูงสุด) จากชุดที่ระบุในเซลล์ D4 และแสดงข้อความ 'Top Month' แทนชื่อจริง

### 2. ตัวอย่างที่ 2: หาสินค้า Top 3

```excel
=CUBERANKEDMEMBER("Sales", CUBESET("Sales", "{[Product].children}"), 3)
```

**ผลลัพธ์:** `Widget C (หรือสินค้าลำดับที่ 3)`

ใช้ CUBESET เพื่อสร้างชุดสินค้าทั้งหมด จากนั้นดึงสินค้าที่อยู่ในตำแหน่งลำดับที่ 3

### 3. ตัวอย่างที่ 3: หาตัวแทนขายอันดับ 5

```excel
=CUBERANKEDMEMBER("SalesPeople", CUBESET("SalesPeople", "{[Sales Rep].members}"), 5, "#5 Sales Rep")
```

**ผลลัพธ์:** `Alice Johnson`

ดึงตัวแทนขายลำดับที่ 5 จากชุด members ทั้งหมด พร้อมแสดง caption เป็น '#5 Sales Rep'

### 4. ตัวอย่างที่ 4: หาลูกค้า Bottom 1 (ต่ำสุด)

```excel
=CUBERANKEDMEMBER("Sales", $D$10, 50, "Lowest Customer")
```

**ผลลัพธ์:** `Small Shop Inc`

หากชุดมี 50 ลูกค้า rank=50 จะส่งกลับลูกค้าลำดับสุดท้าย (ต่ำสุด) ข้อมูลต้องเรียงจากสูงไปต่ำ

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้ใช้ IFERROR ครอบไว้ เพราะ CUBERANKEDMEMBER อาจ disconnect จาก server หรือข้อมูล error ได้: =IFERROR(CUBERANKEDMEMBER(...), "ไม่สามารถดึงข้อมูล")

- ส่วนตัวผมชอบใช้ $D$4 (absolute reference) เก็บ CUBESET ไว้แล้วอ้างอิงจากหลาย ๆ เซลล์ เพราะอัพเดตหมดในครั้งเดียว

- ตรวจสอบว่า Analysis Services cube มีข้อมูลถูกต้อง หากข้อมูล source ว่าง CUBESET จะไม่มีสมาชิก จึง Error #N/A

- ใช้กับ COUNTA หรือ CUBESETCOUNT เพื่อหาจำนวนสมาชิกทั้งหมด แล้วตั้ง rank ให้สอดคล้อง

- ถ้าต้องแสดงหลาย rank พร้อมกัน (Top 3) ใช้ helper column หรือ MAP function (Excel 365 ขึ้นไป)

## คำถามที่พบบ่อย

**Q: rank ต้องมีค่าเท่าไหร่ถึงจะถูก?**

rank ต้องเป็นจำนวนเต็มบวก (1, 2, 3, ...) ที่ไม่เกินจำนวนสมาชิกในชุด ผมแนะนำให้ใช้ COUNTA หรือ CUBESETCOUNT เพื่อนับจำนวนสมาชิกก่อน เช่น =CUBERANKEDMEMBER("Sales", $D$4, MIN(5, CUBESETCOUNT($D$4)))

**Q: ทำไม CUBERANKEDMEMBER ต้องใช้กับ CUBESET?**

เพราะ CUBERANKEDMEMBER ต้องการชุด (set) ของสมาชิกเพื่อรู้ว่าจะเรียงลำดับเทียบจากอะไร CUBESET สร้างชุดนั้นขึ้นมา ถ้าเอาเซลล์ธรรมดามา มันจะ Error #N/A

**Q: Error #NAME? หมายความว่าอะไร?**

ผมพบว่า #NAME? ปกติเกิดจากการเชื่อมต่อไม่ถูกต้อง ชื่อ connection ไม่ตรงกับชื่อใน cube หรือ Analysis Services ไม่พร้อม ตรวจสอบการเชื่อมต่อกับ OLAP server ก่อน

**Q: ถ้า rank ใหญ่เกินจำนวนสมาชิก จะเป็นไง?**

ผม Error #NUM! หรือ #N/A มักจะได้ ให้ลองใช้ IFERROR เป็นตัวดักไว้ เช่น =IFERROR(CUBERANKEDMEMBER(...), "ไม่พบอันดับนี้")

**Q: Caption พารามิเตอร์ใช้ทำไม?**

Caption ใช้แสดงข้อความแทนชื่อจริงของสมาชิก เช่นถ้าชื่อจริงยาว ใส่ caption="Top" แล้วเซลล์จะแสดง 'Top' แทน ถ้าไม่ใส่ก็แสดงชื่อจริง

## ฟังก์ชันที่เกี่ยวข้อง

- [CUBESET – สร้างชุดข้อมูลจากคิูบ](https://www.thepexcel.com/functions/excel/cube/cubeset/)
- [CUBEMEMBER – ดึงสมาชิกจากคิวบ์ OLAP](https://www.thepexcel.com/functions/excel/cube/cubemember/)
- [CUBEVALUE – ฟังก์ชันดึงค่าจากคิูบ OLAP](https://www.thepexcel.com/functions/excel/cube/cubevalue/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support: CUBERANKEDMEMBER Function](https://support.microsoft.com/en-us/office/cuberankedmember-function-07efecde-e669-4075-b4bf-6b40df2dc4b3) _(official)_
- [Microsoft Support: CUBESET Function](https://support.microsoft.com/en-us/office/cubeset-function-5b2146bd-62d6-4d04-9d8f-670e993ee1d9) _(official)_
- [Microsoft Support: CUBESETCOUNT Function](https://support.microsoft.com/en-us/office/cubesetcount-function-24577bdb-d900-4618-8150-c67cc27e67fb) _(official)_
- [Microsoft Learn: CUBE Functions Overview](https://learn.microsoft.com/en-us/dax/cube-functions) _(official)_

---

_Source: [https://www.thepexcel.com/functions/excel/cube/cuberankedmember/](https://www.thepexcel.com/functions/excel/cube/cuberankedmember/)_
