プロが教えるわが家の防犯対策術!

シート1のB列にA社・B社・C社・D社・E社・F社・G社・H社と8つの会社名入り、C列に取引した日付が入っています。会社はそれぞれ1日に8回取引したり、1回も取引しない場合があります。
それをシート2のB列に日付があり、C列に取引した日の会社名が1日2社記入する欄があります。C列にA社を除く会社名を自動で記入できないでしょうか。
シート1               シート2
B列    C列            B列    C列  
A社    3/1            3/1    B社 
B社    3/1            3/1    B社
B社    3/1            3/2    C社
A社    3/2            3/2    
C社    3/2            3/3    D社 
A社    3/3            3/3    E社
A社    3/3            3/4     
D社    3/3            3/4    
E社    3/3            3/5     F社
A社    3/4            ・     
A社    3/4            ・     
F社    3/5 ・     
・     ・             ・     
G社    3/31           3/31    G社
H社    3/31           3/31    H社
                          ↑
                          自動入力

A 回答 (1件)

>C列にA社を除く会社名を自動で記入できないでしょうか。


できないことはありませんが、同じ日に複数の会社と取引があった場合はどうしましょう。

そう考えると、まずはD列からK列までにA社からH社までの社名を表示させることを考えてはいかがでしょう。
その後にE列からK列までのセルにある「値を結合」して表示させればよい。

…これなら簡単ではありませんか?

D列以降はCOUNTIFS関数を使い「日付」と「社名」を条件に積算させて「1」以上の値が返ってきたら「その日付」に「その会社」と取引があったと判断できます。
あとはIF関数などで取引があったと判断できたら「社名」を表示させれば良いのです。
C列はE列からK列までのセルの値を結合すればよい。
…ですよね。


・・・余談・・・
数式は作れますよね?
COUNTIFS関数はExcel2007から追加された関数です。
Excel2003など古いバージョンでは使用できませんので、代わりにSUMPRODUCT関数を使うなど工夫が必要です。

また他のシートの値を参照する場合は、セル番地だけでなくシート名も指定して参照する必要があります。
 シート名+!+セル番地
になります。
例:
 =IF(Sheet1!A1 = 1,"値は1","値は1以外")

・・・
セルの結合はセル番地を指定して「&」で繋いでも良いし
例:
 =A1 & B1 & C1
CONCATENATE関数でセル番地を指定しても良い。
例:
 =CONCATENATE(A1,B1,C1,D1)
    • good
    • 0
この回答へのお礼

早々にご返答ありがとうございます。
残念ながらバージョンは2003なのです。数式もSUM・VLOOKUP・AVERAGE・IF等の簡単で単体の関数しか使えません。SUMPRODUCTという関数も初めて聞きました。他のシート参照とかセルの結合はわかります。同日の会社名もA社以外の2社まで表示で後は切り捨てます。説明不足で申し訳ありません。

お礼日時:2017/03/25 20:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!