gpt4 book ai didi

Excel公式: For each instance of value in column,获取同一行另一列的值

转载 作者:行者123 更新时间:2023-12-04 20:46:56 26 4
gpt4 key购买 nike

我希望在 Excel 中解决以下问题:

ID     Key     Value
1 10 20
2 5 30
3 10 20
4 10 20

如果 key == 10 且 Value == 20,则获取 ID。

所以,我需要这个来产生以下列表:“1,3,4”

本质上,我正在查看一个值是否在给定范围内,而另一个值在另一个范围内,给我另一个范围内的相应值(同一行)。

我不能假设 ID 列总是最左边的列。

最佳答案

您可以为此目的使用附加的用户定义函数。从您的工作表中调用它,如下所示:

=concatPlusIfs(A1:A4,",",1,10,2,20)

在哪里

  • A1:A4是ID列表
  • ","是分隔符
  • 1 是您的 id 列和您的键列之间的偏移量(-1 表示左侧 1 列)
  • 10 是您的 Key
  • 的标准
  • 2 是您的 id 列和您的 Value 列之间的偏移量
  • 20 是衡量您值(value)的标准
    Public Function concatPlusIfs(rng As Range, sep As String, lgCritOffset1 As Long, varCrit1 As Variant, lgCritOffset2 As Long, varCrit2 As Variant, Optional noDup As Boolean = False, Optional skipEmpty As Boolean = False) As String

    Dim cl As Range, strTemp As String

    If noDup Then 'remove duplicates, use collection to avoid them

    Dim newCol As New Collection

    On Error Resume Next

    For Each cl In rng.Cells
    If skipEmpty = False Or Len(Trim(cl.Text)) > 0 Then
    If cl.Offset(, lgCritOffset1) = varCrit1 And cl.Offset(, lgCritOffset2) = varCrit2 Then newCol.Add cl.Text, cl.Text
    End If
    Next

    For i = 0 To newCol.Count
    strTemp = strTemp & newCol(i) & sep
    Next

    Else

    For Each cl In rng.Cells
    If skipEmpty = False Or Len(Trim(cl.Text)) > 0 Then
    If cl.Offset(, lgCritOffset1) = varCrit1 And cl.Offset(, lgCritOffset2) = varCrit2 Then strTemp = strTemp & cl.Text & sep
    End If
    Next

    End If

    concatPlusIfs = Left(strTemp, Len(strTemp) - Len(sep))

    End Function
  • 关于Excel公式: For each instance of value in column,获取同一行另一列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12587665/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com