• 締切済み

どのような関数を使えばよろしいでしょうか?

先日ご質問させて頂いた件でさらに分からないことが出たので再度教えて頂きたいです。 excel2010を使用しています。 下記画像のように 「C・E列のどこかで同じ数値が2回入力された時、2回目と同じ行のB列にそれと同じ数値が入力されるようにしたい」 というご質問をさせて頂きました。 その時に次のような関数を教えて頂き無事表が完成したのですが、同じ行に2度目の数値が複数入力された場合、B列には片方の数値しか表示されません。 B1=IF(COUNTIF(C$1:E1,C1)=2,C1,IF(COUNTIF(C$1:E1,E1)=2,E1,"")) そこで、C・E列の同じ行に2度目の数値が複数入力された時、複数行ある同日の行(7日のように)のB列に上から表示させていくことは可能でしょうか? お分かりになる方、よろしくお願いいたします。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

失礼しました。 よく見たら数式が間違えていました。 正しくは以下の数式をB2セルに入力してください。 =IF(AND(COUNTIF($C$1:E1,C1)=2,COUNTIF($C$1:E1,E1)=2),E1,IF(COUNTIF(C$1:E2,C2)=2,C2,IF(COUNTIF(C$1:E2,E2)=2,E2,""))) ちなみに、同じ行に2つの該当データが出てきた場合、添付画像のようにA列に日付の下に「〃」を表示したいなら以下の式をA2セルに入力して下方向にオートフィルします。 =IF(AND(COUNTIF($C$1:E1,C1)=2,COUNTIF($C$1:E1,E1)=2),"〃","") ちなみに、添付画像のデータでは、7日まで数式の上から日付を手入力し、7日にC列とE列に重複する2つのデータが入力されたら、その下のセルに自動的にA列に「〃」とB列に重複するE列の数字が表示されます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

質問の意味がやっと分かりました。 その上の行のC列とE列のセルに重複する数が2つあったら、その場合はE列のデータを表示させたいということですね。 その場合は、B2セルに以下の式を入力して下方向にオートフィルしてください。 =IF(AND(COUNTIF($C$1:E1,C1)=2,COUNTIF($C$1:E1,E1)=2),E1,IF(COUNTIF(C$1:E1,C1)=2,C1,IF(COUNTIF(C$1:E1,E1)=2,E1,"")))

yuito45
質問者

補足

返事が遅くなり申し訳ありません。 少し解釈が離れてしまいました。 A   B   C   D   E   F   G 1日     100    2日     200 3日 100          100      300 4日 200                  200 5日 300  300       400 6日     500 7日 400   400      500 〃  500 最後の7日のようにC・E・G列への2度目の入力が同じ行になった場合、B列の同日のところに上から順に表示されるようにしたいのですが…。 何度もすみません。 関数で出来るものでしょうか?

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>例えば E列7行目、8行目にある数値700と200が、C列7行目に200、E列7行目に700が入力された場合でも添付画像のようにB列7行目から下に順に入力されていくようにしたいです。 質問内容が把握できません。 C列7行目に200、E列7行目に700が入力された場合、ご希望の操作はB7セルに200、B8セルに700が表示されることではないのでしょうか? このようなご質問では、ご希望の操作の目的を含めて(目的がわかるとより合理的な代替案が提示できる場合が多い)、最終的にどのような結果が返ってほしいのかを具体的に例示して説明されたほうが、皆さんから的確な回答が得られると思います。

yuito45
質問者

補足

>C列7行目に200、E列7行目に700が入力された場合、ご希望の操作はB7セルに200、B8セルに700が表示されることではないのでしょうか? 仰る通りの表示をしたいです。 (B7セルに700、B8セルに200が表示されても構わいません。) ある項目をダブルチェックしており、A列に日付、C列・E列・G列… に各チェック者が確認した項目No.を入力します。 いつダブルチェックが終了したかを日毎に把握したく、二度目のチェックが終わった項目No.をB列に順不同で構わないので、終了日毎にすべて表示ていきたいと考えています。 説明が不十分で大変申し訳ありませんが、お分かりになりますでしょうか?

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>E列7行目、8行目にある数値700と200が、C列7行目に200、E列7行目に700が入力された場合でも添付画像のようにB列7行目から下に順に入力されていくようにしたいです。 出現する条件に規則性が無いので関数の組み合わせの数式では無理かと思われます。 VBAでは可能と思いますので得意な方の回答を待ってください。

yuito45
質問者

お礼

ご回答ありがとうございます。 やはり関数では難しいんですかね…。 VBAなど分かる方の回答を待ってみます。 ありがとうございました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

現在の数式で添付画像のような結果が返ると思うのですが、具体的にどの部分が問題なのでしょうか?

yuito45
質問者

補足

分かりづらく申し訳ありません。 添付画像は現在の数式で返る結果で、お聞きしたいのは… 例えば E列7行目、8行目にある数値700と200が、C列7行目に200、E列7行目に700が入力された場合でも添付画像のようにB列7行目から下に順に入力されていくようにしたいです。 いかがでしょうか?