どうやって聞いたらいいのかわからない。
私はデータベースを持っており、各行は人です。列は連絡先情報、電話番号などです。1つの列は「訪問日」です。一人一人に複数の日付を訪問することができます。カンマを使用したり、すべてを1つのフィールドにスタックしたりしたくありません。
「ネストされた」リスト(ドロップダウンメニューではなく、各人の訪問日のみのリスト)を作成して、1人が1行しか消費しないようにする方法はありますか?
はい、
これを達成するには、各人に一意で変更されない ID を付与します。次に、別のシートに ID と日付を保存します。
メイン シート (ID、名前、連絡先情報、電話番号など) 2 番目のシート (ID、訪問日)
データベース理論では、これは「1 対多」の関係と呼ばれ、私が説明していることは「データセットの正規化」と呼ばれます。
Excel では、数式を使用してデータを操作できるようになりましたが、必要に応じて、またはこれを分割した後に想像することができます。
コメントで述べたように、ユーザーのすべての訪問日を数えます。右側のメイン シートでは、以下を使用できます。
=countif(Sheet2!A:A,Sheet1!A1)
これにより、メイン シートの現在の行の ID と一致する 2 番目のシートのすべての ID がカウントされます。
1 つのセルを使用する場合の注意事項:
すべての日付を 1 つのセルに格納すると、最終的には上限に達し、大きくなるにつれて表示や検索が難しくなるため、このアプローチには強くお勧めしません。
ただし、そこに日付を保持することを主張する場合は、コンマの合計数 + 1 を数えることで訪問をカウントできます=(LEN(G1) - LEN(SUBSTITUTE(G1,",","")))+1
。発生回数。
複数の列を使用する場合の注意事項:
このアプローチは、私が提案したものと同じ考え方を持っています。ここでは、多数の日付を行の人物の ID に関連付けています。ただし、いくつかの重要な制限と欠点があります。
主な違いは、日付を転置して垂直方向に拡張することで日付を抽象化すると、操作が簡単になり、1 人の 20 の日付のリストが読みやすくなることです。このアプローチを使用する代わりに、2 番目のシートで日付を垂直に入れ替えることで、Excel の組み込みフィルターを使用することもできます。大量のデータを保存するだけでは役に立ちません。簡単に表示および操作できる方法で保存すると、すべてがより強力になります。