EXCEL宏
Function FindColumnByKeyword(keyword As String) As IntegerDim cell As Range
Dim columnNumber As Integer
columnNumber = 1
For Each cell In Range("A:Z")
If cell.Value Like "*" & keyword & "*" Then
FindColumnByKeyword = columnNumber
Exit Function
End If
columnNumber = columnNumber + 1
Next cell
FindColumnByKeyword = 0' 返回0表示未找到
End Function
任意一个单元格,不知道他的列号,只知道单元格里面的内容,除了宏,有函数能实现吗。 我没太理解你的意思,随便写了点,你自己看看对不对吧!
def search(data, target):
"""
在表格中查找指定的内容,并返回该单元格的行数列数
"""
for i, row in enumerate(data):
for j, value in enumerate(row):
if value == target:
return (i+1, j+1)
return None 所能想到的就是用python的 xlwings 或 openpyxl 或 pandas 或xlutils等库来实现。 match函数 满足要求不? 在Excel中,没有内置的函数可以直接根据单元格内容查找列号。但是,您可以使用一些内置函数的组合来实现此功能。
下面是一个使用公式的示例,可以根据单元格内容查找列号:
=MIN(IF(A:Z=A1,COLUMN(A:Z),9999))
请注意,这是一个数组公式,需要使用Ctrl+Shift+Enter键盘组合来输入和计算。
这个公式将在A到Z列中查找与A1单元格内容相匹配的值,并返回第一个匹配单元格所在的列号。如果没有找到匹配项,它将返回9999或任何您认为合适的值。
请将A:Z替换为您实际的数据范围,并将A1替换为您要查找的单元格。
注意:此方法仅适用于小范围的数据,因为它需要遍历整个数据范围。如果您的数据范围很大,这种方法可能会导致性能问题。
如果您需要更高效的解决方案,可能需要编写自定义宏或使用其他编程语言(如VBA、Python等)来处理此任务。 Vba 有个 Find函数,效率比遍历单元格更高 你这个是模糊匹配,不好弄 excel
都有宏了:rggrg match 和 find 组合用就可以 虽然不会弄,但是提供个思路:把整个表读到数组里,查找匹配的内容,然后根据数组的上标、下标确定单元格的行列号,即位置
页:
[1]
2