2016-12-05 158 views
0

電子表格問題。我希望能夠查看單元格中的數字並計算再次點擊該數字之前出現在其上方的行數。有任何想法嗎?自上次出現以來計數以上的行數

感謝

+0

若干* 12345 *出現在*行= 2 *,*列= 5 *。這告訴你什麼?你能澄清嗎? – blackpen

+0

我不認爲你可以用一個公式來做到這一點,你可能需要VBA /宏來做到這一點。你可以用MATCH找到一個數字的第一個實例,但這對你來說是行不通的,除非你有限制多遠看看,並且知道它只會在最後10行中出現一次。 – atclaus

+0

我不確定你的意思。想象一下,在每週的不同日子裏,我有不同的菜單項。這是A列。在列B中,我想列出自該菜單項上次出現以來的天數。所以,讓我們說漢堡是A1和A5。在B5中,我想說明自上次漢堡出現以來有多少行(或幾天)。這將是4行(天),但我想通過公式做到這一點。 – viewtifuljoe

回答

1

請問這個公式的工作,只要你想:

=ROW()-MAX(FILTER(ROW(INDIRECT("A1:A"&ROW()-1)),INDIRECT("A1:A"&ROW()-1)=INDIRECT("A"&ROW())))

你可以看到它在這個例子中板的工作:

https://docs.google.com/spreadsheets/d/1CHem3Y6ptvAjNX8ug9FcPBg3g28lrTPq_-hD5UnLgpw/edit?usp=sharing

+0

完美的作品!你能解釋這個公式的工作原理嗎? – viewtifuljoe

+0

主要部分是一個FILTER公式,該公式返回與列B的公式行的值相匹配的列A中的單元格的行號(從第1行到公式單元格的上一行).MAX然後返回最高匹配行號(即最近的實例)。然後從公式行號中減去該數字以給出兩者之間的行數。我已經調整工作表以使用IFERROR,並且在A列中引入新值時返回'新項目'而不是#N/A –

+0

@ChrisHick,我無法在Excel(2016)中找到FILTER公式。它在谷歌電子表格,但在那裏。 Excel只顯示FILTERXML。 – nightcrawler23

0

一個簡單的嘗試

=ROW(A12) - MAX(--($A$1:A11=A12)*ROW($A$1:A11)) 

您需要輸入此公式作爲數組即按Ctrl + + 輸入

A12是當前項目

A1:A11是過去的日子裏項目

--($A$1:A11=A12)給你與{0; 0; 1; ...; 0}的數組形式匹配的當前項目的所有以前的項目,即如果項目匹配它將結果下1

ROW($A$1:A11) gives you {1;2;....}直到最後一行

--($A$1:A11=A12)*ROW($A$1:A11)變爲除該項目相匹配,其中所述第二陣列爲零在所有數字。

Max給出了最後的匹配數量

的索引/行 - 馬克斯給你想要的結果。

Google sheet