1

どうやって聞いたらいいのかわからない。

私はデータベースを持っており、各行は人です。列は連絡先情報、電話番号などです。1つの列は「訪問日」です。一人一人に複数の日付を訪問することができます。カンマを使用したり、すべてを1つのフィールドにスタックしたりしたくありません。

「ネストされた」リスト(ドロップダウンメニューではなく、各人の訪問日のみのリスト)を作成して、1人が1行しか消費しないようにする方法はありますか?

4

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 の組み込みフィルターを使用することもできます。大量のデータを保存するだけでは役に立ちません。簡単に表示および操作できる方法で保存すると、すべてがより強力になります。

于 2012-10-09T19:41:28.473 に答える