skip to content
barorin&?

PythonでExcelのIF文をIFS文に変換してみる

/ 1 min read

はじめに

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")'