Board logo

標題: [發問] 如何尋找最後一筆資料,及最後一筆相符資料? [打印本頁]

作者: easygo    時間: 2014-4-14 17:51     標題: 如何尋找最後一筆資料,及最後一筆相符資料?

[attach]18015[/attach]

D3及E3為D2及E2應該顯示的資料

我使用=LOOKUP(REPT("讚",255),B:B)可以查詢到最後一筆資料
但對應到日期...用MATCH及index函數卻又抓不對

有人可解惑一下
謝謝
作者: easygo    時間: 2014-4-15 15:33

D2儲存格我知道該怎用了
  1. =LOOKUP(REPT("讚",255),B:B,A:A)
複製代碼
這樣就抓到最後一筆資料時間了

但是E2還是想不出來,有那位高手可以解答
謝謝
作者: p212    時間: 2014-4-15 15:59

本帖最後由 p212 於 2014-4-15 16:05 編輯

回復 2# easygo
1、請圈選狀態(A1:B20),按Ctrl+Shift+F3,以「頂端列」為範圍名稱。
2、輸入下列陣列公式 (按Ctrl+Shift+Enter輸入公式)
儲存格D2  =INDEX(日期,MAX(IF(LEN(狀態)>0,ROW(狀態),FALSE))-1)
儲存格E2  =INDEX(狀態,MAX(IF(LEN(狀態)>2,ROW(狀態),FALSE))-1)
請參考!
作者: easygo    時間: 2014-4-16 12:07

本帖最後由 easygo 於 2014-4-16 12:09 編輯
回復  easygo
1、請圈選狀態(A1:B20),按Ctrl+Shift+F3,以「頂端列」為範圍名稱。
2、輸入下列陣列公式 ...
p212 發表於 2014-4-15 15:59


可以了,謝謝

所以要使用陣列公式才能解決??
陣列公式對我還說還有點霧煞煞... :L
只慢慢摸索.
作者: ML089    時間: 2014-4-16 14:05

D2 =LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),A2:A20)
右拉
作者: p212    時間: 2014-4-16 14:27

本帖最後由 p212 於 2014-4-16 14:31 編輯

回復 5# ML089
版大真厲害!
可以解析一下公式?(還不太瞭解LOOKUP函數,第二個引數0/("數量"=LEFT($B2:$B20,2)),是在造 {#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!...} 的結果?)
謝謝!
作者: ML089    時間: 2014-4-16 16:22

回復 6# p212

>> 可以解析一下公式?(還不太瞭解LOOKUP函數,第二個引數0/("數量"=LEFT($B2:$B20,2)),是在造 {#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!...} 的結果?)
   
一、0/("數量"=LEFT($B2:$B20,2)) 就是 當 $B2:$B20 前2字為 "數量" 時   0/TRUE=0,否時 0/FALSE=#DIV/0!,造 {#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!...} 這樣的陣列。

二、利用LOOKUP特性
1.  第二個引數有錯誤資料#DIV/0!時會忽略。 用 0/FALSE=#DIV/0! 將不要的資料去除。
2.  第二個引數只剩下 0 為有效資料。用 0/TRUE=0 將符合的資料轉為0(除0的精神)。
3. 第一個引數 1 大於 第二個引數所有資料 0 時,會回傳最後一組 0 所對應 第三個引數資料。

三、利用 絕對($)與相對儲存格關係,做成單一公式
D2 =LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),A2:A20)
右拉複製公式為E2公式如下
E2=LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),B2:B20)

主要判斷式是B欄,$B2:$B20將欄位設定成絕對($)位置,讓右拉複製公式時不會改變
D2回傳值 A2:A20,將欄位設定成相對位置,讓右拉複製公式時改變為 B2:B20

四、LOOKUP除用來找區間值外,下式最常使用的一種方式
=LOOKUP(1,0/(比較式),回傳值)
作者: p212    時間: 2014-4-16 16:38

本帖最後由 p212 於 2014-4-16 16:39 編輯

回復 7# ML089
 超感謝ML089版大解開吾人關卡
【第一個引數 1 大於 第二個引數所有資料 0 時,會回傳最後一組 0 所對應 第三個引數資料。
LOOKUP除用來找區間值外,下式最常使用的一種方式 =LOOKUP(1,0/(比較式),回傳值)】
謝謝老師熱心指導!開心收藏!
作者: easygo    時間: 2014-4-16 22:11

D2 =LOOKUP(1,0/("數量"=LEFT($B2B20,2)),A2:A20)
右拉
ML089 發表於 2014-4-16 14:05


謝謝,答覆

但是最後一次的日期D2顯示還有有誤,應該是抓最後一筆日期,而不是最後有數量的日期

E3儲存格公式用
  1. =LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),B2:B20)
複製代碼
顯示就正確了

但我用EXECL可以用這方式
套用到google試算表....就無法用這方式,使用會顯示#DIV/0!
作者: ML089    時間: 2014-4-16 23:35

回復 9# easygo

7樓已經說明
D2 =LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),A2:A20)
右拉複製公式為E2公式如下
E2=LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),B2:B20)


GOOGLE 中 LOOKUP使用方式與EXCEL不同,所以不能使用
作者: easygo    時間: 2014-4-17 12:36

回復  easygo

7樓已經說明
D2 =LOOKUP(1,0/("數量"=LEFT($B2B20,2)),A2:A20)
右拉複製公式為E2公式 ...
ML089 發表於 2014-4-16 23:35


對不起.我使用EXECL 2013
D2儲存格顯示還是不對,像我貼的圖,D2應該要顯示2014/4/16
但是用版主你給的公式,她顯示是2014/4/13

這問題跟EXECL版本有關係嗎??
作者: easygo    時間: 2014-4-17 12:56

我看好像沒有包含"未數"的判斷,所以就多加一個,變成
  1. D2=LOOKUP(1,0/OR(("數量"=LEFT($B2:$B20,2)),("未數"=LEFT($B2:$B20,2))),A2:A20)
複製代碼
不過就會出現 #DIV/0!
~~....怎會呢??頭大...   :dizzy:
作者: ML089    時間: 2014-4-17 13:40

回復 11# easygo
>>D2儲存格顯示還是不對,像我貼的圖,D2應該要顯示2014/4/16

D2 =LOOKUP("��",$B:$B,A:A)
或
D2 =LOOKUP("��",$B2:$B20,A2:A20)

右拉
作者: easygo    時間: 2014-4-17 13:56

本帖最後由 easygo 於 2014-4-17 13:59 編輯
回復  easygo
>>D2儲存格顯示還是不對,像我貼的圖,D2應該要顯示2014/4/16

D2 =LOOKUP("��",$BB,A:A) ...
ML089 發表於 2014-4-17 13:40


謝謝版主
  1. D2=LOOKUP("��",$B2:$B20,A2:A20)
  2. E2=LOOKUP(1,0/("數量"=LEFT($B2:$B20,2)),B2:B20)
複製代碼
這樣顯示正確了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)