Python 有没有办法将这些公式组合到一个单元格中?
我正在检查电子表格中某个列的某个模式。我有一个公式来检查模式,它将被标记或很好,然后另一个公式来检查是否有标记。 我使用2个公式,因为电子表格将使用Python进行提取和编辑,这似乎是目前最简单的方法。我也在研究如何使用Python来更有效地实现这一点 我试图在A、B或C列中匹配五个0的模式。它检查哪一列并不重要Python 有没有办法将这些公式组合到一个单元格中?,python,excel-formula,Python,Excel Formula,我正在检查电子表格中某个列的某个模式。我有一个公式来检查模式,它将被标记或很好,然后另一个公式来检查是否有标记。 我使用2个公式,因为电子表格将使用Python进行提取和编辑,这似乎是目前最简单的方法。我也在研究如何使用Python来更有效地实现这一点 我试图在A、B或C列中匹配五个0的模式。它检查哪一列并不重要 A B C D E 379 400 51 fine Flagged 404 460 18 fine 379 365 65 fine 0
A B C D E
379 400 51 fine Flagged
404 460 18 fine
379 365 65 fine
0 0 0 fine
0 0 0 Flag
0 0 0 fine
0 0 0 fine
0 0 0 fine
399 480 94 fine
390 420 55 fine
399 435 121 fine
在D列中,我使用以下公式来查找模式:
=IF((AND(A5=0, A6=0, A7=0, A8=0, A9=0 )), "Flag", "Fine")
然后使用此公式检查D中是否有标记:
=IFERROR(IF(MATCH("Flag",W:W,0), "Flagged"), "Fine")
这样Python就可以只检查1个单元格(我的Python技能还在发展中)
如果有一个公式可以粘贴到一个单元格中,为电子表格提供标志或良好的结果,那就太完美了。
谢谢
编辑/回答4.9.19
最后,我找不到可以在单个细胞中使用的公式。解决方法是使用python迭代单元格,根据需要粘贴公式:
for i in range(3,max_row+1):
cell_obj=sheet.cell(row=i,column=24)
# print cell value
print(cell_obj.value)
#5-in a row fault
formula = "=IF((AND(O%d=0, O%d=0, O%d=0, O%d=0, O%d=0)), A1, A2)" % (i-2, i-1, i, i+1, i+2)
#3-in a row fault
formula = "=IF((AND(O%d=0, O%d=0, O%d=0)), A1, A2)" % (i-1, i, i+1)
cell_obj.value = formula
print(cell_obj.value)
sheet["Y2"] = "=IFERROR(IF(MATCH(A1,X:X,0), A3), A4)"
用熊猫阅读你的电子表格。如果要分析很多行,最好使用
read_csv
而不是read_excel
,因为csv文件比xlxs小
df = pd.read_csv('your_filename.csv', header = 0)
然后使用np.where()
方法将所需的标记放置在D列中
df['D'] = np.where((df['A'] == 0) & (df['B'] == 0) & (df['C'] == 0), ['Flag'], ['Fine'])
要获取列F
,您必须引用列D
,对吗?为此,请使用loc
:
df.loc[df['D'] == 'Flag', 'F'] = 'Flagged'
我不确定在
F
上标记'Flagged'
哪个值,如果列D
值等于'Fine'
?在上面的示例中,您将列F
标记为'Flagged'
,列D
值为'Fine'
。在这种情况下,只需将上述条件中的值更改为所需值。只需确认,如果A、B和C列中的任何一列连续有五个0
,是否要在D列中返回标志
?你把帖子中提供的IF公式放在哪里了?您在单元格D1中输入的公式是什么?基本上,您是否要在要返回标记的三列范围内找到五个连续的0
?您需要一个数组公式才能在一个单元格中获得结果。您是用Excel还是Python输入公式?可以在Python中输入数组公式吗?Terry W-谢谢Terry。5在一列的一行中似乎做了这项工作。5x3在技术上是理想的,但实际上在这个阶段似乎并不重要-谢谢teylyn。现在我正在手动测试,然后一直到python。我看过一个数组公式,但不确定在这种情况下如何使用它。如果您有任何想法,我们将不胜感激,thanks@GlennDavies“Python只需检查1个单元格”*:您的问题和尝试。