Excel 2010 行動數據

Excel 2010 行動數據

我有一個表需要提取一些數據,但我不太確定如何執行此操作。

這是該表的範例。

|   A    +   B    +       C       +   D   +   E    +   F    |
|--------+--------+---------------+-------+--------+--------|
| FNAME  | LNAME  | FULLNAME      | GRADE | EFFORT | CODE   |
|--------+--------+---------------+-------+--------+--------|
| FNAME1 | LNAME1 | FNAME1 LNAME1 | A     |        | GRADE  |
|--------+--------+---------------+-------+--------+--------|
| FNAME1 | LNAME1 | FNAME1 LNAME1 | H     |        | EFFORT |
|--------+--------+---------------+-------+--------+--------|
| FNAME2 | LNAME2 | FNAME2 LNAME2 | C     |        | GRADE  |
|--------+--------+---------------+-------+--------+--------|

我需要的是將努力等級移至努力列,但在不同的行中。下面的例子。

|   A   +   B   +     C     +   D   +   E    +   F    |
|-------+-------+-----------+-------+--------+--------|
| FNAME | LNAME | FULLNAME  | GRADE | EFFORT | CODE   |
|-------+-------+-----------+-------+--------+--------|
| NAME1 | NAME1 | NAMENAME1 | A     |        | GRADE  | ←      To column E here         ←
|-------+-------+-----------+-------+--------+--------|                                 ↑
| NAME1 | NAME1 | NAMENAME1 | H     |        | EFFORT | → Move this Grade from column D ↑
|-------+-------+-----------+-------+--------+--------|

所以我想要的一個例子......

|   A    +   B    +       C       +   D   +   E    +   F    |
|--------+--------+---------------+-------+--------+--------|
| FNAME  | LNAME  | FULLNAME      | GRADE | EFFORT | CODE   |
|--------+--------+---------------+-------+--------+--------|
| FNAME1 | LNAME1 | FNAME1 LNAME1 | A     | H      | GRADE  |
|--------+--------+---------------+-------+--------+--------|
| FNAME2 | LNAME2 | FNAME2 LNAME2 | C     |        | GRADE  |
|--------+--------+---------------+-------+--------+--------|

更重要的是,並非所有學生都有努力成績,如果他們沒有努力成績,就不會有爭議。另外,有時會有額外的一行帶有註釋等......所以數據不是恆定的。

答案1

在新工作表中,複製標題 ( A1:F1) 並在說明列中輸入 1。我假設您正在使用 Column  G;即細胞 G1。進入

=IF(INDEX(Sheet1!A:A, $G2)<>"", INDEX(Sheet1!A:A, $G2), "")

到 中 A2,然後向右拖曳/填滿到 F2。然後更改 E2

=IF(INDEX(Sheet1!F:F, $G2+1)="EFFORT", INDEX(Sheet1!D:D, $G2+1), "")

並輸入

=IF(INDEX(Sheet1!F:F, $G1+1)="GRADE", $G1+1, $G1+2)

進入 G2A2:G2根據需要選擇並向下拖曳/填充。

G如果需要的話,然後隱藏 Column  。

列 是 我們(主要)從中提取資料的G行的索引(在新工作表上) 。Sheet1它比前一行的索引多一個,除非它指向 CODE 為 的行GRADE,在這種情況下,我們假設它是一行,EFFORT並向前一行添加 2(即,跳過該EFFORT行)。 Columns  A-D和 F只是從 Column 上的同一列複製Sheet1,由 Column 索引 G。 Column (EFFORT) 中的公式 E查看當前學生是否是具有兩行的學生(因此$G2+1指的是同一學生,代碼為),如果是,則從第二行的EFFORTColumn 中提取 EFFORT 成績 。D

對於這些數據:

+   A   +   B    +      C       +   D   +   E    +   F    +
+-------+--------+--------------+-------+--------+--------+
| FNAME | LNAME  |   FULLNAME   | GRADE | EFFORT |  CODE  |
+-------+--------+--------------+-------+--------+--------+
| John  | Smith  | John Smith   | A     |        | GRADE  |
| John  | Smith  | John Smith   | H     |        | EFFORT |
| Mary  | Jones  | Mary Jones   | B     |        | GRADE  |
| Isaac | Newton | Isaac Newton | A+    |        | GRADE  |
| Isaac | Newton | Isaac Newton | C     |        | EFFORT |
+-------+--------+--------------+-------+--------+--------+

我得到這個結果:

試算表

答案2

你可以在沒有樞軸的情況下處理這個問題。

根據您的範例,將其放在您的Effort專欄中Sheet2

=INDEX(Sheet1!$D$2:$D$10, MATCH(1, (Sheet2!$C2 = Sheet1!$C$2:$C$10) * (Sheet1!$F$2:$F$10 = "EFFORT"), 0))

然後按Ctrl+ Shift+Enter插入數組公式。

解釋

Sheet1!$D$2:$D$10EffortSheet1 上來源表中的欄位。

(Sheet2!$C2 = Sheet1!$C$2:$C$10)正在尋找匹配的FULLNAME

(Sheet1!$F$2:$F$10 = "EFFORT")正在尋找匹配項CODE,即“EFFORT”

兩者都返回布爾值,0並且1.如果兩個條件都匹配(找到具有匹配 FULLNAME 和 CODE 的行),則它將1 * 1向函數傳回 1 ( ) MATCH

相關內容