2013-05-28 88 views
0

我在Excel中的一个大表有列标题ABCDANSWERIF语句,基于文本相匹配

ABCD代表选择题插入文本我在桌上。

我还有一个ANSWER列,其答案由上述相应的多项选择标题字母表示。

例如,每个列标题(ABCD)下,我有可能的答案,FoodCarHouseSchool

在上例中,House(C)是正确的答案。我想创建的Answer细胞,它在它CABCD列标题匹配的IF声明,如果有匹配,则实际的答案之前插入=。在这种情况下,结果将是=house。答案的其余部分应在该单词前插入~,即~food,~car,~school

最终结果应该如下所示:~food,~car,=house,~school

+1

这个结果应该写在哪里? – Bathsheba

+0

你想在代码中做到这一点? – Geoff

+0

我想用新的前缀替换答案,〜或=或者我可以将最终校正结果放在空单元格中。 – user2428927

回答

2

安全地实现这一目标的唯一方法是在另一个工作表或不同列中复制表格。

这是为什么? 因为你想改变你的陈述的来源。 Excel会认为这是一个循环引用,无法解决它。

有一个VBA代码解决方案,你可以只运行一次。这也会更改源数据,并且会丢失原件。可能是一个没有回头的行动。

所以:

我建议你创建一个新的工作表,把标题A,B,C和D. 所以,你将有两个表:包含答案和每个选项的OriginalSheet。 和ResultSheet,包含您想要的格式化选项。

ResultSheet,使用这个公式:

= IF(OriginalSheet!$E2 = A$1; "="; "~") & OriginalSheet!A2 

正在考虑的第一行containig文本:A,B,C和D.所以,你必须在ResultSheetA2单元格中插入该公式。 您可以单击单元格右下方的小黑方块,然后将此公式拖到所有其他单元格中。 ($ simbols保证拖动将是安全的)

+0

太棒了!像魅力一样工作。谢谢 – user2428927