はじめに
PythonでExcelのIF文をIFS文に変換するスクリプトを作ってみました。
内容
def if2ifs(if_str):
'''
Args:
if_str(string): IF文
Returns:
ifs_str(string): IFS文
'''
# 空白と改行を削除
if_str = if_str.replace(' ', '').replace(' ', '').replace('\n', '')
# 文字列をリスト化
if_lst = list(if_str.split(','))
# 2回目以降のIFを削除
if_lst2 = [i.replace('IF(', '') for i in if_lst[1:]]
# 先頭のIFをIFSに変更
if_first_str = if_lst[0].replace('IF', 'IFS')
if_lst2.insert(0, if_first_str)
# 最後から一つ前にTRUEを追加
if_lst2.insert(-1, 'TRUE')
# 最後の閉じカッコの重複削除
if_lst2[-1] = if_lst2[-1].replace(')' * if_lst2[-1].count(')'), ')')
# リストの文字列化
ifs_str = ','.join(if_lst2)
return ifs_str
使用例
if_str = '=IF(A2>=80,"A",IF(A2>=70,"B",IF(A2>=60,"C",IF(A2>=50,"D",IF(A2>=40,"D",IF(A2>=30,"E","F"))))))'
ifs_str = if2ifs(if_str)
# Output > '=IFS(A2>=80,"A",A2>=70,"B",A2>=60,"C",A2>=50,"D",A2>=40,"D",A2>=30,"E",TRUE,"F")'