如果单元格匹配单元格中的单元格返回相邻单元格文本

时间:2016-09-25 21:34:58

标签: excel vlookup

所以我有一个excel电子表格,应该跟踪成绩,但我似乎无法从字母等级转换为数字等级。我试图将I21:I48中的单元格与G10:G15和I10:I15中的参考字母等级进行匹配,然后用相应的数字等级替换G21:G48。

以下是转换单元格排列成两行,以便进行良好的格式化,其中一个原因很难:

      <G>   <H>   <I>   <J>
<10>   A    4.0    C    2.0
<11>   A-   3.7    C-   1.7
<12>   B+   3.3    D    1.0
<13>   B    3.0    F    0.0
<14>   B-   2.7    NA   0.0
<15>   C+   2.3    I    0.0

以下是一些示例数据单元格,单元格上的[FILL]填写:

        <G>       <H>           <I>   
<20>   GRADE     TERM      Letter Grade
<21>   [FILL]   Term 3           A
<22>   [FILL]   Term 3           A-
<23>   [FILL]   Term 3           A
<24>   [FILL]   Term 3           A
<25>   [FILL]   Term 3           A
<26>   [FILL]   Term 3           C
<27>   [FILL]   Term 2           B
<28>   [FILL]   Term 2           A
...
<48>   [FILL]   Term 1           A

以下是相同图表的填写方式,使用字母成绩列与上面的转换表进行匹配:

        <G>       <H>           <I>   
<20>   GRADE     TERM      Letter Grade
<21>    4.0     Term 3           A
<22>    3.7     Term 3           A-
<23>    4.0     Term 3           A
<24>    4.0     Term 3           A
<25>    4.0     Term 3           A
<26>    2.0     Term 3           C
<27>    3.0     Term 2           B
<28>    4.0     Term 2           A
...
<48>    4.0     Term 1           A

3 个答案:

答案 0 :(得分:0)

=IFERROR(IFERROR(VLOOKUP(I21,$G$10:$H$15,2,FALSE),VLOOKUP(I21,$I$10:$J$15,2,FALSE)),"???")

在G21中粘贴并填充它应该可以解决问题。

如果您的表是完全顺序的,而不是将它分成四列而不是两列,这将更容易并且需要更少的嵌套。我有第二个IFERROR来显示???只是在第I列中的项目实际上不在表格中,需要手动调查。

答案 1 :(得分:0)

你正在组织一张组织糟糕的桌子。在 G16 中输入:

=I10

将此单元格复制到一列然后向下:

enter image description here

现在你可以在G10:H21上做一个简单的 VLOOKUP()

答案 2 :(得分:0)

这可行,但它不是工作表解决方案。基本上循环遍历预定义列中的每个字母等级,并将答案吐出到您告诉它的位置。

import requests
from bs4 import BeautifulSoup

r = requests.get(
    "https://www.traveloka.com/hotel/singapore/mandarin-orchard-singapore-10602")

data = r.content
soup = BeautifulSoup(data, "html.parser")
reviews = soup.find_all("div", {"class": "reviewText"})

for i in range(len(reviews)):
    print(reviews[i].get_text())

它不是最漂亮的代码,但它可以满足您的需求。