Excel 如果另一个单元格的值为 1,则写入该单元格
Excel Write cell if another cell has a 1
我进行了一些挖掘,但没有找到解决问题的方法。老实说,我不知道要搜索“关键字”以找到解决此问题的方法。
我在一张纸 2 中有一个姓名列表。
我想扫描工作表 1 中顶部那个人的名字的列。每次该列中出现数字“1”时,我都想从该行中写下文本(课程名称)。数字 1 最多出现 7 次。
我已经尝试过垂直查找和 if 语句,但没有得到我需要的。
一张图抵千字Sheet1 Sheet 2
假设您的数据位于 Sheet1 下方的单元格中(无法确定合并的单元格与行标签是否可见):
我相信这就是您想要的 Sheet2:
Sheet2 的单元格 C2:C6
中的公式是
=TRANSPOSE(filter(Sheet1!$B:$B,INDEX(Sheet1!$I:$K,,MATCH(B2,Sheet1!$I:$K,0))))
下面的公式
=filter(B8:B16,I8:I16)
如果 在 Sheet1 上输入,将导致包含 BIOLOGIE 11 和 BUSINESS TECHNOLOGY 11[= 的垂直范围47=],即来自 B8:B16
的条目,其中行在 I8:I16
范围内有 1。
由于有几个学生,I8:I16
范围必须动态确定;这就是使用 INDEX() and MATCH() 函数的原因。
INDEX() 函数用于 return 用作第一个参数的范围的一个组成部分,即 Sheet1!$I:$K
范围的一部分,因为这是 3 的 1s/空白(可见)学生居住(您必须根据实际数据扩大它)。
INDEX() 函数可以接受 2 个额外的参数,即我们想要 returned 的单元格(在 Sheet1!$I:$K
内)的行号和列号。虽然可以提供这两个参数,但只有一个是必需的 - 在这种情况下,将跳过行参数,并且只提供列的值:这意味着 Sheet1!$I:$K
的组件我们想要 return 是一整列(即该列的所有行)。
MATCH() 函数用于确定列,即它标识当前学生姓名在 Sheet1!$I:$K
范围内的位置(第 3 个参数 0,MATCH( ) 函数意味着我们想要一个完全匹配;同样,您必须为您的实际数据扩大这个范围)。
以这种方式,INDEX() 和 MATCH() 函数结合起来识别适合当前学生的 1s/空白列;这构成了 FILTER() 函数的第二个参数,因此它可以 return 适合当前学生的科目。
最后,使用 TRANSPOSE() 函数是因为您希望水平填充结果,而默认情况下,FILTER() 函数 return 是一个垂直范围。
我进行了一些挖掘,但没有找到解决问题的方法。老实说,我不知道要搜索“关键字”以找到解决此问题的方法。
我在一张纸 2 中有一个姓名列表。
我想扫描工作表 1 中顶部那个人的名字的列。每次该列中出现数字“1”时,我都想从该行中写下文本(课程名称)。数字 1 最多出现 7 次。
我已经尝试过垂直查找和 if 语句,但没有得到我需要的。
一张图抵千字Sheet1 Sheet 2
假设您的数据位于 Sheet1 下方的单元格中(无法确定合并的单元格与行标签是否可见):
我相信这就是您想要的 Sheet2:
Sheet2 的单元格 C2:C6
中的公式是
=TRANSPOSE(filter(Sheet1!$B:$B,INDEX(Sheet1!$I:$K,,MATCH(B2,Sheet1!$I:$K,0))))
下面的公式
=filter(B8:B16,I8:I16)
如果 在 Sheet1 上输入,将导致包含 BIOLOGIE 11 和 BUSINESS TECHNOLOGY 11[= 的垂直范围47=],即来自 B8:B16
的条目,其中行在 I8:I16
范围内有 1。
由于有几个学生,I8:I16
范围必须动态确定;这就是使用 INDEX() and MATCH() 函数的原因。
INDEX() 函数用于 return 用作第一个参数的范围的一个组成部分,即 Sheet1!$I:$K
范围的一部分,因为这是 3 的 1s/空白(可见)学生居住(您必须根据实际数据扩大它)。
INDEX() 函数可以接受 2 个额外的参数,即我们想要 returned 的单元格(在 Sheet1!$I:$K
内)的行号和列号。虽然可以提供这两个参数,但只有一个是必需的 - 在这种情况下,将跳过行参数,并且只提供列的值:这意味着 Sheet1!$I:$K
的组件我们想要 return 是一整列(即该列的所有行)。
MATCH() 函数用于确定列,即它标识当前学生姓名在 Sheet1!$I:$K
范围内的位置(第 3 个参数 0,MATCH( ) 函数意味着我们想要一个完全匹配;同样,您必须为您的实际数据扩大这个范围)。
以这种方式,INDEX() 和 MATCH() 函数结合起来识别适合当前学生的 1s/空白列;这构成了 FILTER() 函数的第二个参数,因此它可以 return 适合当前学生的科目。
最后,使用 TRANSPOSE() 函数是因为您希望水平填充结果,而默认情况下,FILTER() 函数 return 是一个垂直范围。