i'm very new with using VBA to solve the excel problems, but i have to work in rather complicated task :
If the cells in route collums contain an exact strings of text(i.e: DMEVNSGN, DMEX/SGN, DMEVNSGN, DMEX/SGN or SGNVNDME,SGNX/DME, HANVNDME,HANX/DME...) it would return the value in the exact format like DME-SGN,DME-HAN or SGN-DME,DME-HAN in vice versa.
[TABLE="width: 500"]
<tbody>[TR]
[TD]Route[/TD]
[TD]Inbound[/TD]
[TD]Outbound[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]SGNVNHKGVNSGN[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]XXX-XXX[/TD]
[TD]XXX-XXX[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]SGNVNDMEVNSGN[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-SGN[/TD]
[TD]SGN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]SGNVNHANVNDME[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-HAN[/TD]
[TD]HAN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]DMEVNSGNVNPQCVNSGNVNDME[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-SGN[/TD]
[TD]SGN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]LEDX/DMEVNSGNVNREPVNSGNVNNHAVNHANVNDMEFVLED[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-SGN[/TD]
[TD]HAN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]LEDX/DMEVNHANVNNHAVNHANVNDMEFVLED[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-HAN[/TD]
[TD]HAN-DME[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
</tbody>[/TABLE]
i do have a formula to do it automatically, but it rather long and would take long time to process if the data need to processed is big.
here is the code:
ver.1
(the longer version)
inbound
outbound
ver.2(the shorter version, but having problems in output display)
inbound:
outbound:
here is the question: is there anyway to reduce the length of the formula, or someway to make VBA work for the required task like this?
if you need sampling data, please leave a message.
many thanks
If the cells in route collums contain an exact strings of text(i.e: DMEVNSGN, DMEX/SGN, DMEVNSGN, DMEX/SGN or SGNVNDME,SGNX/DME, HANVNDME,HANX/DME...) it would return the value in the exact format like DME-SGN,DME-HAN or SGN-DME,DME-HAN in vice versa.
[TABLE="width: 500"]
<tbody>[TR]
[TD]Route[/TD]
[TD]Inbound[/TD]
[TD]Outbound[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]SGNVNHKGVNSGN[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]XXX-XXX[/TD]
[TD]XXX-XXX[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]SGNVNDMEVNSGN[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-SGN[/TD]
[TD]SGN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]SGNVNHANVNDME[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-HAN[/TD]
[TD]HAN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]DMEVNSGNVNPQCVNSGNVNDME[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-SGN[/TD]
[TD]SGN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]LEDX/DMEVNSGNVNREPVNSGNVNNHAVNHANVNDMEFVLED[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-SGN[/TD]
[TD]HAN-DME[/TD]
[/TR]
[TR]
[TD][TABLE="width: 244"]
<tbody>[TR]
[TD="width: 244"]LEDX/DMEVNHANVNNHAVNHANVNDMEFVLED[/TD]
[/TR]
</tbody>[/TABLE]
[/TD]
[TD]DME-HAN[/TD]
[TD]HAN-DME[/TD]
[/TR]
[TR]
[TD][/TD]
[TD][/TD]
[TD][/TD]
[/TR]
</tbody>[/TABLE]
i do have a formula to do it automatically, but it rather long and would take long time to process if the data need to processed is big.
here is the code:
ver.1
(the longer version)
inbound
Code:
=IF(AND(D2="PAX",X2="PS"),IF(ISNUMBER(SEARCH("LHRVNHAN",C2)),"LHR-HAN",
IF(ISNUMBER(SEARCH("LGWX/HAN",C2)),"LHR-HAN",
IF(ISNUMBER(SEARCH("LHRVNSGN",C2)),"LHR-HAN",
IF(ISNUMBER(SEARCH("LHRX/SGN",C2)),"LHR-HAN",
IF(ISNUMBER(SEARCH("LGWVNHAN",C2)),"LGW-HAN",
IF(ISNUMBER(SEARCH("LGWX/HAN",C2)),"LGW-HAN",
IF(ISNUMBER(SEARCH("LGWVNSGN",C2)),"LGW-SGN",
IF(ISNUMBER(SEARCH("LGWX/SGN",C2)),"LGW-SGN",
IF(ISNUMBER(SEARCH("DMEVNHAN",C2)),"DME-HAN",
IF(ISNUMBER(SEARCH("DMEX/HAN",C2)),"DME-HAN",
IF(ISNUMBER(SEARCH("DMEVNSGN",C2)),"DME-SGN",
IF(ISNUMBER(SEARCH("DMEX/SGN",C2)),"DME-SGN",
IF(ISNUMBER(SEARCH("DMEVNCXR",C2)),"DME-CXR",
IF(ISNUMBER(SEARCH("DMEX/CXR",C2)),"DME-CXR",
IF(ISNUMBER(SEARCH("CDGVNHAN",C2)),"CDG-HAN",
IF(ISNUMBER(SEARCH("CDGX/HAN",C2)),"CDG-HAN",
IF(ISNUMBER(SEARCH("CDGVNSGN",C2)),"CDG-SGN",
IF(ISNUMBER(SEARCH("CDGX/SGN",C2)),"CDG-SGN",
IF(ISNUMBER(SEARCH("FRAVNHAN",C2)),"FRA-HAN",
IF(ISNUMBER(SEARCH("FRAX/HAN",C2)),"FRA-HAN",
IF(ISNUMBER(SEARCH("FRAVNSGN",C2)),"FRA-SGN",
IF(ISNUMBER(SEARCH("FRAX/SGN",C2)),"FRA-SGN","XXX")))))))))))))))))))))),"XXX")
Code:
=IF(AND(D2="PAX",X2="PS"),IF(ISNUMBER(SEARCH(“HANVNLHR”,C2)),“HAN-LHR”,
IF(ISNUMBER(SEARCH(“HAN/XLHR”,C2)),”HAN-LHR”,
IF(ISNUMBER(SEARCH(“SGNVNLHR”,C2)),”HAN-LHR”,
IF(ISNUMBER(SEARCH(“SGN/XLHR”,C2)),”HAN-LHR”,
IF(ISNUMBER(SEARCH("HANVNLGW",C2)),"HAN-LGW",
IF(ISNUMBER(SEARCH("HANX/LGW",C2)),"HAN-LGW",
IF(ISNUMBER(SEARCH("SGNVNLGW",C2)),"SGN-LGW",
IF(ISNUMBER(SEARCH("SGNX/LGW",C2)),"SGN-LGW",
IF(ISNUMBER(SEARCH("HANVNDME",C2)),"HAN-DME",
IF(ISNUMBER(SEARCH("HANX/DME",C2)),"HAN-DME",
IF(ISNUMBER(SEARCH("SGNVNDME",C2)),"SGN-DME",
IF(ISNUMBER(SEARCH("SGNX/DME",C2)),"SGN-DME",
IF(ISNUMBER(SEARCH("CXRVNDME",C2)),"CXR-DME",
IF(ISNUMBER(SEARCH("CXRX/DME",C2)),"CXR-DME",
IF(ISNUMBER(SEARCH("HANVNCDG",C2)),"HAN-CDG",
IF(ISNUMBER(SEARCH("HANX/CDG",C2)),"HAN-CDG",
IF(ISNUMBER(SEARCH("SGNVNCDG",C2)),"SGN-CDG",
IF(ISNUMBER(SEARCH("SGNX/CDG",C2)),"SGN-CDG",
IF(ISNUMBER(SEARCH("HANVNFRA",C2)),"HAN-FRA",
IF(ISNUMBER(SEARCH("HANX/FRA",C2)),"HAN-FRA",
IF(ISNUMBER(SEARCH("SGNVNFRA",C2)),"SGN-FRA",
IF(ISNUMBER(SEARCH("SGNX/FRA",C2)),"SGN-FRA","XXX")))))))))))))))))))))),"XXX")
ver.2(the shorter version, but having problems in output display)
inbound:
Code:
=IF(AND(D2="PAX",Z2="PS"),
IF(OR(ISNUMBER(SEARCH("DMEVNHAN",C2)),ISNUMBER(SEARCH("DMEX/HAN",C2))),"DME-HAN",
IF(OR(ISNUMBER(SEARCH("DMEVNSGN",C2)),ISNUMBER(SEARCH("DMEX/SGN",C2))),"DME-SGN",
IF(OR(ISNUMBER(SEARCH("DMEVNCXR",C2)),ISNUMBER(SEARCH("DMEX/CXR",C2))),"DME-CXR",
IF(OR(ISNUMBER(SEARCH("LHRVNHAN",C2)),ISNUMBER(SEARCH("LHRX/HAN",C2))),"LHR-HAN",
IF(OR(ISNUMBER(SEARCH("LHRVNSGN",C2)),ISNUMBER(SEARCH("LHRX/SGN",C2))),"LHR-SGN",
IF(OR(ISNUMBER(SEARCH("LGWVNHAN",C2)),ISNUMBER(SEARCH("LGWX/HAN",C2))),"LGW-HAN",
IF(OR(ISNUMBER(SEARCH("LGWVNSGN",C2)),ISNUMBER(SEARCH("LGWX/SGN",C2))),"LGW-SGN",
IF(OR(ISNUMBER(SEARCH("CDGVNHAN",C2)),ISNUMBER(SEARCH("CDGX/HAN",C2))),"CDG-HAN",
IF(OR(ISNUMBER(SEARCH("CDGVNSGN",C2)),ISNUMBER(SEARCH("CDGX/SGN",C2))),"CDG-SGN",
IF(OR(ISNUMBER(SEARCH("FRAVNHAN",C2)),ISNUMBER(SEARCH("FRAX/HAN",C2))),"FRA-HAN",
IF(OR(ISNUMBER(SEARCH("FRAVNSGN",C2)),ISNUMBER(SEARCH("FRAX/SGN",C2))),"FRA-SGN",“XXX”))))))))))),"XXX")
Code:
=IF(AND(D2="PAX",Z2="PS"),
IF(OR(ISNUMBER(SEARCH("HANVNDME",C2)),ISNUMBER(SEARCH("HANX/DME",C2))),"HAN-DME",
IF(OR(ISNUMBER(SEARCH("SGNVNDME",C2)),ISNUMBER(SEARCH("SGNX/DME",C2))),"SGN-DME",
IF(OR(ISNUMBER(SEARCH("CXRVNDME",C2)),ISNUMBER(SEARCH("CXRX/DME",C2))),"CXR-DME",
IF(OR(ISNUMBER(SEARCH("HANVNLHR",C2)),ISNUMBER(SEARCH("HANX/LHR",C2))),"HAN-LHR",
IF(OR(ISNUMBER(SEARCH("SGNVNLHR",C2)),ISNUMBER(SEARCH("SGNX/LHR",C2))),"SGN-LHR",
IF(OR(ISNUMBER(SEARCH("HANVNLGW",C2)),ISNUMBER(SEARCH("HANX/LGW",C2))),"HAN-LGW",
IF(OR(ISNUMBER(SEARCH("SGNVNLGW",C2)),ISNUMBER(SEARCH("SGNX/LGW",C2))),"SGN-LGW",
IF(OR(ISNUMBER(SEARCH("HANVNCDG",C2)),ISNUMBER(SEARCH("HANX/CDG",C2))),"HAN-CDG",
IF(OR(ISNUMBER(SEARCH("SGNVNCDG",C2)),ISNUMBER(SEARCH("SGNX/CDG",C2))),"SGN-CDG",
IF(OR(ISNUMBER(SEARCH("HANVNFRA",C2)),ISNUMBER(SEARCH("HANX/FRA",C2))),"HAN-FRA",
IF(OR(ISNUMBER(SEARCH("SGNVNFRA",C2)),ISNUMBER(SEARCH("SGNX/FRA",C2))),"SGN-FRA",“XXX”))))))))))),"XXX")
if you need sampling data, please leave a message.
many thanks